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()))