53
53
* @author Daniel Qian
54
54
*/
55
55
public class WxMpMessageRouter {
56
-
57
56
private static final int DEFAULT_THREAD_POOL_SIZE = 100 ;
58
57
protected final Logger log = LoggerFactory .getLogger (WxMpMessageRouter .class );
59
58
private final List <WxMpMessageRouterRule > rules = new ArrayList <>();
@@ -77,9 +76,7 @@ public WxMpMessageRouter(WxMpService wxMpService) {
77
76
}
78
77
79
78
/**
80
- * <pre>
81
- * 使用自定义的 {@link ExecutorService}
82
- * </pre>
79
+ * 使用自定义的 {@link ExecutorService}.
83
80
*/
84
81
public WxMpMessageRouter (WxMpService wxMpService , ExecutorService executorService ) {
85
82
this .wxMpService = wxMpService ;
@@ -90,9 +87,7 @@ public WxMpMessageRouter(WxMpService wxMpService, ExecutorService executorServic
90
87
}
91
88
92
89
/**
93
- * <pre>
94
- * 如果使用默认的 {@link ExecutorService},则系统退出前,应该调用该方法。
95
- * </pre>
90
+ * 如果使用默认的 {@link ExecutorService},则系统退出前,应该调用该方法.
96
91
*/
97
92
public void shutDownExecutorService () {
98
93
this .executorService .shutdown ();
@@ -230,36 +225,37 @@ public void run() {
230
225
}
231
226
232
227
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 ));
234
229
}
235
230
236
- protected boolean isMsgDuplicated (WxMpXmlMessage wxMessage ) {
231
+ private boolean isMsgDuplicated (WxMpXmlMessage wxMessage ) {
237
232
StringBuilder messageId = new StringBuilder ();
238
233
if (wxMessage .getMsgId () == null ) {
239
234
messageId .append (wxMessage .getCreateTime ())
240
235
.append ("-" ).append (wxMessage .getFromUser ())
241
236
.append ("-" ).append (StringUtils .trimToEmpty (wxMessage .getEventKey ()))
242
- .append ("-" ).append (StringUtils .trimToEmpty (wxMessage .getEvent ()))
243
- ;
237
+ .append ("-" ).append (StringUtils .trimToEmpty (wxMessage .getEvent ()));
244
238
} else {
245
239
messageId .append (wxMessage .getMsgId ())
246
240
.append ("-" ).append (wxMessage .getCreateTime ())
247
241
.append ("-" ).append (wxMessage .getFromUser ());
248
242
}
249
243
244
+ if (StringUtils .isNotEmpty (wxMessage .getUserCardCode ())) {
245
+ messageId .append ("-" ).append (wxMessage .getUserCardCode ());
246
+ }
247
+
250
248
return this .messageDuplicateChecker .isDuplicate (messageId .toString ());
251
249
252
250
}
253
251
254
252
/**
255
253
* 对session的访问结束.
256
254
*/
257
- protected void sessionEndAccess (WxMpXmlMessage wxMessage ) {
258
-
255
+ private void sessionEndAccess (WxMpXmlMessage wxMessage ) {
259
256
InternalSession session = ((InternalSessionManager ) this .sessionManager ).findSession (wxMessage .getFromUser ());
260
257
if (session != null ) {
261
258
session .endAccess ();
262
259
}
263
-
264
260
}
265
261
}
0 commit comments