@@ -187,15 +187,17 @@ public WxCpTpMessageRouterRule rule() {
187187    return  new  WxCpTpMessageRouterRule (this );
188188  }
189189
190+ 
190191  /** 
191192   * 处理微信消息. 
192193   * 
194+    * @param suiteId   the suiteId 
193195   * @param wxMessage the wx message 
194196   * @param context   the context 
195197   * @return the wx cp xml out message 
196198   */ 
197-   public  WxCpXmlOutMessage  route (final  WxCpTpXmlMessage  wxMessage , final  Map <String , Object > context ) {
198-     if  (isMsgDuplicated (wxMessage )) {
199+   public  WxCpXmlOutMessage  route (final  String   suiteId ,  final   WxCpTpXmlMessage  wxMessage , final  Map <String , Object > context ) {
200+     if  (isMsgDuplicated (suiteId ,  wxMessage )) {
199201      // 如果是重复消息,那么就不做处理 
200202      return  null ;
201203    }
@@ -254,6 +256,18 @@ public WxCpXmlOutMessage route(final WxCpTpXmlMessage wxMessage, final Map<Strin
254256    return  res ;
255257  }
256258
259+ 
260+   /** 
261+    * 处理微信消息. 
262+    * 
263+    * @param wxMessage the wx message 
264+    * @param context   the context 
265+    * @return the wx cp xml out message 
266+    */ 
267+   public  WxCpXmlOutMessage  route (final  WxCpTpXmlMessage  wxMessage , final  Map <String , Object > context ) {
268+     return  this .route (null , wxMessage , new  HashMap <>(2 ));
269+   }
270+ 
257271  /** 
258272   * 处理微信消息. 
259273   * 
@@ -264,8 +278,9 @@ public WxCpXmlOutMessage route(final WxCpTpXmlMessage wxMessage) {
264278    return  this .route (wxMessage , new  HashMap <>(2 ));
265279  }
266280
267-   private  boolean  isMsgDuplicated (WxCpTpXmlMessage  wxMessage ) {
281+   private  boolean  isMsgDuplicated (final   String   suiteId ,  WxCpTpXmlMessage  wxMessage ) {
268282    StringBuilder  messageId  = new  StringBuilder ();
283+     messageId .append (wxMessage .getToUserName ());
269284    if  (wxMessage .getInfoType () != null ) {
270285      messageId .append (wxMessage .getInfoType ())
271286        .append ("-" ).append (StringUtils .trimToEmpty (wxMessage .getSuiteId ()))
@@ -275,6 +290,10 @@ private boolean isMsgDuplicated(WxCpTpXmlMessage wxMessage) {
275290        .append ("-" ).append (StringUtils .trimToEmpty (wxMessage .getChangeType ()))
276291        .append ("-" ).append (StringUtils .trimToEmpty (wxMessage .getServiceCorpId ()))
277292        .append ("-" ).append (StringUtils .trimToEmpty (wxMessage .getExternalUserID ()));
293+     } else  {
294+       if  (StringUtils .isNotBlank (suiteId )) {
295+         messageId .append (suiteId );
296+       }
278297    }
279298
280299    if  (wxMessage .getMsgType () != null ) {
0 commit comments