xiewj 1 year ago
parent
commit
e18f194d86

+ 27 - 1
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WebController.java

@@ -1,10 +1,14 @@
 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.ConfigConstant;
 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.WorkPwdDto;
@@ -19,7 +23,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 
 
@@ -51,6 +58,8 @@ public class WebController extends BaseController {
     RedisUtil redisUtil;
 
 
+    @Resource
+    FdkkClient fdkkClient;
 
     /** 每次浏览作品都需要调用次接口。 浏览量只统计预览跟正式发布的数据 */
     @ApiOperation(value = "检查作品是否可用", notes = "true:可用, false:不可用, visit有值表示要添加浏览量")
@@ -77,7 +86,24 @@ public class WebController extends BaseController {
                 workService.addVisit(workId);
             }
             redisUtil.set(RedisConstant.WORK_ID+workId, entity, 30, TimeUnit.SECONDS);
-
+            String userNameForToken = getUserNameForToken();
+            if (!userNameForToken.equals(entity.getUserId())&& ObjectUtil.isNotEmpty(entity.getType())&&!entity.getType().equalsIgnoreCase("pro")) {
+                return Result.failure(ErrorEnum.FAILURE_SYS_3011.code(), "当前无操作权限");
+            } else 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 {
             log.warn("作品不存在");
         }