mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-10-31 18:46:10 +08:00 
			
		
		
		
	开放平台增加 MessageRouter
This commit is contained in:
		| @ -130,6 +130,16 @@ public class WxMpMessageRouter { | |||||||
|    * 处理微信消息 |    * 处理微信消息 | ||||||
|    */ |    */ | ||||||
|   public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context) { |   public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context) { | ||||||
|  |     return route(wxMessage, context); | ||||||
|  |   } | ||||||
|  |   /** | ||||||
|  |    * 处理微信消息 | ||||||
|  |    */ | ||||||
|  |   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)) { |     if (isMsgDuplicated(wxMessage)) { | ||||||
|       // 如果是重复消息,那么就不做处理 |       // 如果是重复消息,那么就不做处理 | ||||||
|       return null; |       return null; | ||||||
| @ -159,12 +169,12 @@ public class WxMpMessageRouter { | |||||||
|           this.executorService.submit(new Runnable() { |           this.executorService.submit(new Runnable() { | ||||||
|             @Override |             @Override | ||||||
|             public void run() { |             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 { |       } else { | ||||||
|         res = rule.service(wxMessage, context, this.wxMpService, this.sessionManager, this.exceptionHandler); |         res = rule.service(wxMessage, context, mpService, this.sessionManager, this.exceptionHandler); | ||||||
|         // 在同步操作结束,session访问结束 |         // 在同步操作结束,session访问结束 | ||||||
|         this.log.debug("End session access: async=false, sessionId={}", wxMessage.getFromUser()); |         this.log.debug("End session access: async=false, sessionId={}", wxMessage.getFromUser()); | ||||||
|         sessionEndAccess(wxMessage); |         sessionEndAccess(wxMessage); | ||||||
|  | |||||||
| @ -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)); | ||||||
|  |   } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 007
					007