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;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
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 javax.annotation.Resource;
|
||||
|
@ -17,5 +20,17 @@ public class MenuClearListener {
|
|||
@Resource(name = "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_UPDATE_EVENT = "MENU_UPDATE_EVENT";
|
||||
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
|
|||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
||||
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.TreeConstants;
|
||||
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.pojo.menu.UserAppMenuInfo;
|
||||
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.enums.SysMenuExceptionEnum;
|
||||
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()) {
|
||||
removeMenuCallbackApi.removeMenuAction(totalMenuIds);
|
||||
}
|
||||
|
||||
// 发布菜单删除事件
|
||||
BusinessEventPublisher.publishEvent(MenuConstants.MENU_UPDATE_EVENT, menuId);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -102,6 +108,10 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
BeanUtil.copyProperties(sysMenuRequest, sysMenu);
|
||||
|
||||
this.updateById(sysMenu);
|
||||
|
||||
// 发布菜单删除事件
|
||||
BusinessEventPublisher.publishEvent(MenuConstants.MENU_UPDATE_EVENT, sysMenu.getMenuId());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue