From 02c99609f66d910a2aa4c5444f549a0c9c024132 Mon Sep 17 00:00:00 2001 From: Sola Date: Thu, 10 Dec 2015 12:10:58 +0800 Subject: [PATCH] add bypass (test only) --- .../love/sola/netsupport/api/Authorize.java | 7 +++++ .../love/sola/netsupport/wechat/Command.java | 3 +- .../sola/netsupport/wechat/WxMpServlet.java | 31 ++++++++----------- src/main/resources/lang.yml | 2 +- 4 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/main/java/love/sola/netsupport/api/Authorize.java b/src/main/java/love/sola/netsupport/api/Authorize.java index 671cf85..a7f1f0e 100644 --- a/src/main/java/love/sola/netsupport/api/Authorize.java +++ b/src/main/java/love/sola/netsupport/api/Authorize.java @@ -53,6 +53,13 @@ public class Authorize extends HttpServlet { } Long l = fetchedTime.remove(wechat); Command c = fetchedCommand.remove(wechat); + + // FIXME: 2015/12/10 FOR TEST ONLY + if (request.getParameter("bypass") != null) { + c = Command.fromId(Integer.parseInt(request.getParameter("bypass"))); + l = System.currentTimeMillis(); + } + if (l == null || c == null) { return new Response(Response.ResponseCode.AUTHORIZE_FAILED); } diff --git a/src/main/java/love/sola/netsupport/wechat/Command.java b/src/main/java/love/sola/netsupport/wechat/Command.java index 26d07a2..dd799b4 100644 --- a/src/main/java/love/sola/netsupport/wechat/Command.java +++ b/src/main/java/love/sola/netsupport/wechat/Command.java @@ -2,6 +2,7 @@ package love.sola.netsupport.wechat; import love.sola.netsupport.wechat.handler.QueryHandler; import love.sola.netsupport.wechat.handler.RegisterHandler; +import love.sola.netsupport.wechat.handler.SubmitHandler; import me.chanjar.weixin.mp.api.WxMpMessageHandler; import java.util.HashMap; @@ -19,7 +20,7 @@ public enum Command { REGISTER(0, RegisterHandler.class), QUERY(1, QueryHandler.class), - SUBMIT(2, null), + SUBMIT(2, SubmitHandler.class), ; private static final Map ID_MAP = new HashMap<>(); diff --git a/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java b/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java index 51f3701..d1257af 100644 --- a/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java +++ b/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java @@ -1,16 +1,11 @@ package love.sola.netsupport.wechat; import love.sola.netsupport.config.Settings; -import love.sola.netsupport.wechat.handler.QueryHandler; import love.sola.netsupport.wechat.handler.RegisterHandler; -import love.sola.netsupport.wechat.handler.SubmitHandler; import love.sola.netsupport.wechat.matcher.CheckSpamMatcher; import love.sola.netsupport.wechat.matcher.RegisterMatcher; import me.chanjar.weixin.common.util.StringUtils; -import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage; -import me.chanjar.weixin.mp.api.WxMpMessageRouter; -import me.chanjar.weixin.mp.api.WxMpService; -import me.chanjar.weixin.mp.api.WxMpServiceImpl; +import me.chanjar.weixin.mp.api.*; import me.chanjar.weixin.mp.bean.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.WxMpXmlOutMessage; @@ -83,18 +78,18 @@ public class WxMpServlet extends HttpServlet { .matcher(new RegisterMatcher()) .handler(new RegisterHandler()) .end(); - wxMpMessageRouter.rule() - .async(false) - .msgType("text") - .rContent(Command.QUERY.regex) - .handler(new QueryHandler()) - .end(); - wxMpMessageRouter.rule() - .async(false) - .msgType("text") - .rContent(Command.SUBMIT.regex) - .handler(new SubmitHandler()) - .end(); + try { + registerCommands(wxMpMessageRouter); + } catch (IllegalAccessException | InstantiationException e) { + throw new ServletException(e); + } + } + + public static void registerCommands(WxMpMessageRouter router) throws IllegalAccessException, InstantiationException { + for (Command c : Command.values()) { + WxMpMessageHandler handler = c.handler.newInstance(); + router.rule().async(false).msgType("text").rContent(c.regex).handler(handler).end(); + } } @Override diff --git a/src/main/resources/lang.yml b/src/main/resources/lang.yml index d56aa0c..2977462 100644 --- a/src/main/resources/lang.yml +++ b/src/main/resources/lang.yml @@ -26,7 +26,7 @@ Ticket_Info_Remark: '维修描述: ' Ticket_Info_Update_Time: '更新时间: ' Ticket_Info_Status: '报修单状态: ' #Submit -Already_Opening_Ticket: "您上次提交的报修单仍在处理中. 若想查询报修单状态,请发送 '查询' 。" +Already_Opening_Ticket: "您上次提交的报修单仍在处理中. 若需要查询报修单状态,请发送 '查询' 。" Submit_Title: '在网维工作人员上门解决您的问题之前...' Submit_Desc: "在网维工作人员上门解决您的问题之前,您可以尝试以下方法来更有效地解决您的问题:\n 重新插拔您电脑的网线以及墙上的端口。\n