From 002bdf3d9caf597f383afded33b3e51e47a5c75e Mon Sep 17 00:00:00 2001 From: hotlcc Date: Fri, 17 Aug 2018 15:55:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/hotlcc/wechat4j/Wechat.java | 50 +++++++------------ 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/hotlcc/wechat4j/Wechat.java b/src/main/java/com/hotlcc/wechat4j/Wechat.java index cb69ac5..0d2f62e 100644 --- a/src/main/java/com/hotlcc/wechat4j/Wechat.java +++ b/src/main/java/com/hotlcc/wechat4j/Wechat.java @@ -815,36 +815,24 @@ public class Wechat { */ private void processNewMsg(JSONArray AddMsgList) { try { - if (AddMsgList != null && !AddMsgList.isEmpty()) { - int len = AddMsgList.size(); - logger.debug("收到{}条新消息", len); - for (int i = 0; i < len; i++) { - JSONObject AddMsg = AddMsgList.getJSONObject(i); - processNewMsg(AddMsg); - } - } - } catch (Exception e) { - logger.error("Execute processNewMsg error.", e); - } - } - - private void processNewMsg(JSONObject AddMsg) { - try { - ReceivedMsg msg = ReceivedMsg.valueOf(AddMsg); - processNewMsg(msg); - } catch (Exception e) { - logger.error("Execute processNewMsg error.", e); - } - } - - private void processNewMsg(ReceivedMsg msg) { - try { - if (receivedMsgHandlers == null) { + if (AddMsgList == null || AddMsgList.isEmpty()) { return; } - for (ReceivedMsgHandler handler : receivedMsgHandlers) { - if (handler != null) { - processNewMsg(msg, handler); + + int len = AddMsgList.size(); + logger.debug("收到{}条新消息", len); + + if (receivedMsgHandlers == null || receivedMsgHandlers.isEmpty()) { + logger.warn("收到{}条新消息,但没有配置消息处理器", len); + return; + } + + List receivedMsgList = ReceivedMsg.valueOf(AddMsgList); + for (ReceivedMsg receivedMsg : receivedMsgList) { + for (ReceivedMsgHandler handler : receivedMsgHandlers) { + if (handler != null) { + processNewMsg(receivedMsg, handler); + } } } } catch (Exception e) { @@ -854,11 +842,9 @@ public class Wechat { private void processNewMsg(ReceivedMsg msg, ReceivedMsgHandler handler) { try { - if (handler != null) { - handler.handleAllType(wechat, msg); - } + handler.handleAllType(wechat, msg); } catch (Exception e) { - + logger.error("Execute processNewMsg error.", e); } } }