diff --git a/cf-framework/cf-spring-boot-starter-biz-organ/src/main/java/com/cf/imes/framework/organ/core/service/OrganFrameworkServiceImpl.java b/cf-framework/cf-spring-boot-starter-biz-organ/src/main/java/com/cf/imes/framework/organ/core/service/OrganFrameworkServiceImpl.java index efd36bbf7..141ef768c 100644 --- a/cf-framework/cf-spring-boot-starter-biz-organ/src/main/java/com/cf/imes/framework/organ/core/service/OrganFrameworkServiceImpl.java +++ b/cf-framework/cf-spring-boot-starter-biz-organ/src/main/java/com/cf/imes/framework/organ/core/service/OrganFrameworkServiceImpl.java @@ -1,5 +1,6 @@ package com.cf.imes.framework.organ.core.service; +import com.cf.imes.framework.common.pojo.CommonResult; import com.cf.imes.framework.common.util.cache.CacheUtils; import com.cf.imes.module.system.api.dept.DeptApi; import com.cf.imes.module.system.api.organ.OrganApi; @@ -37,6 +38,34 @@ public class OrganFrameworkServiceImpl implements OrganFrameworkService { }); + /** + * 针对 {@link #validOrgan(Long)} 的缓存 + */ + private final LoadingCache> validOrganCache = CacheUtils.buildAsyncReloadingCache( + Duration.ofMinutes(1L), // 过期时间 1 分钟 + new CacheLoader<>() { + + @Override + public CommonResult load(Long id) { + return organApi.validOrgan(id); + } + + }); + + /** + * 针对 {@link #validDept(Long)} 的缓存 + */ + private final LoadingCache> validOrganDept = CacheUtils.buildAsyncReloadingCache( + Duration.ofMinutes(1L), // 过期时间 1 分钟 + new CacheLoader<>() { + + @Override + public CommonResult load(Long id) { + return deptApi.validateDept(id); + } + + }); + @Override @SneakyThrows public List getOrganIds() { @@ -46,11 +75,12 @@ public class OrganFrameworkServiceImpl implements OrganFrameworkService { @Override @SneakyThrows public void validOrgan(Long id) { - organApi.validOrgan(id).checkError(); + validOrganCache.get(id).checkError(); } @Override + @SneakyThrows public void validDept(Long id) { - deptApi.validateDept(id).checkError(); + validOrganDept.get(id).checkError(); } }