浏览代码

撤销教学项目权限

lyhzzz 1 年之前
父节点
当前提交
128bd45627

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

@@ -40,6 +40,7 @@ public enum ResultCode {
     CASE_NOT_EXITS(6009,"案件不存在"),
     CASE_NOT_EXITS(6009,"案件不存在"),
     DEPT_EDIT_ERROR(6010,"修改失败,部门上级不能是自己或下级"),
     DEPT_EDIT_ERROR(6010,"修改失败,部门上级不能是自己或下级"),
     DEPT_ADD_ERROR(6011,"部门上限为四级"),
     DEPT_ADD_ERROR(6011,"部门上限为四级"),
+    NOT_PER(6012,"无权操作"),
 
 
 
 
     UPLOAD_ERROR(7001,"文件上传失败"),
     UPLOAD_ERROR(7001,"文件上传失败"),

+ 35 - 0
src/main/java/com/fdkankan/fusion/common/enums/RoleKeyEnum.java

@@ -0,0 +1,35 @@
+package com.fdkankan.fusion.common.enums;
+
+public enum RoleKeyEnum {
+    ADMIN_SUPER(1,"admin_super" , "超级管理员"),
+    ADMIN(2,"admin" , "平台运营管理员"),
+    ADMIN_DEPT(3,"admin_dept" , "组织总管理员"),
+    ADMIN_ORDINARY(4,"admin_ordinary" , "普通管理员"),
+    ;
+
+    private Integer id;
+
+    private String key;
+
+    private String name;
+
+    ;
+
+    RoleKeyEnum(Integer id,String key, String name) {
+        this.id = id;
+        this.key = key;
+        this.name = name;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public String getName() {
+        return name;
+    }
+}

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/ITmRoleService.java

@@ -17,4 +17,6 @@ import java.util.Set;
 public interface ITmRoleService extends IService<TmRole> {
 public interface ITmRoleService extends IService<TmRole> {
 
 
     HashMap<String, TmRole> getMapByUserIds(Set<String> userIds);
     HashMap<String, TmRole> getMapByUserIds(Set<String> userIds);
+
+    TmRole getByUserId(String userId);
 }
 }

+ 1 - 0
src/main/java/com/fdkankan/fusion/service/impl/TmMessageServiceImpl.java

@@ -68,6 +68,7 @@ public class TmMessageServiceImpl extends ServiceImpl<ITmMessageMapper, TmMessag
         }
         }
         LambdaQueryWrapper<TmMessage> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<TmMessage> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(TmMessage::getProjectId,messageReqDto.getProjectId());
         wrapper.eq(TmMessage::getProjectId,messageReqDto.getProjectId());
+        wrapper.orderByDesc(TmMessage::getCreateTime);
         Page<TmMessage> page = this.page(new Page<>(messageReqDto.getPageNum(), messageReqDto.getPageSize()), wrapper);
         Page<TmMessage> page = this.page(new Page<>(messageReqDto.getPageNum(), messageReqDto.getPageSize()), wrapper);
         Set<String> createorIds = page.getRecords().stream().map(TmMessage::getCreatorId).collect(Collectors.toSet());
         Set<String> createorIds = page.getRecords().stream().map(TmMessage::getCreatorId).collect(Collectors.toSet());
         HashMap<String, TmUser> map = new HashMap<>();
         HashMap<String, TmUser> map = new HashMap<>();

+ 26 - 0
src/main/java/com/fdkankan/fusion/service/impl/TmProjectServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.fusion.common.PageInfo;
 import com.fdkankan.fusion.common.PageInfo;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.enums.IdPreEnum;
 import com.fdkankan.fusion.common.enums.IdPreEnum;
+import com.fdkankan.fusion.common.enums.RoleKeyEnum;
 import com.fdkankan.fusion.common.util.IdUtils;
 import com.fdkankan.fusion.common.util.IdUtils;
 import com.fdkankan.fusion.common.util.PatternEnum;
 import com.fdkankan.fusion.common.util.PatternEnum;
 import com.fdkankan.fusion.common.util.RedisKeyUtil;
 import com.fdkankan.fusion.common.util.RedisKeyUtil;
@@ -57,6 +58,10 @@ public class TmProjectServiceImpl extends ServiceImpl<ITmProjectMapper, TmProjec
     ITmAttachmentService tmAttachmentService;
     ITmAttachmentService tmAttachmentService;
     @Autowired
     @Autowired
     RedisUtil redisUtil;
     RedisUtil redisUtil;
+    @Autowired
+    ITmRoleService tmRoleService;
+    @Autowired
+    ITmUserRoleService tmUserRoleService;
 
 
     @Override
     @Override
     public Object pageList(ProjectRequestDto tmProject) {
     public Object pageList(ProjectRequestDto tmProject) {
@@ -265,6 +270,27 @@ public class TmProjectServiceImpl extends ServiceImpl<ITmProjectMapper, TmProjec
         if(CollectionUtils.isEmpty(idList)){
         if(CollectionUtils.isEmpty(idList)){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
+        List<TmProject> tmProjects = this.listByIds(idList);
+        Set<String> projectDeptIds = tmProjects.stream().map(TmProject::getDeptId).collect(Collectors.toSet());
+
+        TmUser loginUser = tmUserService.getLoginUser();
+        TmRole tmRole = tmRoleService.getByUserId(loginUser.getId());
+        if(tmRole.getRoleKey().equals(RoleKeyEnum.ADMIN_DEPT.getName())){
+            List<TmDepartment> sonByDeptId = tmDepartmentService.getSonByDeptId(loginUser.getDeptId());
+            List<String> deptIds = sonByDeptId.stream().map(TmDepartment::getId).collect(Collectors.toList());
+            for (String projectDeptId : projectDeptIds) {
+                if(!deptIds.contains(projectDeptId)){
+                    throw new BusinessException(ResultCode.NOT_PER);
+                }
+            }
+        }
+        if(tmRole.getRoleKey().equals(RoleKeyEnum.ADMIN_ORDINARY.getName())){
+            for (String projectDeptId : projectDeptIds) {
+                if(projectDeptId.equals(loginUser.getDeptId())){
+                    throw new BusinessException(ResultCode.NOT_PER);
+                }
+            }
+        }
         LambdaUpdateWrapper<TmProject> wrapper = new LambdaUpdateWrapper<>();
         LambdaUpdateWrapper<TmProject> wrapper = new LambdaUpdateWrapper<>();
         wrapper.in(TmProject::getId,idList);
         wrapper.in(TmProject::getId,idList);
         wrapper.set(TmProject::getIsTeached,commonDto.getStatus());
         wrapper.set(TmProject::getIsTeached,commonDto.getStatus());

+ 11 - 0
src/main/java/com/fdkankan/fusion/service/impl/TmRoleServiceImpl.java

@@ -57,4 +57,15 @@ public class TmRoleServiceImpl extends ServiceImpl<ITmRoleMapper, TmRole> implem
         }
         }
         return userMap;
         return userMap;
     }
     }
+
+
+    @Override
+    public TmRole getByUserId(String userId) {
+        List<TmUserRole> userRoles = tmUserRoleService.getByUserId(userId);
+        if(userRoles.size() >0){
+            TmUserRole tmUserRole = userRoles.get(0);
+            return this.getById(tmUserRole.getRoleId());
+        }
+        return null;
+    }
 }
 }