From b569ab8cbe61212f3398e06538fff8882fb1fb74 Mon Sep 17 00:00:00 2001 From: foreveryang321 <453190450@qq.com> Date: Tue, 7 Nov 2023 16:23:26 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20#3156=20=E3=80=90=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E3=80=91=E4=BC=98=E5=8C=96=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=BA=94=E7=94=A8=E5=8F=82=E6=95=B0=E6=9C=AA?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=97=B6=E7=9A=84=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wx-java-cp-multi-spring-boot-starter/README.md | 11 +++++++++++ .../services/AbstractWxCpConfiguration.java | 11 +++++++---- .../services/WxCpInJedisConfiguration.java | 2 +- .../services/WxCpInMemoryConfiguration.java | 2 +- .../services/WxCpInRedisTemplateConfiguration.java | 2 +- .../services/WxCpInRedissonConfiguration.java | 2 +- 6 files changed, 22 insertions(+), 8 deletions(-) diff --git a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/README.md b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/README.md index d05c43bbaf..6b1ddaeb3b 100644 --- a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/README.md +++ b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/README.md @@ -80,6 +80,17 @@ public class DemoService { WxCpUserService userService2 = wxCpService2.getUserService(); userService2.getUserId("xxx"); // todo ... + + // 应用 3 的 WxCpService + WxCpService wxCpService3 = wxCpMultiServices.getWxCpService("tenantId3"); + // 判断是否为空 + if (wxCpService3 == null) { + // todo wxCpService3 为空,请先配置 tenantId3 企业微信应用参数 + return; + } + WxCpUserService userService3 = wxCpService3.getUserService(); + userService3.getUserId("xxx"); + // todo ... } } ``` diff --git a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/AbstractWxCpConfiguration.java b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/AbstractWxCpConfiguration.java index 05f5cae997..ec45ceaa2f 100644 --- a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/AbstractWxCpConfiguration.java +++ b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/AbstractWxCpConfiguration.java @@ -5,6 +5,7 @@ import com.binarywang.spring.starter.wxjava.cp.service.WxCpMultiServices; import com.binarywang.spring.starter.wxjava.cp.service.WxCpMultiServicesImpl; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.cp.api.WxCpService; import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl; import me.chanjar.weixin.cp.config.WxCpConfigStorage; @@ -24,13 +25,14 @@ * created on 2023/10/16 */ @RequiredArgsConstructor +@Slf4j public abstract class AbstractWxCpConfiguration { protected WxCpMultiServices configWxCpServices(WxCpMultiProperties wxCpMultiProperties) { - WxCpMultiServicesImpl wxCpServices = new WxCpMultiServicesImpl(); Map corps = wxCpMultiProperties.getCorps(); if (corps == null || corps.isEmpty()) { - throw new RuntimeException("企业微信配置为null"); + log.warn("企业微信应用参数未配置,通过 WxCpMultiServices#getWxCpService(\"tenantId\")获取实例将返回空"); + return new WxCpMultiServicesImpl(); } /** * 校验同一个企业下,agentId 是否唯一,避免使用 redis 缓存 token、ticket 时错乱。 @@ -55,6 +57,7 @@ protected WxCpMultiServices configWxCpServices(WxCpMultiProperties wxCpMultiProp } } } + WxCpMultiServicesImpl services = new WxCpMultiServicesImpl(); Set> entries = corps.entrySet(); for (Map.Entry entry : entries) { @@ -64,9 +67,9 @@ protected WxCpMultiServices configWxCpServices(WxCpMultiProperties wxCpMultiProp this.configCorp(storage, corpProperties); this.configHttp(storage, wxCpMultiProperties.getConfigStorage()); WxCpService wxCpService = this.configWxCpService(storage, wxCpMultiProperties.getConfigStorage()); - wxCpServices.addWxCpService(tenantId, wxCpService); + services.addWxCpService(tenantId, wxCpService); } - return wxCpServices; + return services; } /** diff --git a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInJedisConfiguration.java b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInJedisConfiguration.java index 8889e4e489..3e49a5024a 100644 --- a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInJedisConfiguration.java +++ b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInJedisConfiguration.java @@ -30,7 +30,7 @@ public class WxCpInJedisConfiguration extends AbstractWxCpConfiguration { private final ApplicationContext applicationContext; @Bean - public WxCpMultiServices wxCpServices() { + public WxCpMultiServices wxCpMultiServices() { return this.configWxCpServices(wxCpMultiProperties); } diff --git a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInMemoryConfiguration.java b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInMemoryConfiguration.java index df63806a37..dd0946fc53 100644 --- a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInMemoryConfiguration.java +++ b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInMemoryConfiguration.java @@ -23,7 +23,7 @@ public class WxCpInMemoryConfiguration extends AbstractWxCpConfiguration { private final WxCpMultiProperties wxCpMultiProperties; @Bean - public WxCpMultiServices wxCpServices() { + public WxCpMultiServices wxCpMultiServices() { return this.configWxCpServices(wxCpMultiProperties); } diff --git a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInRedisTemplateConfiguration.java b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInRedisTemplateConfiguration.java index 8f9943a94d..103956fed3 100644 --- a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInRedisTemplateConfiguration.java +++ b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInRedisTemplateConfiguration.java @@ -27,7 +27,7 @@ public class WxCpInRedisTemplateConfiguration extends AbstractWxCpConfiguration private final ApplicationContext applicationContext; @Bean - public WxCpMultiServices wxCpServices() { + public WxCpMultiServices wxCpMultiServices() { return this.configWxCpServices(wxCpMultiProperties); } diff --git a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInRedissonConfiguration.java b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInRedissonConfiguration.java index c4f7fcf687..b8fc3a83ac 100644 --- a/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInRedissonConfiguration.java +++ b/spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/services/WxCpInRedissonConfiguration.java @@ -32,7 +32,7 @@ public class WxCpInRedissonConfiguration extends AbstractWxCpConfiguration { private final ApplicationContext applicationContext; @Bean - public WxCpMultiServices wxCpServices() { + public WxCpMultiServices wxCpMultiServices() { return this.configWxCpServices(wxCpMultiProperties); }