Browse Source

删除之后无权过问

lyhzzz 2 years ago
parent
commit
2cd6d21d6d

+ 4 - 3
src/main/java/com/fdkankan/site/controller/ProjectController.java

@@ -49,16 +49,17 @@ public class ProjectController extends BaseController {
     @GetMapping("/info")
     @GetMapping("/info")
     public ResultData info(@RequestParam(required = false) Integer projectId,
     public ResultData info(@RequestParam(required = false) Integer projectId,
                            @RequestParam(required = false,defaultValue = "desc") String sceneOrder){
                            @RequestParam(required = false,defaultValue = "desc") String sceneOrder){
-        return ResultData.ok(projectService.getProjectInfo(projectId,sceneOrder));
+        return ResultData.ok(projectService.getProjectInfo(projectId,sceneOrder,getToken()));
     }
     }
 
 
     @PostMapping("/list")
     @PostMapping("/list")
     public ResultData list(@RequestBody ProjectListParam param){
     public ResultData list(@RequestBody ProjectListParam param){
         return ResultData.ok(projectService.pageList(param,getToken()));
         return ResultData.ok(projectService.pageList(param,getToken()));
     }
     }
+
     @PostMapping("/over")
     @PostMapping("/over")
     public ResultData over(@RequestBody Project param){
     public ResultData over(@RequestBody Project param){
-        projectService.over(param);
+        projectService.over(param,getToken());
         return ResultData.ok();
         return ResultData.ok();
     }
     }
     @PostMapping("/del")
     @PostMapping("/del")
@@ -74,7 +75,7 @@ public class ProjectController extends BaseController {
     }
     }
     @PostMapping("/updateName")
     @PostMapping("/updateName")
     public ResultData updateName(@RequestBody Project param){
     public ResultData updateName(@RequestBody Project param){
-        projectService.updateName(param);
+        projectService.updateName(param,getToken());
         return ResultData.ok( );
         return ResultData.ok( );
     }
     }
 
 

+ 3 - 1
src/main/java/com/fdkankan/site/exception/GlobalExceptionHandler.java

@@ -1,5 +1,7 @@
 package com.fdkankan.site.exception;
 package com.fdkankan.site.exception;
 
 
+import com.dtflys.forest.exceptions.ForestRuntimeException;
+import com.fdkankan.site.common.ResultCode;
 import com.fdkankan.site.common.ResultData;
 import com.fdkankan.site.common.ResultData;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ExceptionHandler;
@@ -29,7 +31,7 @@ public class GlobalExceptionHandler {
     @ResponseBody
     @ResponseBody
     @ExceptionHandler(value = BusinessException.class)
     @ExceptionHandler(value = BusinessException.class)
     public ResultData businessExceptionHandler(BusinessException e) {
     public ResultData businessExceptionHandler(BusinessException e) {
-        log.info("业务异常code:{},message:{}", e.getCode(), e.getMessage());
+        log.error("业务异常code:{},message:{}", e.getCode(), e.getMessage());
         return ResultData.error(e.getCode(), e.getMessage());
         return ResultData.error(e.getCode(), e.getMessage());
     }
     }
 }
 }

+ 3 - 3
src/main/java/com/fdkankan/site/service/IProjectService.java

