lyhzzz 2 kuukautta sitten
vanhempi
commit
bfd0c84774

+ 3 - 0
src/main/java/com/fdkankan/fusion/controller/CaseFusionController.java

@@ -49,6 +49,8 @@ public class CaseFusionController extends BaseController{
     IScenePlusExtService scenePlusExtService;
     IScenePlusExtService scenePlusExtService;
     @Autowired
     @Autowired
     ICommonUploadService commonUploadService;
     ICommonUploadService commonUploadService;
+    @Autowired
+    ISceneDeptShareService sceneDeptShareService;
 
 
     @GetMapping("/list")
     @GetMapping("/list")
     public ResultData allList(@RequestParam(required = false) Integer fusionId){
     public ResultData allList(@RequestParam(required = false) Integer fusionId){
@@ -67,6 +69,7 @@ public class CaseFusionController extends BaseController{
         if(caseFusion == null){
         if(caseFusion == null){
             throw new BusinessException(ResultCode.RECORD_NOT_EXITS);
             throw new BusinessException(ResultCode.RECORD_NOT_EXITS);
         }
         }
+        sceneDeptShareService.checkFusion(fusionId);
         return ResultData.ok(caseFusion);
         return ResultData.ok(caseFusion);
     }
     }
 
 

+ 3 - 0
src/main/java/com/fdkankan/fusion/service/ISceneDeptShareService.java

@@ -28,4 +28,7 @@ public interface ISceneDeptShareService extends IService<SceneDeptShare> {
     List<SceneDeptShare> getByCaseIdAndDeptId(Integer caseId, String deptId);
     List<SceneDeptShare> getByCaseIdAndDeptId(Integer caseId, String deptId);
 
 
     void checkNum(String num,Integer isObj);
     void checkNum(String num,Integer isObj);
+
+    void checkFusion(Integer fusionId);
+    void checkCaseId(Integer caseId);
 }
 }

+ 1 - 35
src/main/java/com/fdkankan/fusion/service/impl/CaseServiceImpl.java

@@ -306,41 +306,7 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, CaseEntity> implem
         if(!StpUtil.isLogin()){
         if(!StpUtil.isLogin()){
             throw new BusinessException(ResultCode.USER_NOT_LOGIN);
             throw new BusinessException(ResultCode.USER_NOT_LOGIN);
         }
         }
-        String page = SaHolder.getRequest().getHeader("page");
-        if(StringUtils.isBlank(page) ) {
-            throw new BusinessException(ResultCode.USER_NOT_LOGIN);
-        }
-
-        String deptId =(String) StpUtil.getExtra("deptId");
-
-        //获取共享数据
-        List<SceneDeptShare> sceneDeptShares = sceneDeptShareService.getByCaseIdAndDeptId(caseVo.getCaseId(),deptId);
-
-        //0不共享,1查看,2编辑
-        if(!sceneDeptShares.isEmpty()){
-            for (SceneDeptShare sceneDeptShare : sceneDeptShares) {
-                if(sceneDeptShare.getIsAuth() == 2){
-                    return;
-                }
-                if(sceneDeptShare.getIsAuth() == 1 && "view".equals(page)){
-                    return;
-                }
-            }
-        }
-
-        List<String> deptIds = tmDepartmentService.getDeptIds();
-        if(deptIds.size() <=0){
-            throw new BusinessException(ResultCode.NOT_PERMISSION);
-        }
-        String caseDeptId = caseVo.getDeptId();
-        if(caseVo.getTmProject() != null){
-            caseDeptId = caseVo.getTmProject().getDeptId();
-        }
-
-        List<String> deptIds2 = tmDepartmentService.getSonByDeptIdAndDeptIds(deptIds, deptId);
-        if(!deptIds2.contains(caseDeptId)){
-            throw new BusinessException(ResultCode.NOT_PERMISSION);
-        }
+        sceneDeptShareService.checkCaseId(caseVo.getCaseId());
 
 
     }
     }
 
 

+ 63 - 0
src/main/java/com/fdkankan/fusion/service/impl/SceneDeptShareServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fdkankan.fusion.service.impl;
 package com.fdkankan.fusion.service.impl;
 
 
+import cn.dev33.satoken.context.SaHolder;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -102,6 +103,15 @@ public class SceneDeptShareServiceImpl extends ServiceImpl<ISceneDeptShareMapper
         return list.stream().map(SceneDeptShare::getFusionId).collect(Collectors.toList());
         return list.stream().map(SceneDeptShare::getFusionId).collect(Collectors.toList());
     }
     }
 
 
