mirror of https://gitee.com/stylefeng/roses
【8.0】【sys】【menu】菜单的更新事件对缓存删除
parent
286ca0329d
commit
0f1c072530
|
@ -1,6 +1,9 @@
|
||||||
package cn.stylefeng.roses.kernel.sys.modular.menu.cache;
|
package cn.stylefeng.roses.kernel.sys.modular.menu.cache;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
||||||
|
import cn.stylefeng.roses.kernel.event.api.annotation.BusinessListener;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.menu.constants.MenuConstants;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
@ -17,5 +20,17 @@ public class MenuClearListener {
|
||||||
@Resource(name = "menuCodeCache")
|
@Resource(name = "menuCodeCache")
|
||||||
private CacheOperatorApi<String> menuCodeCache;
|
private CacheOperatorApi<String> menuCodeCache;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监听菜单的更新,清除缓存
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @since 2023/7/15 0:21
|
||||||
|
*/
|
||||||
|
@BusinessListener(businessCode = MenuConstants.MENU_UPDATE_EVENT)
|
||||||
|
public void updateMenuCodeCache(Long menuId) {
|
||||||
|
if (ObjectUtil.isNotEmpty(menuId)) {
|
||||||
|
menuCodeCache.remove(menuId.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,4 +13,9 @@ public interface MenuConstants {
|
||||||
*/
|
*/
|
||||||
String MENU_CODE_CACHE_PREFIX = "MENU:CODE:";
|
String MENU_CODE_CACHE_PREFIX = "MENU:CODE:";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单更新的事件
|
||||||
|
*/
|
||||||
|
String MENU_UPDATE_EVENT = "MENU_UPDATE_EVENT";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.extra.spring.SpringUtil;
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
||||||
import cn.stylefeng.roses.kernel.db.api.DbOperatorApi;
|
import cn.stylefeng.roses.kernel.db.api.DbOperatorApi;
|
||||||
|
import cn.stylefeng.roses.kernel.event.sdk.publish.BusinessEventPublisher;
|
||||||
import cn.stylefeng.roses.kernel.rule.constants.SymbolConstant;
|
import cn.stylefeng.roses.kernel.rule.constants.SymbolConstant;
|
||||||
import cn.stylefeng.roses.kernel.rule.constants.TreeConstants;
|
import cn.stylefeng.roses.kernel.rule.constants.TreeConstants;
|
||||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||||
|
@ -14,6 +15,7 @@ import cn.stylefeng.roses.kernel.sys.api.callback.RemoveMenuCallbackApi;
|
||||||
import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants;
|
import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants;
|
||||||
import cn.stylefeng.roses.kernel.sys.api.pojo.menu.UserAppMenuInfo;
|
import cn.stylefeng.roses.kernel.sys.api.pojo.menu.UserAppMenuInfo;
|
||||||
import cn.stylefeng.roses.kernel.sys.modular.app.service.SysAppService;
|
import cn.stylefeng.roses.kernel.sys.modular.app.service.SysAppService;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.menu.constants.MenuConstants;
|
||||||
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenu;
|
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenu;
|
||||||
import cn.stylefeng.roses.kernel.sys.modular.menu.enums.SysMenuExceptionEnum;
|
import cn.stylefeng.roses.kernel.sys.modular.menu.enums.SysMenuExceptionEnum;
|
||||||
import cn.stylefeng.roses.kernel.sys.modular.menu.factory.MenuFactory;
|
import cn.stylefeng.roses.kernel.sys.modular.menu.factory.MenuFactory;
|
||||||
|
@ -84,6 +86,10 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
for (RemoveMenuCallbackApi removeMenuCallbackApi : removeMenuCallbackApiMap.values()) {
|
for (RemoveMenuCallbackApi removeMenuCallbackApi : removeMenuCallbackApiMap.values()) {
|
||||||
removeMenuCallbackApi.removeMenuAction(totalMenuIds);
|
removeMenuCallbackApi.removeMenuAction(totalMenuIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 发布菜单删除事件
|
||||||
|
BusinessEventPublisher.publishEvent(MenuConstants.MENU_UPDATE_EVENT, menuId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -102,6 +108,10 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
BeanUtil.copyProperties(sysMenuRequest, sysMenu);
|
BeanUtil.copyProperties(sysMenuRequest, sysMenu);
|
||||||
|
|
||||||
this.updateById(sysMenu);
|
this.updateById(sysMenu);
|
||||||
|
|
||||||
|
// 发布菜单删除事件
|
||||||
|
BusinessEventPublisher.publishEvent(MenuConstants.MENU_UPDATE_EVENT, sysMenu.getMenuId());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue