mirror of https://gitee.com/stylefeng/roses
【8.0】【sys】【role】更新角色绑定权限的缓存
parent
c35be9e229
commit
5018af7786
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.role.cache;
|
|
@ -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";
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue