Bladeren bron

#394开放平台增加 MessageRouter

开放平台增加 MessageRouter
master
Binary Wang 7 jaren geleden
committed by GitHub
bovenliggende
commit
be16513d06
Geen bekende sleutel gevonden voor deze handtekening in de database GPG sleutel-ID: 4AEE18F83AFDEB23
2 gewijzigde bestanden met toevoegingen van 36 en 2 verwijderingen
  1. +12
    -2
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java
  2. +24
    -0
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMessageRouter.java

+ 12
- 2
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java Bestand weergeven

@@ -130,6 +130,16 @@ public class WxMpMessageRouter {
* 处理微信消息
*/
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context) {
return route(wxMessage, context, null);
}
/**
* 处理微信消息
*/
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context, WxMpService wxMpService) {
if(wxMpService == null){
wxMpService = this.wxMpService;
}
final WxMpService mpService = wxMpService;
if (isMsgDuplicated(wxMessage)) {
// 如果是重复消息,那么就不做处理
return null;
@@ -159,12 +169,12 @@ public class WxMpMessageRouter {
this.executorService.submit(new Runnable() {
@Override
public void run() {
rule.service(wxMessage, context, WxMpMessageRouter.this.wxMpService, WxMpMessageRouter.this.sessionManager, WxMpMessageRouter.this.exceptionHandler);
rule.service(wxMessage, context, mpService, WxMpMessageRouter.this.sessionManager, WxMpMessageRouter.this.exceptionHandler);
}
})
);
} else {
res = rule.service(wxMessage, context, this.wxMpService, this.sessionManager, this.exceptionHandler);
res = rule.service(wxMessage, context, mpService, this.sessionManager, this.exceptionHandler);
// 在同步操作结束,session访问结束
this.log.debug("End session access: async=false, sessionId={}", wxMessage.getFromUser());
sessionEndAccess(wxMessage);


+ 24
- 0
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMessageRouter.java Bestand weergeven

@@ -0,0 +1,24 @@
package me.chanjar.weixin.open.api.impl;

import me.chanjar.weixin.mp.api.WxMpMessageRouter;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
import me.chanjar.weixin.open.api.WxOpenService;

import java.util.HashMap;
import java.util.Map;

public class WxOpenMessageRouter extends WxMpMessageRouter {
private WxOpenService wxOpenService;
public WxOpenMessageRouter(WxOpenService wxOpenService) {
super(null);
this.wxOpenService = wxOpenService;
}

public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, String appId) {
return route(wxMessage, new HashMap<String, Object>(), appId);
}
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context, String appId) {
return route(wxMessage, context, wxOpenService.getWxOpenComponentService().getWxMpServiceByAppid(appId));
}
}

Laden…
Annuleren
Opslaan