diff --git a/cf-framework/cf-spring-boot-starter-redis/src/main/java/com/cf/imes/framework/redis/constants/RedisKeyConstants.java b/cf-framework/cf-spring-boot-starter-redis/src/main/java/com/cf/imes/framework/redis/constants/RedisKeyConstants.java
index 384f663c2..171adf40e 100644
--- a/cf-framework/cf-spring-boot-starter-redis/src/main/java/com/cf/imes/framework/redis/constants/RedisKeyConstants.java
+++ b/cf-framework/cf-spring-boot-starter-redis/src/main/java/com/cf/imes/framework/redis/constants/RedisKeyConstants.java
@@ -11,4 +11,9 @@ public class RedisKeyConstants {
* 生产单导入
*/
public static final String ORDER_IMPORT_LOCK_KEY = "order_import:%s";
+
+ /**
+ * 刷新权限
+ */
+ public static final String PERMISSION_REFRESH = "PERMISSION_REFRESH";
}
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/redis/listener/ExecutorPermissionRefreshRedisListener.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/redis/listener/ExecutorPermissionRefreshRedisListener.java
new file mode 100644
index 000000000..981f861aa
--- /dev/null
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/redis/listener/ExecutorPermissionRefreshRedisListener.java
@@ -0,0 +1,33 @@
+package com.cf.imes.module.executor.dal.redis.listener;
+
+import com.cf.imes.framework.mq.redis.core.pubsub.AbstractRedisSimpleMessageListener;
+import com.cf.imes.framework.redis.constants.RedisKeyConstants;
+import com.cf.imes.framework.security.core.service.SecurityFrameworkService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.connection.Message;
+import org.springframework.data.redis.listener.ChannelTopic;
+import org.springframework.stereotype.Component;
+
+/**
+ * executor PERMISSION_REFRESH redis监听器
+ *
+ * @author Gqr
+ * @since 2024/6/13 10:32
+ */
+@Component
+@Slf4j
+public class ExecutorPermissionRefreshRedisListener extends AbstractRedisSimpleMessageListener {
+
+ private final SecurityFrameworkService securityFrameworkService;
+
+ public ExecutorPermissionRefreshRedisListener(SecurityFrameworkService securityFrameworkService) {
+ super.setTopic(new ChannelTopic(RedisKeyConstants.PERMISSION_REFRESH));
+ this.securityFrameworkService = securityFrameworkService;
+ }
+
+ @Override
+ public void onMessage(Message message, byte[] bytes) {
+ log.info("[SystemPermissionRefreshRedisListener][onMessage][{}收到刷新本地权限缓存]", message);
+ securityFrameworkService.invalidateAllPermissionsCache();
+ }
+}
diff --git a/cf-module-report/cf-module-report-biz/pom.xml b/cf-module-report/cf-module-report-biz/pom.xml
index 37b870edc..d9f3efea5 100644
--- a/cf-module-report/cf-module-report-biz/pom.xml
+++ b/cf-module-report/cf-module-report-biz/pom.xml
@@ -166,6 +166,12 @@
${itextpdf.version}
+
+
+
+ com.cf.imes
+ cf-spring-boot-starter-mq
+
@@ -232,6 +238,10 @@
com.cf.imes
cf-spring-boot-starter-web
+
+ com.cf.imes
+ cf-spring-boot-starter-mq
+
diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/dal/redis/listener/ReportPermissionRefreshRedisListener.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/dal/redis/listener/ReportPermissionRefreshRedisListener.java
new file mode 100644
index 000000000..232c0411e
--- /dev/null
+++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/dal/redis/listener/ReportPermissionRefreshRedisListener.java
@@ -0,0 +1,33 @@
+package com.cf.imes.module.report.dal.redis.listener;
+
+import com.cf.imes.framework.mq.redis.core.pubsub.AbstractRedisSimpleMessageListener;
+import com.cf.imes.framework.redis.constants.RedisKeyConstants;
+import com.cf.imes.framework.security.core.service.SecurityFrameworkService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.connection.Message;
+import org.springframework.data.redis.listener.ChannelTopic;
+import org.springframework.stereotype.Component;
+
+/**
+ * report PERMISSION_REFRESH redis监听器
+ *
+ * @author Gqr
+ * @since 2024/6/13 10:32
+ */
+@Component
+@Slf4j
+public class ReportPermissionRefreshRedisListener extends AbstractRedisSimpleMessageListener {
+
+ private final SecurityFrameworkService securityFrameworkService;
+
+ public ReportPermissionRefreshRedisListener(SecurityFrameworkService securityFrameworkService) {
+ super.setTopic(new ChannelTopic(RedisKeyConstants.PERMISSION_REFRESH));
+ this.securityFrameworkService = securityFrameworkService;
+ }
+
+ @Override
+ public void onMessage(Message message, byte[] bytes) {
+ log.info("[SystemPermissionRefreshRedisListener][onMessage][{}收到刷新本地权限缓存]", message);
+ securityFrameworkService.invalidateAllPermissionsCache();
+ }
+}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/RedisRefreshChannelTopicConstants.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/RedisRefreshChannelTopicConstants.java
deleted file mode 100644
index c594812db..000000000
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/RedisRefreshChannelTopicConstants.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.cf.imes.module.system.dal.redis;
-
-/**
- * system redis监听刷新通道名称 常量
- *
- * @author Gqr
- * @since 2024/6/13 14:55
- */
-public class RedisRefreshChannelTopicConstants {
-
- /**
- * 刷新权限
- */
- public static final String PERMISSION_REFRESH = "PERMISSION_REFRESH";
-}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/listener/SystemPermissionRefreshRedisListener.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/listener/SystemPermissionRefreshRedisListener.java
index 695f2a5de..221219737 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/listener/SystemPermissionRefreshRedisListener.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/redis/listener/SystemPermissionRefreshRedisListener.java
@@ -1,8 +1,8 @@
package com.cf.imes.module.system.dal.redis.listener;
import com.cf.imes.framework.mq.redis.core.pubsub.AbstractRedisSimpleMessageListener;
+import com.cf.imes.framework.redis.constants.RedisKeyConstants;
import com.cf.imes.framework.security.core.service.SecurityFrameworkService;
-import com.cf.imes.module.system.dal.redis.RedisRefreshChannelTopicConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.listener.ChannelTopic;
@@ -21,7 +21,7 @@ public class SystemPermissionRefreshRedisListener extends AbstractRedisSimpleMes
private final SecurityFrameworkService securityFrameworkService;
public SystemPermissionRefreshRedisListener(SecurityFrameworkService securityFrameworkService) {
- super.setTopic(new ChannelTopic(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH));
+ super.setTopic(new ChannelTopic(RedisKeyConstants.PERMISSION_REFRESH));
this.securityFrameworkService = securityFrameworkService;
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/MenuServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/MenuServiceImpl.java
index 65f105df0..4f64880ef 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/MenuServiceImpl.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/MenuServiceImpl.java
@@ -9,7 +9,6 @@ import com.cf.imes.module.system.controller.admin.permission.vo.menu.MenuSaveVO;
import com.cf.imes.module.system.dal.dataobject.permission.MenuDO;
import com.cf.imes.module.system.dal.mysql.permission.MenuMapper;
import com.cf.imes.module.system.dal.redis.RedisKeyConstants;
-import com.cf.imes.module.system.dal.redis.RedisRefreshChannelTopicConstants;
import com.cf.imes.module.system.enums.permission.MenuTypeEnum;
import com.cf.imes.module.system.service.organ.OrganService;
import com.google.common.annotations.VisibleForTesting;
@@ -160,9 +159,9 @@ public class MenuServiceImpl implements MenuService {
}
// 清空本地缓存
- redisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, "");
+ redisTemplate.convertAndSend(com.cf.imes.framework.redis.constants.RedisKeyConstants.PERMISSION_REFRESH, "");
}).exceptionally(e -> {
- log.error("[deleteMenu] redis 清空PERMISSION_MENU_ID_LIST或message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, e);
+ log.error("[deleteMenu] redis 清空PERMISSION_MENU_ID_LIST或message发送失败, topic:{}, 异常:{}", com.cf.imes.framework.redis.constants.RedisKeyConstants.PERMISSION_REFRESH, e);
return null;
});
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/PermissionServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/PermissionServiceImpl.java
index 042028b87..32f8f2574 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/PermissionServiceImpl.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/PermissionServiceImpl.java
@@ -29,7 +29,6 @@ import com.cf.imes.module.system.dal.dataobject.user.AdminUserDO;
import com.cf.imes.module.system.dal.mysql.permission.RoleMenuMapper;
import com.cf.imes.module.system.dal.mysql.permission.UserRoleMapper;
import com.cf.imes.module.system.dal.redis.RedisKeyConstants;
-import com.cf.imes.module.system.dal.redis.RedisRefreshChannelTopicConstants;
import com.cf.imes.module.system.enums.ErrorCodeConstants;
import com.cf.imes.module.system.enums.permission.DataScopeEnum;
import com.cf.imes.module.system.service.dept.DeptService;
@@ -255,7 +254,7 @@ public class PermissionServiceImpl implements PermissionService {
log.info("[assignRoleMenu] 批量删除redis[{}]数量:{}", patternKey, batchDelNum);
});
}
- stringRedisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, "");
+ stringRedisTemplate.convertAndSend(com.cf.imes.framework.redis.constants.RedisKeyConstants.PERMISSION_REFRESH, "");
})
.thenRunAsync(() -> {
// 清空角色下用户的token缓存
@@ -508,9 +507,9 @@ public class PermissionServiceImpl implements PermissionService {
log.info("[batchAssignRoleUsers] 批量删除redis[{}]数量:{}", patternKey, batchDelNum);
});
}
- stringRedisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, "");
+ stringRedisTemplate.convertAndSend(com.cf.imes.framework.redis.constants.RedisKeyConstants.PERMISSION_REFRESH, "");
}).exceptionally(e -> {
- log.error("[batchAssignRoleUsers] redis 清空USER_ROLE_ID_LIST或message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, e);
+ log.error("[batchAssignRoleUsers] redis 清空USER_ROLE_ID_LIST或message发送失败, topic:{}, 异常:{}", com.cf.imes.framework.redis.constants.RedisKeyConstants.PERMISSION_REFRESH, e);
return null;
});
}
@@ -590,9 +589,9 @@ public class PermissionServiceImpl implements PermissionService {
CompletableFuture.runAsync(() -> {
// 移除redis中的缓存
stringRedisTemplate.delete(String.format(String.valueOf(new StringBuffer(RedisKeyConstants.USER_ROLE_ID_LIST).append(":%s:%s")), organId, userId));
- stringRedisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, "");
+ stringRedisTemplate.convertAndSend(com.cf.imes.framework.redis.constants.RedisKeyConstants.PERMISSION_REFRESH, "");
}).exceptionally(e -> {
- log.error("[assignUserRole] redis message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, e);
+ log.error("[assignUserRole] redis message发送失败, topic:{}, 异常:{}", com.cf.imes.framework.redis.constants.RedisKeyConstants.PERMISSION_REFRESH, e);
return null;
});
}
@@ -764,7 +763,7 @@ public class PermissionServiceImpl implements PermissionService {
})
.thenRunAsync(() -> {
//通知刷新本地权限缓存
- stringRedisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, "");
+ stringRedisTemplate.convertAndSend(com.cf.imes.framework.redis.constants.RedisKeyConstants.PERMISSION_REFRESH, "");
})
.exceptionally(e -> {
log.error("[PermissionService][flushCacheWhenTenantPackageChange]失败, 异常:{}", e);
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/RoleServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/RoleServiceImpl.java
index 2f23e1831..abb3123f2 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/RoleServiceImpl.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/permission/RoleServiceImpl.java
@@ -19,7 +19,6 @@ import com.cf.imes.module.system.controller.admin.permission.vo.role.RoleSaveReq
import com.cf.imes.module.system.dal.dataobject.permission.RoleDO;
import com.cf.imes.module.system.dal.mysql.permission.RoleMapper;
import com.cf.imes.module.system.dal.redis.RedisKeyConstants;
-import com.cf.imes.module.system.dal.redis.RedisRefreshChannelTopicConstants;
import com.cf.imes.module.system.enums.ErrorCodeConstants;
import com.cf.imes.module.system.enums.permission.DataScopeEnum;
import com.cf.imes.module.system.enums.permission.RoleCodeEnum;
@@ -178,7 +177,7 @@ public class RoleServiceImpl implements RoleService {
}
}
// 通知刷新本地缓存
- stringRedisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, "");
+ stringRedisTemplate.convertAndSend(com.cf.imes.framework.redis.constants.RedisKeyConstants.PERMISSION_REFRESH, "");
}
/**