【8.0】【sys】【role】更新角色绑定权限的缓存

pull/57/head
fengshuonan 2023-07-14 23:49:46 +08:00
parent c35be9e229
commit 5018af7786
5 changed files with 27 additions and 6 deletions

View File

@ -21,6 +21,9 @@ public class RoleMenuClearListener {
@Resource(name = "roleMenuCache")
private CacheOperatorApi<List<Long>> roleMenuCache;
@Resource(name = "roleMenuOptionsCache")
private CacheOperatorApi<List<Long>> roleMenuOptionsCache;
/**
*
*
@ -34,4 +37,17 @@ public class RoleMenuClearListener {
}
}
/**
*
*
* @author fengshuonan
* @since 2023/7/14 23:44
*/
@BusinessListener(businessCode = RoleConstants.ROLE_BIND_MENU_OPTIONS_EVENT)
public void roleBindMenuOptionsEvent(Long roleId) {
if (ObjectUtil.isNotEmpty(roleId)) {
roleMenuOptionsCache.remove(roleId.toString());
}
}
}

View File

@ -1 +0,0 @@
package cn.stylefeng.roses.kernel.sys.modular.role.cache;

View File

@ -23,4 +23,9 @@ public interface RoleConstants {
*/
String ROLE_MENU_OPTIONS_CACHE_PREFIX = "ROLE:MENU_OPTIONS:";
/**
*
*/
String ROLE_BIND_MENU_OPTIONS_EVENT = "ROLE_BIND_MENU_OPTIONS_EVENT";
}

View File

@ -1,6 +1,7 @@
package cn.stylefeng.roses.kernel.sys.modular.role.service.impl;
import cn.hutool.extra.spring.SpringUtil;
import cn.stylefeng.roses.kernel.event.sdk.publish.BusinessEventPublisher;
import cn.stylefeng.roses.kernel.sys.modular.app.entity.SysApp;
import cn.stylefeng.roses.kernel.sys.modular.app.service.SysAppService;
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenu;
@ -8,6 +9,7 @@ import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenuOptions;
import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuOptionsService;
import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuService;
import cn.stylefeng.roses.kernel.sys.modular.role.action.RoleAssignOperateAction;
import cn.stylefeng.roses.kernel.sys.modular.role.constants.RoleConstants;
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenu;
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenuOptions;
import cn.stylefeng.roses.kernel.sys.modular.role.factory.PermissionAssignFactory;
@ -73,6 +75,10 @@ public class PermissionAssignServiceImpl implements PermissionAssignService {
return;
}
}
// 更新角色绑定权限的缓存
BusinessEventPublisher.publishEvent(RoleConstants.ROLE_BIND_MENU_EVENT, roleBindPermissionRequest.getRoleId());
BusinessEventPublisher.publishEvent(RoleConstants.ROLE_BIND_MENU_OPTIONS_EVENT, roleBindPermissionRequest.getRoleId());
}
@Override

View File

@ -3,7 +3,6 @@ package cn.stylefeng.roses.kernel.sys.modular.role.service.impl;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.event.sdk.publish.BusinessEventPublisher;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveMenuCallbackApi;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants;
@ -12,7 +11,6 @@ import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenuOptions;
import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuOptionsService;
import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuService;
import cn.stylefeng.roses.kernel.sys.modular.role.action.RoleAssignOperateAction;
import cn.stylefeng.roses.kernel.sys.modular.role.constants.RoleConstants;
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenu;
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenuOptions;
import cn.stylefeng.roses.kernel.sys.modular.role.enums.PermissionNodeTypeEnum;
@ -197,9 +195,6 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
}
this.sysRoleMenuOptionsService.saveBatch(sysRoleMenuOptions);
}
// 6. 发布角色更新绑定菜单的事件
BusinessEventPublisher.publishEvent(RoleConstants.ROLE_BIND_MENU_EVENT, roleId);
}
@Override