diff --git a/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java b/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java index 42b55fc..2efd3eb 100644 --- a/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java +++ b/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java @@ -6,16 +6,14 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.enums.*; -import com.iformall.mp.service.WxMpManager; +import com.iformall.mp.manager.WxMpManager; import com.iformall.mp.utils.MpUtil; import com.iformall.service.*; import com.iformall.service.wechat.WxOpenService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.mp.api.WxMpMessageRouter; import me.chanjar.weixin.mp.api.WxMpService; -import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import me.chanjar.weixin.open.bean.message.WxOpenXmlMessage; @@ -37,7 +35,6 @@ import java.io.InputStream; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.List; @Controller @RequestMapping("/wxOpen") diff --git a/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMemController.java b/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMemController.java index c2b170d..db51cb9 100644 --- a/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMemController.java +++ b/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMemController.java @@ -1,7 +1,7 @@ package com.iformall.mp.controller; import com.iformall.common.ResultData; -import com.iformall.mp.service.WxMpManager; +import com.iformall.mp.manager.WxMpManager; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.result.WxMpUser; diff --git a/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMenuController.java b/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMenuController.java index 4d332b2..b9ed5ca 100644 --- a/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMenuController.java +++ b/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMenuController.java @@ -1,6 +1,6 @@ package com.iformall.mp.controller; -import com.iformall.mp.service.WxMpManager; +import com.iformall.mp.manager.WxMpManager; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.bean.menu.WxMenu; import me.chanjar.weixin.common.bean.menu.WxMenuButton; diff --git a/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMpCallBackController.java b/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMpCallBackController.java index cad7f63..c9a0c99 100644 --- a/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMpCallBackController.java +++ b/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxMpCallBackController.java @@ -1,6 +1,6 @@ package com.iformall.mp.controller; -import com.iformall.mp.service.WxMpManager; +import com.iformall.mp.manager.WxMpManager; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; diff --git a/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxRedirectController.java b/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxRedirectController.java index 7e6a1ae..8daa55b 100644 --- a/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxRedirectController.java +++ b/mlWechatOpen/src/main/java/com/iformall/mp/controller/WxRedirectController.java @@ -1,6 +1,7 @@ package com.iformall.mp.controller; -import com.iformall.mp.service.WxMpManager; +import com.iformall.mp.manager.WxMpManager; +import com.iformall.mp.utils.MpUtil; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; @@ -18,7 +19,7 @@ import org.springframework.web.bind.annotation.RequestParam; * @author Stormeye */ @Controller -@RequestMapping("/wx/redirect/{account}") +@RequestMapping("/wx/redirect/{appId}") public class WxRedirectController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @@ -27,9 +28,9 @@ public class WxRedirectController { @RequestMapping("/greet") - public String greetUser(@PathVariable String account, @RequestParam String code, ModelMap map) { + public String greetUser(@PathVariable String appId, @RequestParam String code, ModelMap map) { - WxMpService mpService = wxMpManager.getMpService(account); + WxMpService mpService = wxMpManager.getMpService(appId); try { WxMpOAuth2AccessToken accessToken = mpService.oauth2getAccessToken(code); 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 5340951..a804abd 100644 --- a/mlWechatOpen/src/main/java/com/iformall/mp/manager/WxMpManager.java +++ b/mlWechatOpen/src/main/java/com/iformall/mp/manager/WxMpManager.java @@ -41,6 +41,15 @@ public class WxMpManager { @Autowired private SubscribeHandler subscribeHandler; + public WxMpService getMpService(String appId) { + WxAppinfo appinfo = appinfoService.getByAppId(appId); + if(appinfo == null) { + return null; + } + WxMpService mpService = MpUtil.getMpService(appinfo); + return mpService; + } + public WxMpMessageRouter getRouter(WxAppinfo appinfo) { WxMpService mpService = MpUtil.getMpService(appinfo); if(mpService != null) { diff --git a/mlWechatOpen/src/main/java/com/iformall/mp/service/WxMpManager.java b/mlWechatOpen/src/main/java/com/iformall/mp/service/WxMpManager.java deleted file mode 100644 index 35e13da..0000000 --- a/mlWechatOpen/src/main/java/com/iformall/mp/service/WxMpManager.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.iformall.mp.service; - -import com.iformall.domain.po.WxAppinfo; -import com.iformall.mp.handler.*; -import com.iformall.mp.utils.MpUtil; -import com.iformall.service.WxAppinfoService; -import me.chanjar.weixin.mp.api.WxMpMessageRouter; -import me.chanjar.weixin.mp.api.WxMpService; -import me.chanjar.weixin.mp.constant.WxMpEventConstants; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import static me.chanjar.weixin.common.api.WxConsts.*; - -/** - * wechat mp configuration - * - * @author Binary Wang(https://github.com/binarywang) - */ -@Service -public class WxMpManager { - - @Autowired - private WxAppinfoService appinfoService; - @Autowired - private LogHandler logHandler; - @Autowired - private NullHandler nullHandler; - @Autowired - private KfSessionHandler kfSessionHandler; - @Autowired - private StoreCheckNotifyHandler storeCheckNotifyHandler; - @Autowired - private LocationHandler locationHandler; - @Autowired - private MenuHandler menuHandler; - @Autowired - private MsgHandler msgHandler; - @Autowired - private UnsubscribeHandler unsubscribeHandler; - @Autowired - private SubscribeHandler subscribeHandler; - - public WxMpMessageRouter getRouter(String appId) { - WxMpService mpService = getMpService(appId); - if(mpService != null) { - return newRouter(mpService); - } - return null; - } - - public WxMpMessageRouter getRouter(WxMpService mpService) { - return newRouter(mpService); - } - - public WxMpService getMpService(String appId) { - WxAppinfo appinfo = appinfoService.getByAppId(appId); - if(appinfo == null) - return null; - return MpUtil.getMpService(appinfo); - } - - private WxMpMessageRouter newRouter(WxMpService wxMpService) { - final WxMpMessageRouter newRouter = new WxMpMessageRouter(wxMpService); - - // 记录所有事件的日志 (异步执行) - newRouter.rule().handler(this.logHandler).next(); - - // 接收客服会话管理事件 - newRouter.rule().async(false).msgType(XmlMsgType.EVENT) - .event(WxMpEventConstants.CustomerService.KF_CREATE_SESSION) - .handler(this.kfSessionHandler).end(); - newRouter.rule().async(false).msgType(XmlMsgType.EVENT) - .event(WxMpEventConstants.CustomerService.KF_CLOSE_SESSION) - .handler(this.kfSessionHandler) - .end(); - newRouter.rule().async(false).msgType(XmlMsgType.EVENT) - .event(WxMpEventConstants.CustomerService.KF_SWITCH_SESSION) - .handler(this.kfSessionHandler).end(); - - // 门店审核事件 - newRouter.rule().async(false).msgType(XmlMsgType.EVENT) - .event(WxMpEventConstants.POI_CHECK_NOTIFY) - .handler(this.storeCheckNotifyHandler).end(); - - // 自定义菜单事件 - newRouter.rule().async(false).msgType(XmlMsgType.EVENT) - .event(MenuButtonType.CLICK).handler(this.menuHandler).end(); - - // 点击菜单连接事件 - newRouter.rule().async(false).msgType(XmlMsgType.EVENT) - .event(MenuButtonType.VIEW).handler(this.nullHandler).end(); - - // 关注事件 - newRouter.rule().async(false).msgType(XmlMsgType.EVENT) - .event(EventType.SUBSCRIBE).handler(this.subscribeHandler) - .end(); - - // 取消关注事件 - newRouter.rule().async(false).msgType(XmlMsgType.EVENT) - .event(EventType.UNSUBSCRIBE) - .handler(this.unsubscribeHandler).end(); - - // 上报地理位置事件 - newRouter.rule().async(false).msgType(XmlMsgType.EVENT) - .event(EventType.LOCATION).handler(this.locationHandler) - .end(); - - // 接收地理位置消息 - newRouter.rule().async(false).msgType(XmlMsgType.LOCATION) - .handler(this.locationHandler).end(); - - // 扫码事件 - newRouter.rule().async(false).msgType(XmlMsgType.EVENT) - .event(EventType.SCAN).handler(this.nullHandler).end(); - - // 默认 - newRouter.rule().async(false).handler(this.msgHandler).end(); - - return newRouter; - } - -}