Jelajahi Sumber

角色修改

wangliang 3 tahun lalu
induk
melakukan
db227952af

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

@@ -89,6 +89,7 @@ public class SystemConstant {
     public static final String ROLE_PRIVILEGE_CACHE = "role:privilege:cache";
     public static final String USER_ROLE_PRIVILEGE_CACHE = "user:role:privilege:cache";
     public static final String PDF_CACHE = "pdf:cache";
+    public static final String ROLE_CACHE = "role:cache";
 
     /**
      * 报表缓存

+ 23 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/CacheService.java

@@ -15,6 +15,29 @@ import java.util.List;
  */
 public interface CacheService {
 
+    /**
+     * 添加角色缓存
+     *
+     * @param roleId
+     * @return
+     */
+    public SysRole roleCache(Long roleId);
+
+    /**
+     * 修改角色缓存
+     *
+     * @param roleId
+     * @return
+     */
+    public SysRole updateRoleCache(Long roleId);
+
+    /**
+     * 删除角色缓存
+     *
+     * @param roleId
+     */
+    public void removeRoleCache(Long roleId);
+
     /**
      * 添加用户缓存
      *

+ 39 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/CacheServiceImpl.java

@@ -39,6 +39,45 @@ public class CacheServiceImpl implements CacheService {
     @Resource
     SysOrgService sysOrgService;
 
+    @Resource
+    SysRoleService sysRoleService;
+
+    /**
+     * 添加角色缓存
+     *
+     * @param roleId
+     * @return
+     */
+    @Override
+    @Cacheable(value = SystemConstant.ROLE_CACHE, key = "#p0")
+    public SysRole roleCache(Long roleId) {
+        return sysRoleService.getById(roleId);
+    }
+
+    /**
+     * 修改角色缓存
+     *
+     * @param roleId
+     * @return
+     */
+    @Override
+    @CachePut(value = SystemConstant.ROLE_CACHE, key = "#p0")
+    public SysRole updateRoleCache(Long roleId) {
+        return sysRoleService.getById(roleId);
+    }
+
+    /**
+     * 删除角色缓存
+     *
+     * @param roleId
+     * @return
+     */
+    @Override
+    @CacheEvict(value = SystemConstant.ROLE_CACHE, key = "#p0")
+    public void removeRoleCache(Long roleId) {
+
+    }
+
     /**
      * 添加用户缓存
      *

+ 4 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java

@@ -128,17 +128,16 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         try {
             SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
             if (Objects.nonNull(role.getId())) {//编辑
-                QueryWrapper<SysRolePrivilege> sysRolePrivilegeQueryWrapper = new QueryWrapper<>();
-                sysRolePrivilegeQueryWrapper.lambda().eq(SysRolePrivilege::getRoleId, role.getId())
-                        .eq(SysRolePrivilege::getEnable, true);
-                List<SysRolePrivilege> sysRolePrivilegeList = sysRolePrivilegeService.list(sysRolePrivilegeQueryWrapper);
+                List<SysRolePrivilege> sysRolePrivilegeList = cacheService.rolePrivilegeCache(role.getId());
                 int count = (int) sysRolePrivilegeList.stream().filter(s -> Arrays.asList(role.getPrivilegeIds()).contains(s.getPrivilegeId())).count();
                 role.setUpdateId(sysUser.getId());
                 sysRoleService.updateById(role);
-                if (count != sysRolePrivilegeList.size()) {
+                cacheService.updateRoleCache(role.getId());
+                if (count != sysRolePrivilegeList.size() || count != role.getPrivilegeIds().length) {
                     sysRolePrivilegeService.removeByRoleId(role.getId());
                     //角色权限
                     sysRolePrivilegeService.saveBatch(role);
+                    cacheService.updateRolePrivilegeCache(role.getId());
                 }
             } else {
                 role.setCreateId(sysUser.getId());