Forráskód Böngészése

超管设置修改

wangliang 2 éve
szülő
commit
b3fa4a5e4b

+ 5 - 9
distributed-print/src/main/java/com/qmth/distributed/print/api/SysAdminSetController.java

@@ -274,6 +274,7 @@ public class SysAdminSetController {
                 }
             }
             tSchoolPrivilegeService.remove(tSchoolPrivilegeQueryWrapper);
+            commonCacheService.removeSchoolPrivilegeCache(tSchoolPrivilegeParam.getSchoolId());
         }
         Long[] privilegeIds = tSchoolPrivilegeParam.getPrivilegeIds();
         if (Objects.nonNull(privilegeIds) && privilegeIds.length > 0) {
@@ -308,7 +309,7 @@ public class SysAdminSetController {
     @ApiResponses({@ApiResponse(code = 200, message = "菜单权限信息", response = SysAdminSetResult.class)})
     @RequestMapping(value = "/menu/custom/get_school_custom_privileges", method = RequestMethod.POST)
     public Result getSchoolPrivileges(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
-        List<TSchoolPrivilege> tSchoolPrivilegeList = tSchoolPrivilegeService.findBySchoolId(schoolId);
+        List<TSchoolPrivilege> tSchoolPrivilegeList = commonCacheService.addSchoolPrivilegeCache(schoolId);
         List<String> privilegeIdList = tSchoolPrivilegeList.stream().map(s -> String.valueOf(s.getPrivilegeId())).collect(Collectors.toList());
         SysAdminSetResult sysAdminSetResult = new SysAdminSetResult(schoolId);
         sysAdminSetResult.setPrivilegeIdList(CollectionUtils.isEmpty(privilegeIdList) ? new ArrayList<>() : privilegeIdList);
@@ -319,13 +320,7 @@ public class SysAdminSetController {
     @ApiResponses({@ApiResponse(code = 200, message = "角色权限信息", response = CustomPrivilegeResult.class)})
     @RequestMapping(value = "/role/custom/list", method = RequestMethod.POST)
     public Result customRoleList() {
-        QueryWrapper<SysRole> sysRoleQueryWrapper = new QueryWrapper<>();
-        sysRoleQueryWrapper.lambda().eq(SysRole::getDefaultRole, true)
-                .eq(SysRole::getEnable, true)
-                .isNull(SysRole::getSchoolId)
-                .ne(SysRole::getType, SystemConstant.ADMIN_CODE.toUpperCase())
-                .orderByAsc(SysRole::getId);
-        List<SysRole> sysRoleList = sysRoleService.list(sysRoleQueryWrapper);
+        List<SysRole> sysRoleList = commonCacheService.addCustomRoleCache();
         CustomPrivilegeResult customPrivilegeResult = new CustomPrivilegeResult();
         customPrivilegeResult.setCustomRoleList(sysRoleList);
         return ResultUtil.ok(sysRoleList);
@@ -363,6 +358,7 @@ public class SysAdminSetController {
                 }
             }
             tSchoolRoleService.remove(tSchoolRoleQueryWrapper);
+            commonCacheService.removeSchoolRoleCache(tSchoolPrivilegeParam.getSchoolId());
         }
         Long[] roleIds = tSchoolPrivilegeParam.getRoleIds();
         if (Objects.nonNull(roleIds) && roleIds.length > 0) {
@@ -386,7 +382,7 @@ public class SysAdminSetController {
     @ApiResponses({@ApiResponse(code = 200, message = "角色权限信息", response = SysAdminSetResult.class)})
     @RequestMapping(value = "/role/custom/get_school_custom_roles", method = RequestMethod.POST)
     public Result getSchoolRoles(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
-        List<TSchoolRole> tSchoolRoleList = tSchoolRoleService.findBySchoolId(schoolId);
+        List<TSchoolRole> tSchoolRoleList = commonCacheService.addSchoolRoleCache(schoolId);
         List<String> roleIdList = tSchoolRoleList.stream().map(s -> String.valueOf(s.getRoleId())).collect(Collectors.toList());
         SysAdminSetResult sysAdminSetResult = new SysAdminSetResult(schoolId);
         sysAdminSetResult.setRoleIdList(CollectionUtils.isEmpty(roleIdList) ? new ArrayList<>() : roleIdList);

+ 3 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -273,7 +273,10 @@ public class SystemConstant {
     public static final String ROLE_CACHE = "role:cache";
     //    public static final String AUTH_INFO_CACHE = "auth:info:cache";
     public static final String SYS_CONFIG_CACHE = "sys:config:cache";
+    public static final String SCHOOL_PRIVILEGE_CACHE = "school:privilege:cache";
+    public static final String SCHOOL_ROLE_CACHE = "school:role:cache";
     public static final String CUSTOM_PRIVILEGE_CACHE = "custom:privilege:cache";
+    public static final String CUSTOM_ROLE_CACHE = "custom:role:cache";
     public static final String NUMBER_CACHE = "school:number:cache:";
     public static final String ORG_COLLEGE_LEVEL_CACHE = "org:college:level:cache";
 

+ 67 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/CommonCacheService.java

@@ -436,4 +436,71 @@ public interface CommonCacheService {
      * @param schoolId 学校id
      */
     void removeOrgCollegeLevelCache(Long schoolId);
+
+    /**
+     * 根据学校id查找自定义菜单
+     *
+     * @param schoolId
+     * @return
+     */
+    List<TSchoolPrivilege> addSchoolPrivilegeCache(Long schoolId);
+
+    /**
+     * 根据学校id修改自定义菜单
+     *
+     * @param schoolId
+     * @return
+     */
+    List<TSchoolPrivilege> updateSchoolPrivilegeCache(Long schoolId);
+
+    /**
+     * 根据学校id删除自定义菜单
+     *
+     * @param schoolId
+     */
+    void removeSchoolPrivilegeCache(Long schoolId);
+
+    /**
+     * 根据学校id查找自定义角色
+     *
+     * @param schoolId
+     * @return
+     */
+    List<TSchoolRole> addSchoolRoleCache(Long schoolId);
+
+    /**
+     * 根据学校id修改自定义角色
+     *
+     * @param schoolId
+     * @return
+     */
+    List<TSchoolRole> updateSchoolRoleCache(Long schoolId);
+
+    /**
+     * 根据学校id删除自定义角色
+     *
+     * @param schoolId
+     */
+    void removeSchoolRoleCache(Long schoolId);
+
+    /**
+     * 获取自定义角色
+     *
+     * @return
+     */
+    List<SysRole> addCustomRoleCache();
+
+    /**
+     * 更新自定义角色
+     *
+     * @return
+     */
+    List<SysRole> updateCustomRoleCache();
+
+    /**
+     * 删除自定义角色
+     *
+     * @return
+     */
+    void removeCustomRoleCache();
 }

+ 7 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysRoleService.java

@@ -44,4 +44,11 @@ public interface SysRoleService extends IService<SysRole> {
     List<SysRole> list(Long[] roleIds, String name);
 
     List<SysRole> listToUser();
+
+    /**
+     * 查询自定义角色
+     *
+     * @return
+     */
+    List<SysRole> findCustomRole();
 }

+ 94 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/CommonCacheServiceImpl.java

@@ -51,6 +51,12 @@ public class CommonCacheServiceImpl implements CommonCacheService {
     @Resource
     CacheManager cacheManager;
 
+    @Resource
+    TSchoolPrivilegeService tSchoolPrivilegeService;
+
+    @Resource
+    TSchoolRoleService tSchoolRoleService;
+
     /**
      * 添加角色缓存
      *
@@ -668,4 +674,92 @@ public class CommonCacheServiceImpl implements CommonCacheService {
     public void removeOrgCollegeLevelCache(Long schoolId) {
 
     }
+
+    /**
+     * 根据学校id查找自定义菜单
+     *
+     * @param schoolId
+     * @return
+     */
+    @Override
+    @Cacheable(value = SystemConstant.SCHOOL_PRIVILEGE_CACHE, key = "#p0", unless = "#result == null")
+    public List<TSchoolPrivilege> addSchoolPrivilegeCache(Long schoolId) {
+        return tSchoolPrivilegeService.findBySchoolId(schoolId);
+    }
+
+    /**
+     * 根据学校id修改自定义菜单
+     *
+     * @param schoolId
+     * @return
+     */
+    @Override
+    @CachePut(value = SystemConstant.SCHOOL_PRIVILEGE_CACHE, key = "#p0", condition = "#result != null")
+    public List<TSchoolPrivilege> updateSchoolPrivilegeCache(Long schoolId) {
+        return tSchoolPrivilegeService.findBySchoolId(schoolId);
+    }
+
+    /**
+     * 根据学校id删除自定义菜单
+     *
+     * @param schoolId
+     */
+    @Override
+    @CacheEvict(value = SystemConstant.SCHOOL_PRIVILEGE_CACHE, key = "#p0")
+    public void removeSchoolPrivilegeCache(Long schoolId) {
+
+    }
+
+    /**
+     * 根据学校id查找自定义角色
+     *
+     * @param schoolId
+     * @return
+     */
+    @Override
+    @Cacheable(value = SystemConstant.SCHOOL_ROLE_CACHE, key = "#p0", unless = "#result == null")
+    public List<TSchoolRole> addSchoolRoleCache(Long schoolId) {
+        return tSchoolRoleService.findBySchoolId(schoolId);
+    }
+
+    /**
+     * 根据学校id修改自定义角色
+     *
+     * @param schoolId
+     * @return
+     */
+    @Override
+    @CachePut(value = SystemConstant.SCHOOL_ROLE_CACHE, key = "#p0", condition = "#result != null")
+    public List<TSchoolRole> updateSchoolRoleCache(Long schoolId) {
+        return tSchoolRoleService.findBySchoolId(schoolId);
+    }
+
+    /**
+     * 根据学校id删除自定义角色
+     *
+     * @param schoolId
+     */
+    @Override
+    @CacheEvict(value = SystemConstant.SCHOOL_ROLE_CACHE, key = "#p0")
+    public void removeSchoolRoleCache(Long schoolId) {
+
+    }
+
+    @Override
+    @Cacheable(value = SystemConstant.CUSTOM_ROLE_CACHE, unless = "#result == null")
+    public List<SysRole> addCustomRoleCache() {
+        return sysRoleService.findCustomRole();
+    }
+
+    @Override
+    @CachePut(value = SystemConstant.CUSTOM_ROLE_CACHE, condition = "#result != null")
+    public List<SysRole> updateCustomRoleCache() {
+        return sysRoleService.findCustomRole();
+    }
+
+    @Override
+    @CacheEvict(value = SystemConstant.CUSTOM_ROLE_CACHE)
+    public void removeCustomRoleCache() {
+
+    }
 }

+ 16 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java

@@ -330,4 +330,20 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
 //        }
         return this.baseMapper.listRolesBySchoolId(Objects.nonNull(schoolId) ? Long.valueOf(schoolId) : null);
     }
+
+    /**
+     * 查询自定义角色
+     *
+     * @return
+     */
+    @Override
+    public List<SysRole> findCustomRole() {
+        QueryWrapper<SysRole> sysRoleQueryWrapper = new QueryWrapper<>();
+        sysRoleQueryWrapper.lambda().eq(SysRole::getDefaultRole, true)
+                .eq(SysRole::getEnable, true)
+                .isNull(SysRole::getSchoolId)
+                .ne(SysRole::getType, SystemConstant.ADMIN_CODE.toUpperCase())
+                .orderByAsc(SysRole::getId);
+        return sysRoleService.list(sysRoleQueryWrapper);
+    }
 }