Skip to content

Commit be16513

Browse files
authored
#394开放平台增加 MessageRouter
开放平台增加 MessageRouter
2 parents f7dab92 + e659ca0 commit be16513

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,16 @@ public WxMpMessageRouterRule rule() {
130130
* 处理微信消息
131131
*/
132132
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context) {
133+
return route(wxMessage, context, null);
134+
}
135+
/**
136+
* 处理微信消息
137+
*/
138+
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context, WxMpService wxMpService) {
139+
if(wxMpService == null){
140+
wxMpService = this.wxMpService;
141+
}
142+
final WxMpService mpService = wxMpService;
133143
if (isMsgDuplicated(wxMessage)) {
134144
// 如果是重复消息,那么就不做处理
135145
return null;
@@ -159,12 +169,12 @@ public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String,
159169
this.executorService.submit(new Runnable() {
160170
@Override
161171
public void run() {
162-
rule.service(wxMessage, context, WxMpMessageRouter.this.wxMpService, WxMpMessageRouter.this.sessionManager, WxMpMessageRouter.this.exceptionHandler);
172+
rule.service(wxMessage, context, mpService, WxMpMessageRouter.this.sessionManager, WxMpMessageRouter.this.exceptionHandler);
163173
}
164174
})
165175
);
166176
} else {
167-
res = rule.service(wxMessage, context, this.wxMpService, this.sessionManager, this.exceptionHandler);
177+
res = rule.service(wxMessage, context, mpService, this.sessionManager, this.exceptionHandler);
168178
// 在同步操作结束,session访问结束
169179
this.log.debug("End session access: async=false, sessionId={}", wxMessage.getFromUser());
170180
sessionEndAccess(wxMessage);
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package me.chanjar.weixin.open.api.impl;
2+
3+
import me.chanjar.weixin.mp.api.WxMpMessageRouter;
4+
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
5+
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
6+
import me.chanjar.weixin.open.api.WxOpenService;
7+
8+
import java.util.HashMap;
9+
import java.util.Map;
10+
11+
public class WxOpenMessageRouter extends WxMpMessageRouter {
12+
private WxOpenService wxOpenService;
13+
public WxOpenMessageRouter(WxOpenService wxOpenService) {
14+
super(null);
15+
this.wxOpenService = wxOpenService;
16+
}
17+
18+
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, String appId) {
19+
return route(wxMessage, new HashMap<String, Object>(), appId);
20+
}
21+
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context, String appId) {
22+
return route(wxMessage, context, wxOpenService.getWxOpenComponentService().getWxMpServiceByAppid(appId));
23+
}
24+
}

0 commit comments

Comments
 (0)