From 724e781ad1ee9ad05a7405e25d0adf3b519d1740 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 25 Apr 2019 14:37:00 +0800 Subject: [PATCH] =?UTF-8?q?[=E7=BA=BF=E7=A8=8B][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E5=A4=8D=E7=94=A8=E5=B7=B2=E6=9C=89=E7=BA=BF=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/mp/manager/WxMpManager.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/mlWechatOpen/src/main/java/com/iformall/mp/manager/WxMpManager.java b/mlWechatOpen/src/main/java/com/iformall/mp/manager/WxMpManager.java index e8d8f9d..5b52a44 100644 --- a/mlWechatOpen/src/main/java/com/iformall/mp/manager/WxMpManager.java +++ b/mlWechatOpen/src/main/java/com/iformall/mp/manager/WxMpManager.java @@ -1,7 +1,6 @@ package com.iformall.mp.manager; import com.iformall.mp.handler.*; -import com.iformall.service.WxAppinfoService; import com.iformall.service.wechat.FmOpenService; import me.chanjar.weixin.mp.api.WxMpMessageRouter; import me.chanjar.weixin.mp.api.WxMpService; @@ -9,6 +8,9 @@ import me.chanjar.weixin.mp.constant.WxMpEventConstants; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + import static me.chanjar.weixin.common.api.WxConsts.*; /** @@ -19,12 +21,11 @@ import static me.chanjar.weixin.common.api.WxConsts.*; @Service public class WxMpManager { + private Map myRouterMap = new ConcurrentHashMap(); - @Autowired - protected FmOpenService openService; @Autowired - private WxAppinfoService appinfoService; + protected FmOpenService openService; @Autowired private LogHandler logHandler; @Autowired @@ -49,7 +50,12 @@ public class WxMpManager { } public WxMpMessageRouter getRouter(WxMpService mpService) { - return newRouter(mpService); + String appId = mpService.getWxMpConfigStorage().getAppId(); + if (myRouterMap.containsKey(appId)) { + return myRouterMap.get(appId); + } else { + return newRouter(mpService); + } } private WxMpMessageRouter newRouter(WxMpService wxMpService) { @@ -122,6 +128,8 @@ public class WxMpManager { // 默认 newRouter.rule().async(false).handler(this.msgHandler).end(); + myRouterMap.put(wxMpService.getWxMpConfigStorage().getAppId(), newRouter); + return newRouter; }