浏览代码

编辑器权限校验

lyhzzz 3 年之前
父节点
当前提交
c69e493f47

+ 1 - 0
src/main/java/com/cdf/common/ResultCode.java

@@ -13,6 +13,7 @@ public enum ResultCode {
 
     NOT_RECORD(4001,"没有记录"),
     PARAM_MISS(40002,"参数缺失!"),
+    NOT_PERM(40003,"没有权限!"),
 
     OLD_PASSWORD_ERROR(50001,"原密码错误!"),
     OLD_NEW_PASSWORD_EQ(50002,"原密码与新密码一致无需更改!"),

+ 1 - 1
src/main/java/com/cdf/config/WebAppConfig.java

@@ -31,7 +31,7 @@ public class WebAppConfig implements WebMvcConfigurer {
 				.excludePathPatterns("/service/scene/edit/tag/save","/service/scene/edit/tag/delete"
 						,"/service/scene/edit/tag/list","/service/scene/edit/tag/getHotJson",
 						"/service/scene/edit/publicScene","/service/scene/edit/upload/files",
-						"/service/scene/getInfo");
+						"/service/scene/getInfo","/service/scene/edit/getAuth");
 		WebMvcConfigurer.super.addInterceptors(registry);
 	}
 

+ 5 - 0
src/main/java/com/cdf/controller/service/FdkkSceneEditController.java

@@ -1,5 +1,6 @@
 package com.cdf.controller.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.cdf.aop.SysLog;
 import com.cdf.common.ResultData;
 import com.cdf.httpClient.request.FdkkHotRequest;
