|
@@ -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("作品不存在");
|
|
|
}
|