mirror of
https://github.com/dromara/payment-spring-boot.git
synced 2026-03-13 21:33:41 +08:00
enhance: 修改了支付配置加载机制,现在可以不停机维护微信支付参数了
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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<String, WechatMetaBean> wechatMetaBeanMap = new ConcurrentHashMap<>();
|
||||
private final Set<String> 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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user