【8.0】【sys】【menu】菜单的更新事件对缓存删除

pull/57/head
fengshuonan 2023-07-15 00:21:38 +08:00
parent 286ca0329d
commit 0f1c072530
3 changed files with 30 additions and 0 deletions

View File

@ -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());
}
}
}

View File

@ -13,4 +13,9 @@ public interface MenuConstants {
*/
String MENU_CODE_CACHE_PREFIX = "MENU:CODE:";
/**
*
*/
String MENU_UPDATE_EVENT = "MENU_UPDATE_EVENT";
}

View File

@ -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