@@ -27,7 +27,7 @@ public interface IProjectService extends IService<Project> {
 
 
     Object pageList(ProjectListParam param, String token);
     Object pageList(ProjectListParam param, String token);
 
 
-    ProjectInfoVo getProjectInfo(Integer projectId,String sceneOrder);
+    ProjectInfoVo getProjectInfo(Integer projectId,String sceneOrder,String token);
 
 
     List<SceneVo> getSceneList(Integer projectId);
     List<SceneVo> getSceneList(Integer projectId);
 
 
@@ -38,13 +38,13 @@ public interface IProjectService extends IService<Project> {
     void delScene(ProjectDelSceneParam param);
     void delScene(ProjectDelSceneParam param);
 
 
 
 
-    void over(Project param);
+    void over(Project param,String token);
 
 
     void deleteBim(Integer bimId,String token);
     void deleteBim(Integer bimId,String token);
 
 
     HashMap<Integer, Project> getByIds(Set<Integer> projectIds);
     HashMap<Integer, Project> getByIds(Set<Integer> projectIds);
 
 
-    void updateName(Project param);
+    void updateName(Project param,String token);
 
 
     void updateBimName(ProjectBim projectBim,String token);
     void updateBimName(ProjectBim projectBim,String token);
 
 

+ 29 - 3
src/main/java/com/fdkankan/site/service/impl/ProjectServiceImpl.java

@@ -34,6 +34,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -142,10 +143,13 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
     }
     }
 
 
     @Override
     @Override
-    public ProjectInfoVo getProjectInfo(Integer projectId,String sceneOrder) {
+    public ProjectInfoVo getProjectInfo(Integer projectId,String sceneOrder,String token) {
         VUtils.isTure(projectId == null).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(projectId == null).throwMessage(ResultCode.PARAM_MISS);
         Project project = this.getById(projectId);
         Project project = this.getById(projectId);
         VUtils.isTure(project == null).throwMessage(ResultCode.PROJECT_NOT_EXIST);
         VUtils.isTure(project == null).throwMessage(ResultCode.PROJECT_NOT_EXIST);
+
+        checkTokenPer(token, projectId);
+
         ProjectInfoVo infoVo = new ProjectInfoVo();
         ProjectInfoVo infoVo = new ProjectInfoVo();
         BeanUtils.copyProperties(project,infoVo);
         BeanUtils.copyProperties(project,infoVo);
         ProjectTeam projectCreater = projectTeamService.getProjectCreater(projectId);
         ProjectTeam projectCreater = projectTeamService.getProjectCreater(projectId);
@@ -170,8 +174,10 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
     }
     }
 
 
     @Override
     @Override