+    public List<SceneDeptShare> getFusionIdsListByDeptId(String deptId,Integer fusionId) {
+        LambdaQueryWrapper<SceneDeptShare> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SceneDeptShare::getDeptId,deptId);
+        wrapper.ne(SceneDeptShare::getIsAuth,0);
+        wrapper.eq(SceneDeptShare::getFusionId,fusionId);
+        List<SceneDeptShare> list = this.list(wrapper);
+        return list;
+    }
+
     @Override
     @Override
     public List<Integer> getCaseIdsListByDeptId(String deptId) {
     public List<Integer> getCaseIdsListByDeptId(String deptId) {
         LambdaQueryWrapper<SceneDeptShare> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<SceneDeptShare> wrapper = new LambdaQueryWrapper<>();
@@ -112,6 +122,15 @@ public class SceneDeptShareServiceImpl extends ServiceImpl<ISceneDeptShareMapper
         return list.stream().map(SceneDeptShare::getCaseId).collect(Collectors.toList());
         return list.stream().map(SceneDeptShare::getCaseId).collect(Collectors.toList());
     }
     }
 
 
+    public List<SceneDeptShare> getCaseIdsListByDeptId(String deptId,Integer caseId) {
+        LambdaQueryWrapper<SceneDeptShare> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SceneDeptShare::getDeptId,deptId);
+        wrapper.ne(SceneDeptShare::getIsAuth,0);
+        wrapper.eq(SceneDeptShare::getCaseId,caseId);
+        List<SceneDeptShare> list = this.list(wrapper);
+        return list;
+    }
+
     @Override
     @Override
     public List<SceneDeptShare> getByCaseIdAndDeptId(Integer caseId, String deptId) {
     public List<SceneDeptShare> getByCaseIdAndDeptId(Integer caseId, String deptId) {
         LambdaQueryWrapper<SceneDeptShare> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<SceneDeptShare> wrapper = new LambdaQueryWrapper<>();
@@ -155,4 +174,48 @@ public class SceneDeptShareServiceImpl extends ServiceImpl<ISceneDeptShareMapper
             throw new BusinessException(ResultCode.NOT_PERMISSION);
             throw new BusinessException(ResultCode.NOT_PERMISSION);
         }
         }
     }
     }
+
+    @Override
+    public void checkFusion(Integer fusionId) {
+        String deptId =(String) StpUtil.getExtra("deptId");
+        List<SceneDeptShare> numListByDeptId = this.getFusionIdsListByDeptId(deptId,fusionId);
+        if(numListByDeptId == null || numListByDeptId.isEmpty()){
+            throw new BusinessException(ResultCode.NOT_PERMISSION);
+        }
+        String page = SaHolder.getRequest().getHeader("page");
+        if(StringUtils.isBlank(page)){
+            throw new BusinessException(ResultCode.NOT_PERMISSION);
+        }
+        for (SceneDeptShare sceneDeptShare : numListByDeptId) {
+            if(sceneDeptShare.getIsAuth() == 2){ //编辑
+                return;
+            }
+            if(sceneDeptShare.getIsAuth() == 1 && "view".equals(page)){
+                return;
+            }
+        }
+        throw new BusinessException(ResultCode.NOT_PERMISSION);
+    }
+
+    @Override
+    public void checkCaseId(Integer caseId) {
+        String deptId =(String) StpUtil.getExtra("deptId");
+        List<SceneDeptShare> numListByDeptId = this.getCaseIdsListByDeptId(deptId,caseId);
+        if(numListByDeptId == null || numListByDeptId.isEmpty()){
+            throw new BusinessException(ResultCode.NOT_PERMISSION);
+        }
+        String page = SaHolder.getRequest().getHeader("page");
+        if(StringUtils.isBlank(page)){
+            throw new BusinessException(ResultCode.NOT_PERMISSION);
+        }
+        for (SceneDeptShare sceneDeptShare : numListByDeptId) {
+            if(sceneDeptShare.getIsAuth() == 2){ //编辑
+                return;
+            }
+            if(sceneDeptShare.getIsAuth() == 1 && "view".equals(page)){
+                return;
+            }
+        }
+        throw new BusinessException(ResultCode.NOT_PERMISSION);
+    }
 }
 }