From 60271250253897f68f8e64d36fbffdfdbb464b4a Mon Sep 17 00:00:00 2001 From: Daniel Qian Date: Wed, 26 Nov 2014 21:16:44 +0800 Subject: [PATCH] issue #46 --- .../weixin/cp/api/WxCpMessageRouter.java | 14 ++++++++++++++ .../weixin/mp/api/WxMpMessageRouter.java | 18 ++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java index 01cc6321..5d5828e5 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMessageRouter.java @@ -119,6 +119,8 @@ public class WxCpMessageRouter { private boolean async = true; + private String fromUser; + private String msgType; private String event; @@ -212,6 +214,16 @@ public class WxCpMessageRouter { return this; } + /** + * 如果fromUser等于某值 + * @param fromUser + * @return + */ + public Rule fromUser(String fromUser) { + this.fromUser = fromUser; + return this; + } + /** * 设置微信消息拦截器 * @param interceptor @@ -282,6 +294,8 @@ public class WxCpMessageRouter { protected boolean test(WxCpXmlMessage wxMessage) { return + (this.fromUser == null || this.fromUser.equals(wxMessage.getFromUserName())) + && (this.agentId == null || this.agentId.equals(wxMessage.getAgentId())) && (this.msgType == null || this.msgType.equals(wxMessage.getMsgType())) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java index b445d9c9..07451d6f 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java @@ -118,6 +118,8 @@ public class WxMpMessageRouter { private final WxMpService wxMpService; private boolean async = true; + + private String fromUser; private String msgType; @@ -199,7 +201,17 @@ public class WxMpMessageRouter { this.rContent = regex; return this; } - + + /** + * 如果fromUser等于某值 + * @param fromUser + * @return + */ + public Rule fromUser(String fromUser) { + this.fromUser = fromUser; + return this; + } + /** * 设置微信消息拦截器 * @param interceptor @@ -269,7 +281,9 @@ public class WxMpMessageRouter { } protected boolean test(WxMpXmlMessage wxMessage) { - return + return + (this.fromUser == null || this.fromUser.equals(wxMessage.getFromUserName())) + && (this.msgType == null || this.msgType.equals(wxMessage.getMsgType())) && (this.event == null || this.event.equals(wxMessage.getEvent()))