-    public void over(Project param) {
+    public void over(Project param,String token) {
         VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
+        checkTokenPer(token, param.getProjectId());
+
         LambdaUpdateWrapper<Project> wrapper = new LambdaUpdateWrapper<>();
         LambdaUpdateWrapper<Project> wrapper = new LambdaUpdateWrapper<>();
         wrapper.eq(Project::getProjectId,param.getProjectId())
         wrapper.eq(Project::getProjectId,param.getProjectId())
                 .set(Project::getProjectStatus,1);
                 .set(Project::getProjectStatus,1);
@@ -206,6 +212,7 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
     public void addScene(ProjectAddSceneParam param) {
     public void addScene(ProjectAddSceneParam param) {
         Project project = this.getById(param.getProjectId());
         Project project = this.getById(param.getProjectId());
         VUtils.isTure(project == null).throwMessage(ResultCode.PROJECT_NOT_EXIST);
         VUtils.isTure(project == null).throwMessage(ResultCode.PROJECT_NOT_EXIST);
+        checkTokenPer(param.getToken(), param.getProjectId());
 
 
         Set<Integer> projectIds = new HashSet<>(Arrays.asList(param.getProjectId()));
         Set<Integer> projectIds = new HashSet<>(Arrays.asList(param.getProjectId()));
         List<ProjectNum> projectNums = projectNumService.getListByProjectIds(projectIds);
         List<ProjectNum> projectNums = projectNumService.getListByProjectIds(projectIds);
@@ -258,6 +265,8 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
         Project project = this.getById(param.getProjectId());
         Project project = this.getById(param.getProjectId());
         VUtils.isTure(project == null).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(project == null).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
+        checkTokenPer(param.getToken(), param.getProjectId());
+
         VUtils.isTure(StringUtils.isBlank(param.getNum())).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(StringUtils.isBlank(param.getNum())).throwMessage(ResultCode.PARAM_MISS);
         projectNumService.delByNumList(param.getProjectId(),Arrays.asList(param.getNum()));
         projectNumService.delByNumList(param.getProjectId(),Arrays.asList(param.getNum()));
         projectLogService.addLog(param.getProjectId(),"删除场景",param.getToken(),Arrays.asList(param.getNum()));
         projectLogService.addLog(param.getProjectId(),"删除场景",param.getToken(),Arrays.asList(param.getNum()));
@@ -266,8 +275,10 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
 
 
     @Override
     @Override
     public void deleteBim(Integer bimId,String token) {
     public void deleteBim(Integer bimId,String token) {
+
         ProjectBim bim = projectBimService.getById(bimId);
         ProjectBim bim = projectBimService.getById(bimId);
         if(bim != null){
         if(bim != null){
+            checkTokenPer(token, bim.getProjectId());
             projectLogService.addLog(bim.getProjectId(),"删除BIM:"+bim.getBimName(),token,null);
             projectLogService.addLog(bim.getProjectId(),"删除BIM:"+bim.getBimName(),token,null);
             projectBimService.removeById(bimId);
             projectBimService.removeById(bimId);
             this.updateTime(bim.getProjectId());
             this.updateTime(bim.getProjectId());
@@ -297,8 +308,10 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
     }
     }
 
 
     @Override
     @Override
-    public void updateName(Project param) {
+    public void updateName(Project param,String token) {
+
         VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
+        checkTokenPer(token, param.getProjectId());
 
 
         LambdaUpdateWrapper<Project> wrapper = new LambdaUpdateWrapper<>();
         LambdaUpdateWrapper<Project> wrapper = new LambdaUpdateWrapper<>();
         wrapper.eq(Project::getProjectId,param.getProjectId());
         wrapper.eq(Project::getProjectId,param.getProjectId());
@@ -316,6 +329,8 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
 
 
     @Override
     @Override
     public void updateBimName(ProjectBim projectBim,String token) {
     public void updateBimName(ProjectBim projectBim,String token) {
+        checkTokenPer(token, projectBim.getProjectId());
+
         ProjectBim bim = projectBimService.getById(projectBim.getBimId());
         ProjectBim bim = projectBimService.getById(projectBim.getBimId());
         projectBimService.updateBimName(projectBim);
         projectBimService.updateBimName(projectBim);
         this.updateTime(bim.getProjectId());
         this.updateTime(bim.getProjectId());
@@ -325,6 +340,7 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
 
 
     @Override
     @Override
     public void updatePanos(Project param,String token) {
     public void updatePanos(Project param,String token) {
+        checkTokenPer(token, param.getProjectId());
         VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(StringUtils.isBlank(param.getPanos())).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(StringUtils.isBlank(param.getPanos())).throwMessage(ResultCode.PARAM_MISS);
 
 
@@ -341,6 +357,7 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
 
 
     @Override
     @Override
     public void delProject(Integer projectId, String token) {
     public void delProject(Integer projectId, String token) {
+        checkTokenPer(token, projectId);
         Project project = this.getById(projectId);
         Project project = this.getById(projectId);
         if(project == null){
         if(project == null){
             throw new BusinessException(ResultCode.PROJECT_NOT_EXIST);
             throw new BusinessException(ResultCode.PROJECT_NOT_EXIST);
@@ -358,4 +375,13 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
         wrapper.set(Project::getUpdateTime, DateUtils.getData(new Date()));
         wrapper.set(Project::getUpdateTime, DateUtils.getData(new Date()));
         this.update(wrapper);
         this.update(wrapper);
     }
     }
+
+    public void checkTokenPer(String token,Integer projectId){
+        String userName = JwtUtil.getUserName(token);
+        List<ProjectTeam> teamList = projectTeamService.getListByUserName(userName);
+        Set<Integer> projectIds = teamList.stream().map(ProjectTeam::getProjectId).collect(Collectors.toSet());
+        if(!projectIds.contains(projectId)){
+            throw new BusinessException(ResultCode.NOT_PERM);
+        }
+    }
 }
 }