From 9b3820238465d7f4bbde8bda7cf851332d4571f7 Mon Sep 17 00:00:00 2001 From: Fanjc <271366833@qq.com> Date: Tue, 9 May 2023 03:29:01 +0000 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AEtenant=5Fid=E8=8E=B7=E5=8F=96?= =?UTF-8?q?packageid=EF=BC=8C=E5=B9=B6=E6=94=BE=E5=85=A5=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fanjc <271366833@qq.com> --- .../core/service/TenantFrameworkService.java | 7 ++++++ .../service/TenantFrameworkServiceImpl.java | 23 +++++++++++++++++++ 2 files changed, 30 insertions(+) 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); + } + }