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
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
WechatMetaContainer wechatMetaContainer(WechatTenantService wechatTenantService) {
|
WechatMetaContainer wechatMetaContainer(WechatTenantService wechatTenantService) {
|
||||||
WechatMetaContainer container = new WechatMetaContainer();
|
return new WechatMetaContainer(wechatTenantService);
|
||||||
container.addWechatMetas(wechatTenantService.loadTenants());
|
|
||||||
return container;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -17,6 +17,9 @@
|
|||||||
package cn.felord.payment.wechat.v3;
|
package cn.felord.payment.wechat.v3;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.felord.payment.wechat.WechatTenantService;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.ConcurrentSkipListSet;
|
import java.util.concurrent.ConcurrentSkipListSet;
|
||||||
@@ -27,10 +30,11 @@ import java.util.concurrent.ConcurrentSkipListSet;
|
|||||||
* @author felord.cn
|
* @author felord.cn
|
||||||
* @since 1.0.0.RELEASE
|
* @since 1.0.0.RELEASE
|
||||||
*/
|
*/
|
||||||
|
@AllArgsConstructor
|
||||||
public class WechatMetaContainer {
|
public class WechatMetaContainer {
|
||||||
private final Map<String, WechatMetaBean> wechatMetaBeanMap = new ConcurrentHashMap<>();
|
private final Map<String, WechatMetaBean> wechatMetaBeanMap = new ConcurrentHashMap<>();
|
||||||
private final Set<String> tenantIds = new ConcurrentSkipListSet<>();
|
private final Set<String> tenantIds = new ConcurrentSkipListSet<>();
|
||||||
|
private final WechatTenantService wechatTenantService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add wechat metas.
|
* Add wechat metas.
|
||||||
@@ -66,7 +70,14 @@ public class WechatMetaContainer {
|
|||||||
* @return the wechat meta
|
* @return the wechat meta
|
||||||
*/
|
*/
|
||||||
public WechatMetaBean getWechatMeta(String tenantId) {
|
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