From 87c34ab6cc83788f7906dee30029b5c1a6fd7b79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=A7=80=E4=BF=A1?= Date: Thu, 28 Mar 2024 20:04:20 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=AB=98=E5=B9=B6=E5=8F=91=E4=B8=8B?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E4=BC=9A=E4=B8=A2=E5=A4=B1=E6=B6=88=E6=81=AF?= =?UTF-8?q?=EF=BC=8C=E6=AF=94=E5=A6=82=E9=80=9A=E8=AE=AF=E5=BD=95=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E4=BA=8B=E4=BB=B6=EF=BC=8C=E9=87=8D=E5=A4=8D=E9=94=AE?= =?UTF-8?q?=E6=98=AF=E8=BF=99=E6=A0=B7=E7=9A=84messageId:event-1711619624-?= =?UTF-8?q?sys-change=5Fcontact-?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouter.java | 1 + 1 file changed, 1 insertion(+) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouter.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouter.java index 831de148f..7490614bb 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouter.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouter.java @@ -266,6 +266,7 @@ public class WxCpTpMessageRouter { private boolean isMsgDuplicated(WxCpTpXmlMessage wxMessage) { StringBuilder messageId = new StringBuilder(); + messageId.append(wxMessage.getToUserName()); if (wxMessage.getInfoType() != null) { messageId.append(wxMessage.getInfoType()) .append("-").append(StringUtils.trimToEmpty(wxMessage.getSuiteId())) -- Gitee From ebd85ff09484d95d59aa94634f0caf2ae5fa87b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=A7=80=E4=BF=A1?= Date: Fri, 29 Mar 2024 06:18:55 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8C=89suiteId=E5=88=86?= =?UTF-8?q?=E5=88=AB=E6=B6=88=E6=81=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cp/tp/message/WxCpTpMessageRouter.java | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouter.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouter.java index 7490614bb..99f7c85d9 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouter.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouter.java @@ -187,15 +187,17 @@ public class WxCpTpMessageRouter { return new WxCpTpMessageRouterRule(this); } + /** * 处理微信消息. * + * @param suiteId the suiteId * @param wxMessage the wx message * @param context the context * @return the wx cp xml out message */ - public WxCpXmlOutMessage route(final WxCpTpXmlMessage wxMessage, final Map context) { - if (isMsgDuplicated(wxMessage)) { + public WxCpXmlOutMessage route(final String suiteId, final WxCpTpXmlMessage wxMessage, final Map context) { + if (isMsgDuplicated(suiteId, wxMessage)) { // 如果是重复消息,那么就不做处理 return null; } @@ -254,6 +256,18 @@ public class WxCpTpMessageRouter { return res; } + + /** + * 处理微信消息. + * + * @param wxMessage the wx message + * @param context the context + * @return the wx cp xml out message + */ + public WxCpXmlOutMessage route(final WxCpTpXmlMessage wxMessage, final Map context) { + return this.route(null, wxMessage, new HashMap<>(2)); + } + /** * 处理微信消息. * @@ -264,7 +278,7 @@ public class WxCpTpMessageRouter { return this.route(wxMessage, new HashMap<>(2)); } - private boolean isMsgDuplicated(WxCpTpXmlMessage wxMessage) { + private boolean isMsgDuplicated(final String suiteId, WxCpTpXmlMessage wxMessage) { StringBuilder messageId = new StringBuilder(); messageId.append(wxMessage.getToUserName()); if (wxMessage.getInfoType() != null) { @@ -276,6 +290,10 @@ public class WxCpTpMessageRouter { .append("-").append(StringUtils.trimToEmpty(wxMessage.getChangeType())) .append("-").append(StringUtils.trimToEmpty(wxMessage.getServiceCorpId())) .append("-").append(StringUtils.trimToEmpty(wxMessage.getExternalUserID())); + } else { + if (StringUtils.isNotBlank(suiteId)) { + messageId.append(suiteId); + } } if (wxMessage.getMsgType() != null) { -- Gitee