From 2a6c414bddfa33e0431d11b7fbc60d635832bb56 Mon Sep 17 00:00:00 2001 From: stylefeng Date: Tue, 14 Jan 2025 15:55:37 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.3.3=E3=80=91=E3=80=90org=E3=80=91?= =?UTF-8?q?=E3=80=90cache=E3=80=91=E6=9B=B4=E6=96=B0=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E6=9C=BA=E6=9E=84=E7=BC=93=E5=AD=98=E7=9A=84=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=92=8C=E5=88=A0=E9=99=A4=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../orginfo/clear/OrgInfoClearListener.java | 33 ------------------- .../clear/OrgSubFlagClearListener.java | 16 +++++++-- .../modular/org/constants/OrgConstants.java | 5 --- .../impl/HrOrganizationServiceImpl.java | 11 +++---- 4 files changed, 19 insertions(+), 46 deletions(-) delete mode 100644 kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/cache/orginfo/clear/OrgInfoClearListener.java diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/cache/orginfo/clear/OrgInfoClearListener.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/cache/orginfo/clear/OrgInfoClearListener.java deleted file mode 100644 index ca49ef96c..000000000 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/cache/orginfo/clear/OrgInfoClearListener.java +++ /dev/null @@ -1,33 +0,0 @@ -package cn.stylefeng.roses.kernel.sys.modular.org.cache.orginfo.clear; - -import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi; -import cn.stylefeng.roses.kernel.event.api.annotation.BusinessListener; -import cn.stylefeng.roses.kernel.sys.api.pojo.org.HrOrganizationDTO; -import cn.stylefeng.roses.kernel.sys.modular.org.constants.OrgConstants; -import jakarta.annotation.Resource; -import org.springframework.stereotype.Service; - -/** - * 监听组织机构的修改,清除相关缓存 - * - * @author fengshuonan - * @since 2025/1/10 11:48 - */ -@Service -public class OrgInfoClearListener { - - @Resource(name = "sysOrgInfoCache") - private CacheOperatorApi sysOrgInfoCache; - - /** - * 删除组织机构详情的缓存 - * - * @author fengshuonan - * @since 2025/1/10 12:32 - */ - @BusinessListener(businessCode = OrgConstants.UPDATE_ORG_INFO_EVENT) - public void updateOrgCallback(Long orgId) { - sysOrgInfoCache.remove(orgId.toString()); - } - -} diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/cache/subflag/clear/OrgSubFlagClearListener.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/cache/subflag/clear/OrgSubFlagClearListener.java index 986687f06..10413f7b9 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/cache/subflag/clear/OrgSubFlagClearListener.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/cache/subflag/clear/OrgSubFlagClearListener.java @@ -3,12 +3,14 @@ package cn.stylefeng.roses.kernel.sys.modular.org.cache.subflag.clear; 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.api.pojo.org.HrOrganizationDTO; import cn.stylefeng.roses.kernel.sys.modular.org.constants.OrgConstants; import cn.stylefeng.roses.kernel.sys.modular.org.entity.HrOrganization; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import java.util.Collection; +import java.util.Set; /** * 监听组织机构相关的事件,从而进行清空子级标识,保障缓存同步 @@ -22,6 +24,9 @@ public class OrgSubFlagClearListener { @Resource(name = "sysOrgSubFlagCache") private CacheOperatorApi sysOrgSubFlagCache; + @Resource(name = "sysOrgInfoCache") + private CacheOperatorApi sysOrgInfoCache; + /** * 监听添加组织机构 *

@@ -47,12 +52,15 @@ public class OrgSubFlagClearListener { * @since 2023/7/14 18:40 */ @BusinessListener(businessCode = OrgConstants.EDIT_ORG_EVENT) - public void editOrgCallback() { + public void editOrgCallback(Long orgId) { // 获取所有主键 Collection allKeys = sysOrgSubFlagCache.getAllKeys(); // 删除所有子集标识 sysOrgSubFlagCache.remove(allKeys); + + // 删除组织机构详情的缓存 + sysOrgInfoCache.remove(orgId.toString()); } /** @@ -62,7 +70,7 @@ public class OrgSubFlagClearListener { * @since 2023/7/14 18:40 */ @BusinessListener(businessCode = OrgConstants.DELETE_ORG_EVENT) - public void deleteOrgCallback() { + public void deleteOrgCallback(Set orgIdList) { // 获取所有主键 Collection allKeys = sysOrgSubFlagCache.getAllKeys(); @@ -70,6 +78,10 @@ public class OrgSubFlagClearListener { // 删除所有子集标识 sysOrgSubFlagCache.remove(allKeys); + // 删除组织机构详情的缓存 + // 机构id列表转化为String列表 + Collection orgIdListStr = orgIdList.stream().map(String::valueOf).toList(); + sysOrgInfoCache.remove(orgIdListStr); } } diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/constants/OrgConstants.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/constants/OrgConstants.java index 5d6c3b9d3..9105676c3 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/constants/OrgConstants.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/constants/OrgConstants.java @@ -64,9 +64,4 @@ public interface OrgConstants { */ String ORG_INFO_CACHE_PREFIX = "SYS:ORG:INFO:"; - /** - * 更新组织机构详情的事件 - */ - String UPDATE_ORG_INFO_EVENT = "UPDATE_ORG_INFO_EVENT"; - } diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java index 04b85f62f..f41957d95 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java @@ -114,7 +114,7 @@ public class HrOrganizationServiceImpl extends ServiceImpl