diff --git a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java index 21f2bd23..8b9af012 100644 --- a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java +++ b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java @@ -132,7 +132,7 @@ public class WeixinMessageDispatcher { Exception exception = null; WeixinResponse response = null; try { - response = handlerExecutor.getMessageHandler().doHandle(request, message, messageTransfer.getNodeNames()); + response = handlerExecutor.getMessageHandler().doHandle(request, message); handlerExecutor.applyPostHandle(request, response, message); context.writeAndFlush(response); } catch (Exception e) { diff --git a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/DebugMessageHandler.java b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/DebugMessageHandler.java index 397e2a7c..4fa5624c 100644 --- a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/DebugMessageHandler.java +++ b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/DebugMessageHandler.java @@ -30,7 +30,7 @@ public class DebugMessageHandler implements WeixinMessageHandler { } @Override - public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message, Set nodeNames) { + public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message) { String content = message == null ? request.getOriginalContent().replaceAll("\\!\\[CDATA\\[", "").replaceAll("\\]\\]", "") : message.toString(); diff --git a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/MessageHandlerAdapter.java b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/MessageHandlerAdapter.java index abbc7faa..3cfa8e86 100644 --- a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/MessageHandlerAdapter.java +++ b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/MessageHandlerAdapter.java @@ -17,48 +17,49 @@ import com.foxinmy.weixin4j.util.ClassUtil; * @see com.foxinmy.weixin4j.request.WeixinMessage */ @SuppressWarnings("unchecked") -public abstract class MessageHandlerAdapter implements WeixinMessageHandler { +public abstract class MessageHandlerAdapter implements + WeixinMessageHandler { - @Override - public boolean canHandle(WeixinRequest request, WeixinMessage message, Set nodeNames) { - return message != null && message.getClass() == ClassUtil.getGenericType(getClass()) - && canHandle0(request, (M) message); - } + @Override + public boolean canHandle(WeixinRequest request, WeixinMessage message, + Set nodeNames) { + return message != null + && message.getClass() == ClassUtil.getGenericType(getClass()) + && canHandle0(request, (M) message); + } - /** - * 能否处理请求 - * - * @param request - * 微信请求 - * @param message - * 微信消息 - * @return true则执行doHandler0 @ - */ - public boolean canHandle0(WeixinRequest request, M message) { - return true; - } + /** + * 能否处理请求 + * + * @param request + * 微信请求 + * @param message + * 微信消息 + * @return true则执行doHandler0 @ + */ + protected boolean canHandle0(WeixinRequest request, M message) { + return true; + } - @Override - public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message, Set nodeNames) { - return doHandle0(request, (M) message); - } + @Override + public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message) { + return doHandle0((M) message); + } - /** - * 处理请求 - * - * @param request - * 微信请求 - * @param message - * 微信消息 - * @return - */ - public abstract WeixinResponse doHandle0(WeixinRequest request, M message); + /** + * 处理请求 + * + * @param message + * 微信消息 + * @return + */ + protected abstract WeixinResponse doHandle0(M message); - /** - * 缺省值为1,存在多个匹配到的MessageHandler则比较weight大小 - */ - @Override - public int weight() { - return 1; - } + /** + * 缺省值为1,存在多个匹配到的MessageHandler则比较weight大小 + */ + @Override + public int weight() { + return 1; + } } diff --git a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/MultipleMessageHandlerAdapter.java b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/MultipleMessageHandlerAdapter.java index 1d18bf84..0c121bfd 100644 --- a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/MultipleMessageHandlerAdapter.java +++ b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/MultipleMessageHandlerAdapter.java @@ -32,20 +32,18 @@ public abstract class MultipleMessageHandlerAdapter implements WeixinMessageHand @Override public boolean canHandle(WeixinRequest request, WeixinMessage message, Set nodeNames) { - return message != null && messageClasses.contains(message.getClass()) && canHandle0(request, message); + return message != null && messageClasses.contains(message.getClass()) && canHandle0(message); } /** * 能否处理请求 * - * @param request - * 微信请求 * @param message * 微信消息 * @return true则执行doHandler * @throws WeixinException */ - public boolean canHandle0(WeixinRequest request, WeixinMessage message) { + protected boolean canHandle0(WeixinMessage message) { return true; } diff --git a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/WeixinMessageHandler.java b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/WeixinMessageHandler.java index 3c41f8f7..8e37cc6b 100644 --- a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/WeixinMessageHandler.java +++ b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/handler/WeixinMessageHandler.java @@ -38,11 +38,9 @@ public interface WeixinMessageHandler { * 微信请求 * @param message * 微信消息 - * @param nodeNames - * 节点名称集合 * @return 回复内容 */ - public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message, Set nodeNames); + public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message); /** * 用于匹配到多个MessageHandler时权重降序排列,数字越大优先级越高 diff --git a/weixin4j-server/src/test/java/com/foxinmy/weixin4j/server/ext/SuiteMessageHandler.java b/weixin4j-server/src/test/java/com/foxinmy/weixin4j/server/ext/SuiteMessageHandler.java index 0bb5bdd9..d6cf3540 100644 --- a/weixin4j-server/src/test/java/com/foxinmy/weixin4j/server/ext/SuiteMessageHandler.java +++ b/weixin4j-server/src/test/java/com/foxinmy/weixin4j/server/ext/SuiteMessageHandler.java @@ -26,7 +26,7 @@ public class SuiteMessageHandler implements WeixinMessageHandler { } @Override - public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message, Set nodeNames) { + public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message) { SuiteMessage suiteMessage = null; // 转换为 SuiteMessage SuiteEventType eventType = suiteMessage.getFormatEventType(); if (eventType == SuiteEventType.suite_ticket) { diff --git a/weixin4j-server/src/test/java/com/foxinmy/weixin4j/server/test/MessageServerStartup.java b/weixin4j-server/src/test/java/com/foxinmy/weixin4j/server/test/MessageServerStartup.java index 4a20aece..d3d4d615 100644 --- a/weixin4j-server/src/test/java/com/foxinmy/weixin4j/server/test/MessageServerStartup.java +++ b/weixin4j-server/src/test/java/com/foxinmy/weixin4j/server/test/MessageServerStartup.java @@ -1,6 +1,6 @@ package com.foxinmy.weixin4j.server.test; -import java.util.Set; +import io.netty.channel.ChannelHandlerContext; import org.springframework.context.ApplicationContext; @@ -20,8 +20,6 @@ import com.foxinmy.weixin4j.response.WeixinResponse; import com.foxinmy.weixin4j.spring.SpringBeanFactory; import com.foxinmy.weixin4j.startup.WeixinServerBootstrap; -import io.netty.channel.ChannelHandlerContext; - /** * 服务启动测试类 * @@ -60,14 +58,14 @@ public class MessageServerStartup { // 针对文本消息回复 WeixinMessageHandler textMessageHandler = new MessageHandlerAdapter() { @Override - public WeixinResponse doHandle0(WeixinRequest request, TextMessage message) { + protected WeixinResponse doHandle0(TextMessage message) { return new TextResponse("HelloWorld!"); } }; // 针对语音消息回复 WeixinMessageHandler voiceMessageHandler = new MessageHandlerAdapter() { @Override - public WeixinResponse doHandle0(WeixinRequest request, VoiceMessage message) { + protected WeixinResponse doHandle0(VoiceMessage message) { return new TextResponse("HelloWorld!"); } }; @@ -84,10 +82,11 @@ public class MessageServerStartup { @SuppressWarnings("unchecked") MultipleMessageHandlerAdapter messageHandler = new MultipleMessageHandlerAdapter(ScanEventMessage.class, TextMessage.class) { - @Override - public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message, Set nodeNames) { - return new TextResponse("处理了扫描和文字消息"); - } + @Override + public WeixinResponse doHandle(WeixinRequest request, + WeixinMessage message) { + return new TextResponse("处理了扫描和文字消息"); + } }; new WeixinServerBootstrap(token).addHandler(messageHandler, DebugMessageHandler.global).startup(); }