From dc6e48d5387d922f28284a82db6a17a75de0ddec Mon Sep 17 00:00:00 2001 From: xiafang Date: Fri, 5 May 2023 12:20:06 +0800 Subject: [PATCH] =?UTF-8?q?enhance:=20=E4=BF=AE=E6=94=B9=E4=BA=86=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E9=85=8D=E7=BD=AE=E5=8A=A0=E8=BD=BD=E6=9C=BA=E5=88=B6?= =?UTF-8?q?=EF=BC=8C=E7=8E=B0=E5=9C=A8=E5=8F=AF=E4=BB=A5=E4=B8=8D=E5=81=9C?= =?UTF-8?q?=E6=9C=BA=E7=BB=B4=E6=8A=A4=E5=BE=AE=E4=BF=A1=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../payment/wechat/WechatPayConfiguration.java | 4 +--- .../payment/wechat/v3/WechatMetaContainer.java | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguration.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguration.java index f2c77c5..56b3a04 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguration.java +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguration.java @@ -43,9 +43,7 @@ public class WechatPayConfiguration { @Bean @ConditionalOnMissingBean WechatMetaContainer wechatMetaContainer(WechatTenantService wechatTenantService) { - WechatMetaContainer container = new WechatMetaContainer(); - container.addWechatMetas(wechatTenantService.loadTenants()); - return container; + return new WechatMetaContainer(wechatTenantService); } /** diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaContainer.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaContainer.java index 5109bec..d82c0ca 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaContainer.java +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaContainer.java @@ -17,6 +17,9 @@ package cn.felord.payment.wechat.v3; +import cn.felord.payment.wechat.WechatTenantService; +import lombok.AllArgsConstructor; + import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentSkipListSet; @@ -27,10 +30,11 @@ import java.util.concurrent.ConcurrentSkipListSet; * @author felord.cn * @since 1.0.0.RELEASE */ +@AllArgsConstructor public class WechatMetaContainer { private final Map wechatMetaBeanMap = new ConcurrentHashMap<>(); private final Set tenantIds = new ConcurrentSkipListSet<>(); - + private final WechatTenantService wechatTenantService; /** * Add wechat metas. @@ -66,7 +70,14 @@ public class WechatMetaContainer { * @return the wechat meta */ public WechatMetaBean getWechatMeta(String tenantId) { - return Objects.requireNonNull(this.wechatMetaBeanMap.get(tenantId)); + WechatMetaBean wechatMetaBean = this.wechatMetaBeanMap.get(tenantId); + if (Objects.nonNull(wechatMetaBean)) { + return wechatMetaBean; + } else { + this.addWechatMetas(wechatTenantService.loadTenants()); + return Objects.requireNonNull(this.wechatMetaBeanMap.get(tenantId), + "cant obtain the config with tenant: "+tenantId); + } } /**