diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/MenuClearListener.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/MenuClearListener.java index 2b4b39d7e..9bae2027b 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/MenuClearListener.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/MenuClearListener.java @@ -33,4 +33,17 @@ public class MenuClearListener { } } + /** + * 监听菜单功能的更新 + * + * @author fengshuonan + * @since 2023/7/15 0:37 + */ + @BusinessListener(businessCode = MenuConstants.MENU_OPTIONS_UPDATE_EVENT) + public void updateMenuOptionsCodeCache(Long optionsId) { + if (ObjectUtil.isNotEmpty(optionsId)) { + menuCodeCache.remove(optionsId.toString()); + } + } + } diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/menucode/MenuCodeMemoryCache.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/menucode/MenuCodeMemoryCache.java index b53217144..5894e3505 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/menucode/MenuCodeMemoryCache.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/menucode/MenuCodeMemoryCache.java @@ -6,6 +6,8 @@ import cn.stylefeng.roses.kernel.sys.modular.menu.constants.MenuConstants; /** * 菜单编码的缓存 + *
+ * 同时用在,菜单功能编码缓存 * * @author fengshuonan * @since 2023/7/15 0:08 diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/menucode/MenuCodeRedisCache.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/menucode/MenuCodeRedisCache.java index fb592e294..d8dc9b774 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/menucode/MenuCodeRedisCache.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/cache/menucode/MenuCodeRedisCache.java @@ -6,6 +6,8 @@ import org.springframework.data.redis.core.RedisTemplate; /** * 菜单编码的缓存 + *
+ * 同时用在,菜单功能编码缓存
*
* @author fengshuonan
* @since 2023/7/15 0:11
diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/constants/MenuConstants.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/constants/MenuConstants.java
index 871abbb57..5bcdec87f 100644
--- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/constants/MenuConstants.java
+++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/constants/MenuConstants.java
@@ -18,4 +18,9 @@ public interface MenuConstants {
*/
String MENU_UPDATE_EVENT = "MENU_UPDATE_EVENT";
+ /**
+ * 菜单功能更新的事件
+ */
+ String MENU_OPTIONS_UPDATE_EVENT = "MENU_OPTIONS_UPDATE_EVENT";
+
}
diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/impl/SysMenuOptionsServiceImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/impl/SysMenuOptionsServiceImpl.java
index 1c9547a4e..4ebefec80 100644
--- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/impl/SysMenuOptionsServiceImpl.java
+++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/impl/SysMenuOptionsServiceImpl.java
@@ -3,11 +3,13 @@ package cn.stylefeng.roses.kernel.sys.modular.menu.service.impl;
import cn.hutool.core.bean.BeanUtil;
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.db.api.factory.PageFactory;
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveMenuCallbackApi;
+import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants;
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenuOptions;
import cn.stylefeng.roses.kernel.sys.modular.menu.enums.SysMenuOptionsExceptionEnum;
import cn.stylefeng.roses.kernel.sys.modular.menu.factory.MenuOptionsValidateFactory;
@@ -27,7 +29,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.stream.Collectors;
/**
* 菜单下的功能操作业务实现层
@@ -45,6 +46,9 @@ public class SysMenuOptionsServiceImpl extends ServiceImpl