Skip to content

Commit ccbbf8c

Browse files
committed
🐛 #858 修复批量添加卡券接口后推送事件被误判为重复消息的问题
1 parent 50cfb1f commit ccbbf8c

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java

+10-14
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
* @author Daniel Qian
5454
*/
5555
public class WxMpMessageRouter {
56-
5756
private static final int DEFAULT_THREAD_POOL_SIZE = 100;
5857
protected final Logger log = LoggerFactory.getLogger(WxMpMessageRouter.class);
5958
private final List<WxMpMessageRouterRule> rules = new ArrayList<>();
@@ -77,9 +76,7 @@ public WxMpMessageRouter(WxMpService wxMpService) {
7776
}
7877

7978
/**
80-
* <pre>
81-
* 使用自定义的 {@link ExecutorService}
82-
* </pre>
79+
* 使用自定义的 {@link ExecutorService}.
8380
*/
8481
public WxMpMessageRouter(WxMpService wxMpService, ExecutorService executorService) {
8582
this.wxMpService = wxMpService;
@@ -90,9 +87,7 @@ public WxMpMessageRouter(WxMpService wxMpService, ExecutorService executorServic
9087
}
9188

9289
/**
93-
* <pre>
94-
* 如果使用默认的 {@link ExecutorService},则系统退出前,应该调用该方法。
95-
* </pre>
90+
* 如果使用默认的 {@link ExecutorService},则系统退出前,应该调用该方法.
9691
*/
9792
public void shutDownExecutorService() {
9893
this.executorService.shutdown();
@@ -230,36 +225,37 @@ public void run() {
230225
}
231226

232227
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage) {
233-
return this.route(wxMessage, new HashMap<String, Object>());
228+
return this.route(wxMessage, new HashMap<String, Object>(2));
234229
}
235230

236-
protected boolean isMsgDuplicated(WxMpXmlMessage wxMessage) {
231+
private boolean isMsgDuplicated(WxMpXmlMessage wxMessage) {
237232
StringBuilder messageId = new StringBuilder();
238233
if (wxMessage.getMsgId() == null) {
239234
messageId.append(wxMessage.getCreateTime())
240235
.append("-").append(wxMessage.getFromUser())
241236
.append("-").append(StringUtils.trimToEmpty(wxMessage.getEventKey()))
242-
.append("-").append(StringUtils.trimToEmpty(wxMessage.getEvent()))
243-
;
237+
.append("-").append(StringUtils.trimToEmpty(wxMessage.getEvent()));
244238
} else {
245239
messageId.append(wxMessage.getMsgId())
246240
.append("-").append(wxMessage.getCreateTime())
247241
.append("-").append(wxMessage.getFromUser());
248242
}
249243

244+
if (StringUtils.isNotEmpty(wxMessage.getUserCardCode())) {
245+
messageId.append("-").append(wxMessage.getUserCardCode());
246+
}
247+
250248
return this.messageDuplicateChecker.isDuplicate(messageId.toString());
251249

252250
}
253251

254252
/**
255253
* 对session的访问结束.
256254
*/
257-
protected void sessionEndAccess(WxMpXmlMessage wxMessage) {
258-
255+
private void sessionEndAccess(WxMpXmlMessage wxMessage) {
259256
InternalSession session = ((InternalSessionManager) this.sessionManager).findSession(wxMessage.getFromUser());
260257
if (session != null) {
261258
session.endAccess();
262259
}
263-
264260
}
265261
}

0 commit comments

Comments
 (0)