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