@@ -19,6 +20,10 @@ public class FdkkSceneEditController {
     @Autowired
     private FdkkSceneEditService fdkkSceneEditService;
 
+    @PostMapping("/getAuth")
+    public JSONObject getAuth(@RequestParam (required = false) String num, @RequestHeader String token){
+        return  fdkkSceneEditService.getAuth(num, token);
+    }
     @PostMapping("/tag/save")
     @SysLog(logType = "VR场景",value = "热点新增或编辑")
     public ResultData save(@RequestBody FdkkHotRequest fdkkHotRequest, @RequestHeader String token){

+ 5 - 0
src/main/java/com/cdf/httpClient/client/FdkkClient.java

@@ -5,6 +5,7 @@ import com.cdf.httpClient.request.*;
 import com.cdf.httpClient.response.FdkkResponse;
 import com.dtflys.forest.annotation.*;
 
+import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -115,6 +116,10 @@ public interface FdkkClient {
     @Address(source = FdkkSceneAddressSource.class)
     JSONObject getInfo(@Query Map<String,String> param);
 
+    @Post("/service/scene/edit/getAuth")
+    @Address(source = FdkkSceneAddressSource.class)
+    JSONObject getAuth(@Query HashMap<String,String> param,@Header("token")  String token );
+
     @Post("{url}")
     @Address(source = FdkkSceneAddressSource.class)
     JSONObject sendPostJson(@Var("url") String url, @JSONBody JSONObject jsonObject, @Header("token")  String token);

+ 3 - 0
src/main/java/com/cdf/httpClient/request/FdkkSceneListRequest.java

@@ -18,4 +18,7 @@ public class FdkkSceneListRequest {
     private String startTime;
     private String endTime;
     private String sceneName;
+    private String snCode;
+    private String payStatus;
+    private String status;
 }

+ 34 - 0
src/main/java/com/cdf/service/impl/CdfRolePermService.java

@@ -0,0 +1,34 @@
+package com.cdf.service.impl;
+
+import com.cdf.common.ResultCode;
+import com.cdf.entity.Role;
+import com.cdf.entity.User;
+import com.cdf.exception.BusinessException;
+import com.cdf.service.IRoleService;
+import com.cdf.service.IUserService;
+import com.cdf.util.JwtUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CdfRolePermService {
+
+    @Autowired
+    IUserService userService;
+    @Autowired
+    IRoleService roleService;
+
+    public void checkRole(String token) {
+        try {
+            Integer userId = JwtUtil.getId(token);
+            User user = userService.getById(userId);
+            Role role = roleService.getById(user.getRoleId());
+            if(role.getRoleType() == 2){
+                throw new BusinessException(ResultCode.NOT_PERM);
+            }
+        }catch (Exception e){
+            throw new BusinessException(ResultCode.NOT_PERM);
+        }
+
+    }
+}

+ 13 - 2
src/main/java/com/cdf/service/impl/FdkkSceneEditService.java

@@ -53,7 +53,17 @@ public class FdkkSceneEditService {
     private IHotRelationService hotRelationService;
     @Autowired
     FdkkSceneService fdkkSceneService;
+    @Autowired
+    CdfRolePermService cdfRolePermService;
+
 
+    public JSONObject getAuth(String num, String token) {
+        cdfRolePermService.checkRole(token);
+        String fdkkToken = fdkkSceneService.getFdkkToken(token);
+        HashMap<String,String> map = new HashMap<>();
+        map.put("num",num);
+        return fdkkClient.getAuth(map, fdkkToken);
+    }
 
     public FdkkResponse saveTag(FdkkHotRequest fdkkHotRequest, String token) {
         FdkkResponse fdkkResponse = fdkkClient.hotSave(fdkkHotRequest,fdkkSceneService.getFdkkToken(token));
@@ -128,7 +138,7 @@ public class FdkkSceneEditService {
             throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());
         }
         JSONArray hotJson = getHotJson(fdkkHotRequest.getNum());
-        String path = String.format(hotLocalPath, fdkkHotRequest.getNum());
+        String path = String.format(hotLocalPath, fdkkHotRequest.getNum())+"/"+"hot.json";
         FileUtils.writeFile(path, hotJson.toJSONString());
         uploadToOssUtil.upload(path,String.format(hotCdfPath, fdkkHotRequest.getNum()));
     }
@@ -139,7 +149,8 @@ public class FdkkSceneEditService {
             String fileName = files.getOriginalFilename();
             assert fileName != null;
             String prefix = fileName.substring(fileName.lastIndexOf("."));
-            File newFile = File.createTempFile(UUID.randomUUID().toString() ,prefix);
+            String newFilePath = String.format(hotLocalPath,fdkkUploadRequest.getNum()) + "/"+fileName+prefix;
+            File newFile = new File(newFilePath);
             files.transferTo(newFile);
             path = newFile.getPath();
         }

+ 2 - 2
src/main/java/com/cdf/service/impl/FdkkSceneService.java

@@ -61,14 +61,14 @@ public class FdkkSceneService {
     public PageInfo list(FdkkSceneListRequest param, String token){
         FdkkResponse fdkkResponse;
         JSONObject jsonObject;
-        if(StringUtils.isBlank(param.getSearchKey())){
+         param.setSearchKey( StringUtils.isBlank(param.getSceneName())? param.getSnCode() :param.getSceneName() );
+        if(StringUtils.isBlank(param.getSceneName()) && StringUtils.isBlank(param.getSnCode())){
             fdkkResponse = fdkkClient.sceneList(param, getFdkkToken(token));
             if(fdkkResponse.getCode() != ResultCode.SUCCESS.code){
                 throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());
             }
             jsonObject = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData())).getJSONObject("pageInfo");
         }else {
-            param.setSceneName(param.getSearchKey());
             fdkkResponse = fdkkClient.getOnlySceneList(param, getFdkkToken(token));
             if(fdkkResponse.getCode() != ResultCode.SUCCESS.code){
                 throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());

+ 1 - 1
src/main/resources/application-dev.yaml

@@ -18,7 +18,7 @@ fdkk:
   scene-path: http://eur.4dkankan.com
   hot-path: scene_view_data/%s/user/hot.json
   hot-cdf-path: cdf/hot/%s/hot.json
-  hot-local-path: /home/cdf/fdkk/%s/hot.json
+  hot-local-path: /home/cdf/fdkk/%s
 #    type: oss      阿里云 oss
 #    type: aws      亚马逊 s3
 #    type: local    本地化