From 7d695b12e6e1fae9fd3af75541640af891d77217 Mon Sep 17 00:00:00 2001 From: wangsq <944414428@qq.com> Date: Mon, 28 Jul 2025 17:19:10 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=8C=BB=E4=BF=9D=E7=8E=B0=E9=87=91?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E8=B4=B9=E9=99=90=E5=88=B6=E4=BC=98?= =?UTF-8?q?=E5=85=88=E7=BA=A7=E8=B0=83=E6=95=B4=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?HIS=E9=98=B2=E6=AD=A2=E8=BF=94=E5=9B=9E=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E6=97=B6=EF=BC=8C=E7=BB=95=E8=BF=87=E9=80=80?= =?UTF-8?q?=E8=B4=B9=E5=A4=84=E7=90=86=E3=80=82=202=E3=80=81=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E5=9B=9E=E5=A4=8D=E4=BF=A1=E6=81=AF=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=9E=9A=E4=B8=BE=E7=AE=A1=E7=90=86=E5=8C=BB=E9=99=A2appid?= =?UTF-8?q?=E5=92=8C=E5=BE=AE=E4=BF=A1=E8=87=AA=E5=8A=A8=E5=9B=9E=E5=A4=8D?= =?UTF-8?q?=E7=9A=84=E8=87=AA=E5=8A=A8=E7=B1=BB=E5=9E=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/helper/common/Base64Helper.java | 1 - .../ynxbd/common/service/MedicalService.java | 25 +- .../com/ynxbd/wx/config/HospConfigEnum.java | 62 +++++ .../java/com/ynxbd/wx/config/WxEventEnum.java | 35 +++ .../java/com/ynxbd/wx/servlet/WxServlet.java | 44 +-- .../wxfactory/utils/WxPassiveReplyHelper.java | 260 +++++++++++------- 6 files changed, 272 insertions(+), 155 deletions(-) create mode 100644 src/main/java/com/ynxbd/wx/config/HospConfigEnum.java create mode 100644 src/main/java/com/ynxbd/wx/config/WxEventEnum.java diff --git a/src/main/java/com/ynxbd/common/helper/common/Base64Helper.java b/src/main/java/com/ynxbd/common/helper/common/Base64Helper.java index 6954602..638ca1a 100644 --- a/src/main/java/com/ynxbd/common/helper/common/Base64Helper.java +++ b/src/main/java/com/ynxbd/common/helper/common/Base64Helper.java @@ -92,7 +92,6 @@ public class Base64Helper { return encode; } - // 判断是否只有数字和字母 public static boolean isLetterDigit(String str) { return str.matches("^[a-z0-9A-Z]+$"); diff --git a/src/main/java/com/ynxbd/common/service/MedicalService.java b/src/main/java/com/ynxbd/common/service/MedicalService.java index 19ba56b..ccd5f77 100644 --- a/src/main/java/com/ynxbd/common/service/MedicalService.java +++ b/src/main/java/com/ynxbd/common/service/MedicalService.java @@ -345,12 +345,7 @@ public class MedicalService { return false; } - if (!MdConfig.IS_AUTO_REFUND) { - log.info("[医保][挂号]现金自动退费功能未开启 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo); - return false; - } - - if (respMessage != null && !respMessage.contains("(医保结算部分已回退)")) { + if (respMessage == null || !respMessage.contains("(医保结算部分已回退)")) { log.info("[医保][挂号]HIS医保部分未退费成功,禁止现金部分退费 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo); return false; } @@ -363,6 +358,11 @@ public class MedicalService { return false; } + if (!MdConfig.IS_AUTO_REFUND) { + log.info("[医保][挂号]现金自动退费功能未开启 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo); + return false; + } + // 微信医保自动退费 MedicalOrder order = WxMedicalHelper.refundCash(outTradeNo, tradeNo, cashFee, "系统繁忙缴费失败,自动退费"); boolean isOk = order.isOk(); @@ -454,12 +454,7 @@ public class MedicalService { return false; } - if (!MdConfig.IS_AUTO_REFUND) { - log.info("[医保][处方][现金自动退费]功能未开启 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo); - return false; - } - - if (respMessage != null && !respMessage.contains("(医保结算部分已回退)")) { + if (respMessage == null || !respMessage.contains("(医保结算部分已回退)")) { log.info("[医保][处方]HIS医保部分未退费成功,禁止现金部分退费 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo); return false; } @@ -472,6 +467,12 @@ public class MedicalService { } return false; } + + if (!MdConfig.IS_AUTO_REFUND) { + log.info("[医保][处方][现金自动退费]功能未开启 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo); + return false; + } + MedicalOrder order = WxMedicalHelper.refundCash(outTradeNo, tradeNo, cashFee, "系统繁忙缴费失败,自动退费"); boolean isOk = order.isOk(); String refundResult = order.isOk() ? WxPayHelper.OK : order.getMessage(); diff --git a/src/main/java/com/ynxbd/wx/config/HospConfigEnum.java b/src/main/java/com/ynxbd/wx/config/HospConfigEnum.java new file mode 100644 index 0000000..84cf662 --- /dev/null +++ b/src/main/java/com/ynxbd/wx/config/HospConfigEnum.java @@ -0,0 +1,62 @@ +package com.ynxbd.wx.config; + +import lombok.ToString; +import org.apache.commons.lang3.ObjectUtils; + +@ToString +public enum HospConfigEnum { + 红河州第一人民医院("红河州第一人民医院", "wxd503671f502bd89d", null, null), + 蒙自市妇幼保健院("蒙自市妇幼保健院", "wx90e7fe556d089e66", null, null), + 德宏州妇幼保健院("德宏州妇幼保健院", "wx8e7ce6f6e83eb156", null, null), + 武定忠爱医院("武定忠爱医院", "wx7a8aa861e400cc42", null, null), + // =================================================================================================================================== + 华坪县人民医院("华坪县人民医院", "wx18b15dc67fc96f89", null, null), + 巍山县人民医院("巍山县人民医院", "wx1e30610a28d189a8", null, null), + 芒市人民医院("芒市人民医院", "wxca97aaeb3c40c0d0", null, null), + 玉龙县人民医院("玉龙县人民医院", "wx1f1e9d29f9b44c36", null, null), + ; + + public final String NAME; + public final String WX_APP_ID; + public final String WX_APP_ID_02; + public final String ALI_APP_ID; + + HospConfigEnum(String NAME, String WX_APP_ID, String WX_APP_ID_02, String ALI_APP_ID) { + this.NAME = NAME; + this.WX_APP_ID = WX_APP_ID; + this.WX_APP_ID_02 = WX_APP_ID_02; + this.ALI_APP_ID = ALI_APP_ID; + } + + public static HospConfigEnum findEnumByWxAppId() { + return findEnumByWxAppId(WeChatConfig.APP_ID); + } + + public static HospConfigEnum findEnumByWxAppId(String appId) { + if (ObjectUtils.isEmpty(appId)) { + return null; + } + for (HospConfigEnum item : HospConfigEnum.values()) { + if (!ObjectUtils.isEmpty(item.WX_APP_ID) && item.WX_APP_ID.equals(appId)) { + return item; + } + if (!ObjectUtils.isEmpty(item.WX_APP_ID_02) && item.WX_APP_ID_02.equals(appId)) { + return item; + } + } + return null; + } + + + public static HospConfigEnum findEnumByALIAppId(String appId) { + if (ObjectUtils.isEmpty(appId)) { + return null; + } + for (HospConfigEnum item : HospConfigEnum.values()) { + if (!ObjectUtils.isEmpty(item.ALI_APP_ID) && item.ALI_APP_ID.equals(appId)) { + return item; + } + } + return null; + } +} diff --git a/src/main/java/com/ynxbd/wx/config/WxEventEnum.java b/src/main/java/com/ynxbd/wx/config/WxEventEnum.java new file mode 100644 index 0000000..9a5169a --- /dev/null +++ b/src/main/java/com/ynxbd/wx/config/WxEventEnum.java @@ -0,0 +1,35 @@ +package com.ynxbd.wx.config; + +import lombok.ToString; + +@ToString +public enum WxEventEnum { + MSG_TYPE_TEXT("text", "文本消息"), + MSG_TYPE_IMAGE("image", "图片消息"), + MSG_TYPE_VOICE("voice", "语音消息"), + MSG_TYPE_VIDEO("video", "视频消息"), + MSG_TYPE_SHORT_VIDEO("shortvideo", "小视频消息"), + MSG_TYPE_LOCATION("location", "地理位置消息"), + MSG_TYPE_LINK("link", "链接消息"), + // + MSG_TYPE_EVENT("event", "事件消息"), + // ---------------------------------------------------- + EVENT_SUBSCRIBE("subscribe", "订阅/关注"), + EVENT_UNSUB("unsubscribe", "取消订阅/取消关注"), + EVENT_CLICK("CLICK", "点击菜单拉取消息时的事件推送"), + EVENT_VIEW("VIEW", "点击菜单跳转链接时的事件推送"), + EVENT_LOCATION("LOCATION", "上报地理位置事件"), + // + EVENT_SCAN("SCAN", "关注时的事件推送"), + ; + + public final String CODE; + + public final String NAME; + + WxEventEnum(String CODE, String NAME) { + this.CODE = CODE; + this.NAME = NAME; + } + +} diff --git a/src/main/java/com/ynxbd/wx/servlet/WxServlet.java b/src/main/java/com/ynxbd/wx/servlet/WxServlet.java index c1ace48..d76a968 100644 --- a/src/main/java/com/ynxbd/wx/servlet/WxServlet.java +++ b/src/main/java/com/ynxbd/wx/servlet/WxServlet.java @@ -2,11 +2,13 @@ package com.ynxbd.wx.servlet; import com.ynxbd.common.result.Result; import com.ynxbd.wx.config.WeChatConfig; +import com.ynxbd.wx.config.WxEventEnum; import com.ynxbd.wx.wxfactory.bean.event.WxEvent; import com.ynxbd.wx.wxfactory.utils.WxEventHelper; import com.ynxbd.wx.wxfactory.utils.WxPassiveReplyHelper; import com.ynxbd.wx.wxfactory.utils.WxSignHelper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @@ -51,55 +53,21 @@ public class WxServlet extends HttpServlet { String msgId = wxEvent.getMsgId(); - //点击菜单不需要往下操作,直接返回 - if (msgId == null&&wxEvent.getEvent()==WxPassiveReplyHelper.EVENT_VIEW) { + // 点击菜单不需要往下操作,直接返回 + if (ObjectUtils.isEmpty(msgId) && WxEventEnum.EVENT_VIEW.CODE.equals(wxEvent.getEvent())) { Result.respStr(response, WxPassiveReplyHelper.SUCCESS); return; } + String toUserName = wxEvent.getToUserName(); String fromUserName = wxEvent.getFromUserName(); - String key = fromUserName + "_" + toUserName + "_" + msgId + "_" + wxEvent.getCreateTime(); if (WxPassiveReplyHelper.isRepeat(key)) { Result.respStr(response, WxPassiveReplyHelper.SUCCESS); return; } - String eventKey = wxEvent.getEventKey(); - String event = wxEvent.getEvent(); - String msgType = wxEvent.getMsgType(); - String content = wxEvent.getContent(); - content = content == null ? null : content.trim().toUpperCase(); - - WxPassiveReplyHelper.textCommon(response, content, msgType, fromUserName, toUserName); - switch (WeChatConfig.APP_ID) { - case "wx18b15dc67fc96f89": - WxPassiveReplyHelper.华坪县人民医院(response, content, msgType, fromUserName, toUserName, eventKey, event); - break; - - case "wx1e30610a28d189a8": - WxPassiveReplyHelper.巍山县人民医院(response, content, msgType, fromUserName, toUserName, eventKey, event); - break; - - case "wxca97aaeb3c40c0d0": - WxPassiveReplyHelper.芒市人民医院(response, content, msgType, fromUserName, toUserName, eventKey, event); - break; - - case "wxd503671f502bd89d": - WxPassiveReplyHelper.红河州第一人民医院(response, content, msgType, fromUserName, toUserName, eventKey, event); - break; - case "wx1f1e9d29f9b44c36": - WxPassiveReplyHelper.玉龙县人民医院(response, content, msgType, fromUserName, toUserName, eventKey, event); - break; - case "wx8e7ce6f6e83eb156": - WxPassiveReplyHelper.德宏州妇幼保健院(response, content, msgType, fromUserName, toUserName, eventKey, event); - break; - case "wx90e7fe556d089e66": - WxPassiveReplyHelper.蒙自市妇幼保健院(response, content, msgType, fromUserName, toUserName, eventKey, event); - break; - default: - break; - } + WxPassiveReplyHelper.hospReply(response, wxEvent, msgId, fromUserName, toUserName); Result.respStr(response, WxPassiveReplyHelper.SUCCESS); } diff --git a/src/main/java/com/ynxbd/wx/wxfactory/utils/WxPassiveReplyHelper.java b/src/main/java/com/ynxbd/wx/wxfactory/utils/WxPassiveReplyHelper.java index a120dae..23d6f9e 100644 --- a/src/main/java/com/ynxbd/wx/wxfactory/utils/WxPassiveReplyHelper.java +++ b/src/main/java/com/ynxbd/wx/wxfactory/utils/WxPassiveReplyHelper.java @@ -1,7 +1,10 @@ package com.ynxbd.wx.wxfactory.utils; import com.ynxbd.common.helper.common.ErrorHelper; +import com.ynxbd.wx.config.HospConfigEnum; import com.ynxbd.wx.config.WeChatConfig; +import com.ynxbd.wx.config.WxEventEnum; +import com.ynxbd.wx.wxfactory.bean.event.WxEvent; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import weixin.popular.bean.xmlmessage.XMLImageMessage; @@ -21,25 +24,10 @@ import java.util.List; */ @Slf4j public class WxPassiveReplyHelper { - public static final String MSG_TYPE_TEXT = "text"; - public static final String MSG_TYPE_IMAGE = "image"; - public static final String MSG_TYPE_VOICE = "voice"; - public static final String MSG_TYPE_VIDEO = "video"; - public static final String MSG_TYPE_LINK = "link"; - public static final String MSG_TYPE_LOCATION = "location"; - public static final String MSG_TYPE_EVENT = "event"; - - // 订阅 - public static final String EVENT_SUBSCRIBE = "subscribe"; - // 取消订阅 - public static final String EVENT_UNSUB = "unsubscribe"; - public static final String EVENT_CLICK = "CLICK"; - public static final String EVENT_VIEW = "VIEW"; - // 重复通知过滤 private static ExpireKey EXPIRE_KEY; - final public static String SUCCESS = "success"; + public static final String SUCCESS = "success"; private synchronized static void getExpireKey() { if (EXPIRE_KEY == null) { @@ -62,10 +50,73 @@ public class WxPassiveReplyHelper { } /** - * 文字匹配 + * 关注 * + * @param response + * @param content + * @param msgType + * @param fromUserName + * @param toUserName + * @return + */ + public static boolean subscribeCommon(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String event) { + log.info("event={}", event); + if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) { + String webUrl = WeChatConfig.getWebUrl(); + return createLinkMsg(response, fromUserName, toUserName, "清廉承诺", msgType, content, + (webUrl + "wx-subscribe.html"), + (webUrl + "images/message/subscribe.png")); + } + return false; + } + + public static OutputStream getOutputStream(HttpServletResponse response) { + try { + return response.getOutputStream(); + } catch (Exception e) { + ErrorHelper.println(e); + } + return null; + } + + /** + * 信息回复 + * + * @param response + * @param fromUserName + * @param toUserName + * @param title + * @param msgType + * @param userText + * @param link + * @param imageUrl * @return */ + public static boolean createLinkMsg(HttpServletResponse response, String fromUserName, String toUserName, String title, String msgType, String userText, String link, String imageUrl) { + if (!WxEventEnum.MSG_TYPE_TEXT.CODE.equals(msgType)) { // 消息类型不为文本 + return false; + } + + if (ObjectUtils.isEmpty(userText)) { // 不存在 + return false; + } + + List articleList = new ArrayList<>(); + XMLNewsMessage.Article article; + + article = new XMLNewsMessage.Article(); + article.setTitle(title); + article.setUrl(link); + article.setPicurl(imageUrl); + articleList.add(article); + XMLNewsMessage xmlNewsMessage = new XMLNewsMessage(fromUserName, toUserName, articleList); + xmlNewsMessage.outputStreamWrite(getOutputStream(response)); + return true; + } + + /** + * 文字匹配 + */ public static boolean textCommon(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName) { String webUrl = WeChatConfig.getWebUrl(); @@ -105,42 +156,80 @@ public class WxPassiveReplyHelper { return false; } - /** - * 关注 - * - * @param response - * @param content - * @param msgType - * @param fromUserName - * @param toUserName - * @return - */ - public static boolean subscribeCommon(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String event) { + // 根据医院appId回复 + public static Boolean hospReply(HttpServletResponse response, WxEvent wxEvent, String msgId, String fromUserName, String toUserName) { + String event = wxEvent.getEvent(); + String eventKey = wxEvent.getEventKey(); + String msgType = wxEvent.getMsgType(); + String reqContent = wxEvent.getContent(); + if (reqContent != null) { + reqContent = reqContent.trim().toUpperCase(); + } - log.info("event={}", event); - if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) { - String webUrl = WeChatConfig.getWebUrl(); - return createLinkMsg(response, fromUserName, toUserName, "清廉承诺", msgType, content, - (webUrl + "wx-subscribe.html"), - (webUrl + "images/message/subscribe.png")); + WxPassiveReplyHelper.textCommon(response, reqContent, msgType, fromUserName, toUserName); + + HospConfigEnum hospConfigEnum = HospConfigEnum.findEnumByWxAppId(); + if (hospConfigEnum == null) { + return false; + } + switch (hospConfigEnum) { + case 红河州第一人民医院: + return WxPassiveReplyHelper.红河州第一人民医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event); + + case 蒙自市妇幼保健院: + return WxPassiveReplyHelper.蒙自市妇幼保健院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event); + + case 德宏州妇幼保健院: + return WxPassiveReplyHelper.德宏州妇幼保健院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event); + + case 武定忠爱医院: + return WxPassiveReplyHelper.武定忠爱医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event); + + case 华坪县人民医院: + return WxPassiveReplyHelper.华坪县人民医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event); + + case 巍山县人民医院: + return WxPassiveReplyHelper.巍山县人民医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event); + + case 芒市人民医院: + return WxPassiveReplyHelper.芒市人民医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event); + + case 玉龙县人民医院: + return WxPassiveReplyHelper.玉龙县人民医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event); + + default: + break; } return false; } + private static Boolean 武定忠爱医院(HttpServletResponse response, String reqContent, String msgType, String fromUserName, String toUserName, String eventKey, String event) { + if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) { + if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) { + String respInfo = "欢迎关注武定忠爱医院!" + + "\n\uD83D\uDD17 今日挂号" + + "\n\uD83D\uDD17 预约挂号"; + XMLTextMessage msg = new XMLTextMessage(fromUserName, toUserName, respInfo); + msg.outputStreamWrite(getOutputStream(response)); + } + } + return true; + } - public static void 芒市人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) { + + public static boolean 芒市人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) { List articleList = new ArrayList<>(); XMLNewsMessage.Article article; - if (WxPassiveReplyHelper.MSG_TYPE_EVENT.equals(msgType)) { - if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) { + if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) { + if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) { article = new XMLNewsMessage.Article(); article.setTitle("微信预约挂号开通喽,大家快快用起来!"); article.setUrl("https://mp.weixin.qq.com/s/rJF1qBo1-mV5CUdRsi4Z5g"); article.setPicurl("https://mmbiz.qpic.cn/mmbiz_jpg/RUm4m8SVypy7nVubUuo6KgdlibcduK8l4tWnXrz7VfTO5EYOeDc9hZxR70wTQgX1sYhRR7SeND6426uczdpf1BA/0?wx_fmt=jpeg"); articleList.add(article); XMLNewsMessage xmlNewsMessage = new XMLNewsMessage(fromUserName, toUserName, articleList); - xmlNewsMessage.outputStreamWrite(getOut(response)); + xmlNewsMessage.outputStreamWrite(getOutputStream(response)); } } @@ -224,11 +313,12 @@ public class WxPassiveReplyHelper { "外一科(普外):2133720"; } XMLTextMessage msg = new XMLTextMessage(fromUserName, toUserName, respInfo); - msg.outputStreamWrite(getOut(response)); + msg.outputStreamWrite(getOutputStream(response)); } + return true; } - public static void 华坪县人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) { + public static boolean 华坪县人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) { List articleList = new ArrayList<>(); XMLNewsMessage.Article article; @@ -252,7 +342,7 @@ public class WxPassiveReplyHelper { } } - if (WxPassiveReplyHelper.MSG_TYPE_EVENT.equals(msgType)) { + if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) { if (eventKey.equals("MYDDC")) { article = new XMLNewsMessage.Article(); article.setTitle("华坪县人民医院患者满意度调查"); @@ -272,7 +362,7 @@ public class WxPassiveReplyHelper { article.setPicurl("https://mmbiz.qpic.cn/mmbiz_jpg/0jg8QrIOHOzYGDMbzzyKicXD9QlRA5MdmpF19PW1oFibvCDj60twgfGC556fY3wThlAhIYJsHykiaDIU8h3Igh8Dw/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1"); articleList.add(article); - if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) { + if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) { article = new XMLNewsMessage.Article(); article.setTitle("微信支付使用流程!"); article.setPicurl("http://mmbiz.qpic.cn/mmbiz/0jg8QrIOHOydg7liaUzXoa7otFCiavYozxARcpnrxt5ibQ7Y8BewUOtKJPWRUATkaskjvHeeqmicDbovRwZic7BTSng/0?wx_fmt=jpeg"); @@ -284,15 +374,16 @@ public class WxPassiveReplyHelper { } XMLNewsMessage msg = new XMLNewsMessage(fromUserName, toUserName, articleList); - msg.outputStreamWrite(getOut(response)); + msg.outputStreamWrite(getOutputStream(response)); + return true; } - public static void 巍山县人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) { + public static boolean 巍山县人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) { List articleList = new ArrayList<>(); XMLNewsMessage.Article article; - if (WxPassiveReplyHelper.MSG_TYPE_EVENT.equals(msgType)) { + if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) { // 满意度 if (eventKey.equals("MYDDC")) { article = new XMLNewsMessage.Article(); @@ -303,7 +394,7 @@ public class WxPassiveReplyHelper { } // 关注 - if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) { + if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) { article = new XMLNewsMessage.Article(); article.setTitle("微信预约挂号开通喽,大家快快用起来!"); article.setUrl("http://mp.weixin.qq.com/s/gl_NitQTP6_ZzoV8pwxOcw"); @@ -313,7 +404,8 @@ public class WxPassiveReplyHelper { } XMLNewsMessage msg = new XMLNewsMessage(fromUserName, toUserName, articleList); - msg.outputStreamWrite(getOut(response)); + msg.outputStreamWrite(getOutputStream(response)); + return true; } @@ -339,7 +431,7 @@ public class WxPassiveReplyHelper { String respInfo; if (content.contains("核酸")) { respInfo = " 您好,玉龙县人民医院自助核酸检测需要点击微信挂号—自助核算检测进行具体操作。核酸检测报告电子版可在云南健康码查询," + - "纸质版可到门诊楼一楼自助打印,如标本检测有异常的,报告出具时间将延迟,如到时间后未查询到结果或有其他疑问可拨打0888-5180762进行咨询。" ; + "纸质版可到门诊楼一楼自助打印,如标本检测有异常的,报告出具时间将延迟,如到时间后未查询到结果或有其他疑问可拨打0888-5180762进行咨询。"; } else if (content.contains("投诉")) { respInfo = "您好,您可以拨打投诉电话:0888-5112778或行政值班电话:0888-5115602进行投诉"; @@ -399,76 +491,36 @@ public class WxPassiveReplyHelper { return false; } XMLTextMessage msg = new XMLTextMessage(fromUserName, toUserName, respInfo); - msg.outputStreamWrite(getOut(response)); + msg.outputStreamWrite(getOutputStream(response)); return true; } - public static void 德宏州妇幼保健院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) { - if (WxPassiveReplyHelper.MSG_TYPE_EVENT.equals(msgType)) { - if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) { - String respInfo ="您好!欢迎关注德宏州妇幼保健院!如有疑问请拨打 24小时值班电话:15368666599"; + public static boolean 德宏州妇幼保健院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) { + if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) { + if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) { + String respInfo = "您好!欢迎关注德宏州妇幼保健院!如有疑问请拨打 24小时值班电话:15368666599"; XMLTextMessage msg = new XMLTextMessage(fromUserName, toUserName, respInfo); - msg.outputStreamWrite(getOut(response)); + msg.outputStreamWrite(getOutputStream(response)); } } + return true; } - public static void 蒙自市妇幼保健院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event){ + public static boolean 蒙自市妇幼保健院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) { String mediaId = "iJoe834_vhMOnlrUUCQF5jyeRvOTJ0sF-ly_vZrsGzPqEFY0kvdzr_p410e-lG0K"; //医院科室对应电话列表图片 - if (WxPassiveReplyHelper.MSG_TYPE_EVENT.equals(msgType)) { - if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) { - XMLImageMessage imageMessage = new XMLImageMessage(fromUserName,toUserName, mediaId); - imageMessage.outputStreamWrite(getOut(response)); + if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) { + if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) { + XMLImageMessage imageMessage = new XMLImageMessage(fromUserName, toUserName, mediaId); + imageMessage.outputStreamWrite(getOutputStream(response)); } } - if(content==null){ - return; - } - XMLImageMessage imageMessage = new XMLImageMessage(fromUserName,toUserName,mediaId); - imageMessage.outputStreamWrite(getOut(response)); - } - public static OutputStream getOut(HttpServletResponse response) { - try { - return response.getOutputStream(); - } catch (Exception e) { - ErrorHelper.println(e); - } - return null; - } - - /** - * 信息回复 - * - * @param response - * @param fromUserName - * @param toUserName - * @param title - * @param msgType - * @param userText - * @param link - * @param imageUrl - * @return - */ - public static boolean createLinkMsg(HttpServletResponse response, String fromUserName, String toUserName, String title, String msgType, String userText, String link, String imageUrl) { - if (!MSG_TYPE_TEXT.equals(msgType)) { // 消息类型不为文本 - return false; - } - - if (ObjectUtils.isEmpty(userText)) { // 不存在 + if (content == null) { return false; } - - List articleList = new ArrayList<>(); - XMLNewsMessage.Article article; - - article = new XMLNewsMessage.Article(); - article.setTitle(title); - article.setUrl(link); - article.setPicurl(imageUrl); - articleList.add(article); - XMLNewsMessage xmlNewsMessage = new XMLNewsMessage(fromUserName, toUserName, articleList); - xmlNewsMessage.outputStreamWrite(getOut(response)); + XMLImageMessage imageMessage = new XMLImageMessage(fromUserName, toUserName, mediaId); + imageMessage.outputStreamWrite(getOutputStream(response)); return true; } + }