diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkService.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkService.java index 2ca474d0f..8b2a58cf2 100644 --- a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkService.java +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkService.java @@ -23,4 +23,11 @@ public interface TenantFrameworkService { */ void validTenant(Long id); + /** + * 根据租户编号获取套餐id + * @param tenantId + * @return + */ + Long getPackageIdByTenantId(Long tenantId); + } diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkServiceImpl.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkServiceImpl.java index 7877ae1e0..87a6d916d 100644 --- a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkServiceImpl.java +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkServiceImpl.java @@ -49,6 +49,23 @@ public class TenantFrameworkServiceImpl implements TenantFrameworkService { }); + /** + * 针对 {@link #getPackageIdByTenantId(Long)} 的缓存 + */ + private final LoadingCache getPackageIdByTenantIdCache = CacheUtils.buildAsyncReloadingCache( + Duration.ofMinutes(1L), // 过期时间 1 分钟 + new CacheLoader() { + @Override + public Long load(Long id) { + if (tenantApi.validTenant(id).getCheckedData()){ + return tenantApi.getTenantInfo(id).getCheckedData().getPackageId(); + }else { + return null; + } + } + }); + + @Override @SneakyThrows public List getTenantIds() { @@ -61,4 +78,10 @@ public class TenantFrameworkServiceImpl implements TenantFrameworkService { validTenantCache.get(id).checkError(); } + @SneakyThrows + @Override + public Long getPackageIdByTenantId(Long tenantId) { + return getPackageIdByTenantIdCache.get(tenantId); + } + }