xiewj 1 年間 前
コミット
3656271444

+ 14 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -425,6 +425,20 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         String userNameForToken = getUserNameForToken();
         if (!userNameForToken.equals(entity.getUserId())) {
             if (ObjectUtil.isNotEmpty(entity.getType())&&!entity.getType().equalsIgnoreCase("pro")){
+                JSONObject cameraList =fdkkClient.getCameraListByToken(getToken(),"3,4,5");
+                List<String> snCodes = new ArrayList<>();
+                if (cameraList.getInteger("code") == 0) {
+                    JSONArray data = cameraList.getJSONObject("data").getJSONArray("snCodes");
+                    for (Object datum : data) {
+                        snCodes.add(String.valueOf(datum));
+                    }
+                    if (!snCodes.contains(entity.getSnCode())) {
+                        return Result.failure(ErrorEnum.FAILURE_SYS_3011.code(), "当前无操作权限");
+                    }
+                } else {
+                    return Result.failure("获取四维用户激光数据失败");
+                }
+            }else {
                 return Result.failure(ErrorEnum.FAILURE_SYS_3011.code(), "当前无操作权限");
             }
         }

+ 25 - 2
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkController.java

@@ -1,9 +1,13 @@
 package com.gis.web.controller;
 
 
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.gis.common.constant.ErrorEnum;
 import com.gis.common.constant.MsgCode;
 import com.gis.common.constant.RedisConstant;
+import com.gis.common.httpclient.FdkkClient;
 import com.gis.common.util.RedisUtil;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.*;
@@ -20,7 +24,10 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 
 
@@ -48,6 +55,8 @@ public class WorkController extends BaseController {
     RedisUtil redisUtil;
 
 
+    @Resource
+    FdkkClient fdkkClient;
 
     @ApiOperation(value = "列表", position = 1)
     @PostMapping("list")
@@ -152,8 +161,22 @@ public class WorkController extends BaseController {
         log.info("userId: {}", userId);
 
         if (!userId.equals(entity.getUserId())) {
-            if (!entity.getType().equalsIgnoreCase("pro")){
-                return Result.failure(MsgCode.e3005, "当前无操作权限");
+            if (ObjectUtil.isNotEmpty(entity.getType())&&!entity.getType().equalsIgnoreCase("pro")){
+                JSONObject cameraList =fdkkClient.getCameraListByToken(getToken(),"3,4,5");
+                List<String> snCodes = new ArrayList<>();
+                if (cameraList.getInteger("code") == 0) {
+                    JSONArray data = cameraList.getJSONObject("data").getJSONArray("snCodes");
+                    for (Object datum : data) {
+                        snCodes.add(String.valueOf(datum));
+                    }
+                    if (!snCodes.contains(entity.getSnCode())) {
+                        return Result.failure(ErrorEnum.FAILURE_SYS_3011.code(), "当前无操作权限");
+                    }
+                } else {
+                    return Result.failure("获取四维用户激光数据失败");
+                }
+            }else {
+                return Result.failure(ErrorEnum.FAILURE_SYS_3011.code(), "当前无操作权限");
             }
         }