From 44b4e5a78c7e3a3371cc64452cd4d93531d9ef4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E6=AC=A7=EF=BC=88=E6=9E=97=E5=B9=B3=E5=87=A1?= =?UTF-8?q?=EF=BC=89?= Date: Wed, 26 Feb 2025 17:53:29 +0800 Subject: [PATCH] 1 --- .../van/business/util/WxMessageConsumer.java | 131 +++++++----------- 1 file changed, 50 insertions(+), 81 deletions(-) diff --git a/src/main/java/cn/van/business/util/WxMessageConsumer.java b/src/main/java/cn/van/business/util/WxMessageConsumer.java index c8341e1..0e1bad3 100644 --- a/src/main/java/cn/van/business/util/WxMessageConsumer.java +++ b/src/main/java/cn/van/business/util/WxMessageConsumer.java @@ -243,93 +243,63 @@ public class WxMessageConsumer { * * @param wxMessage */ - private void handlePrivateMessage(WxMessage wxMessage) throws Exception { - Integer msgType = 1; - // 做业务处理 - logger.info("处理消息: {}", JSON.toJSONString(wxMessage)); +private void handlePrivateMessage(WxMessage wxMessage) throws Exception { + Integer msgType = 1; + logger.info("处理消息: {}", JSON.toJSONString(wxMessage)); - /** - * { - * "event": 10009, - * "wxid": "wxid_nq6r0w9v12612", - * "data": { - * "type": "recvMsg", - * "des": "收到消息", - * "data": { - * "timeStamp": "1716620300237", - * "fromType": 1, - * "msgType": 1, - * "msgSource": 0, - * "fromWxid": "wxid_3sq4tklb6c3121", - * "finalFromWxid": "", - * "atWxidList": [], - * "silence": 0, - * "membercount": 0, - * "signature": "V1_uKhKVjB1|v1_uKhKVjB1", - * "msg": " 你在干嘛呢", - * "msgId": "4937897417714063715", - * "msgBase64": "IOS9oOWcqOW5suWYm+WRog==" - * }, - * "timestamp": "1716620300238", - * "wxid": "wxid_nq6r0w9v12612", - * "port": 8888, - * "pid": 3944, - * "flag": "7888" - * } - * } - * */ - WxMessage.DataSection data = wxMessage.getData(); - WxMessage.DataSection.InnerData innerData = data.getData(); - Integer event = wxMessage.getEvent(); + WxMessage.DataSection data = wxMessage.getData(); + WxMessage.DataSection.InnerData innerData = data.getData(); + Integer event = wxMessage.getEvent(); - if (Util.isAnyEmpty(innerData.getMsg(), innerData.getFromWxid())) { - logger.info("消息内容为空,不处理"); - return; - }else { - logger.info("消息内容:"+innerData.getMsg()); - } - // 只处理超管的消息 - String fromWxid = innerData.getFromWxid(); - WXUtil.SuperAdmin superAdmin = super_admins.get(fromWxid); - if (Util.isEmpty(superAdmin)){ - logger.info("不是超管消息,不处理"); - return; - } - String msg = innerData.getMsg(); + if (Util.isAnyEmpty(innerData.getMsg(), innerData.getFromWxid())) { + logger.info("消息内容为空,不处理"); + return; + } else { + logger.info("消息内容:" + innerData.getMsg()); + } - /** - * 【京东】https://3.cn/2c-47ATm 「京东京造桌面抽屉式收纳盒」 - * 点击链接直接打开 - * */ - if (msg.contains("【京东】")){ - String wxid; - if (Objects.equals(event, fromGR)) { - wxid = innerData.getFromWxid(); - } else { - wxid = innerData.getFinalFromWxid(); - } + String fromWxid = innerData.getFromWxid(); + WXUtil.SuperAdmin superAdmin = super_admins.get(fromWxid); + if (Util.isEmpty(superAdmin)) { + logger.info("不是超管消息,不处理"); + return; + } - // 使用正则表达式匹配URL - //从 转链https://item.m.jd.com/product/100065976064.html?utm_user=plusmember&gx=RnAomTM2bGbfy59DrNFzDHu0uUde7Oc&gxd=RnAoxWMLamXdwpscqIV-D94totD10SY&ad_od=share&utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=CopyURL_shareid64b2a4939719b1d3173112851071496926_shangxiang_none - // 获取 100065976064 - logger.info("处理转链消息"); + String msg = innerData.getMsg(); - String finallyUrl = getUrlStr(msg); - //String finallyUrl = extractProductId(msg); - //String finallyUrl = msg.substring(2); - if (Util.isNotEmpty(finallyUrl)) { - String transferResultUrl = jdUtils.transfer(finallyUrl); - wxUtil.sendTextMessage(wxid, transferResultUrl, msgType, null); - } - return; - } - if (msg.startsWith("京")) { - jdUtils.sendOrderToWxByOrderJD(msg.replace("京", ""),fromWxid); - return; + if (msg.contains("【京东】")) { + logger.info("消息包含【京东】,处理转链消息"); + String wxid; + if (Objects.equals(event, fromGR)) { + wxid = innerData.getFromWxid(); + } else { + wxid = innerData.getFinalFromWxid(); } - logger.info("未命中前置指令,开始命中 Default 流程"); - jdUtils.sendOrderToWxByOrderDefault(msg,fromWxid); + String finallyUrl = getUrlStr(msg); + if (Util.isNotEmpty(finallyUrl)) { + logger.info("提取到URL:{}", finallyUrl); + String transferResultUrl = jdUtils.transfer(finallyUrl); + wxUtil.sendTextMessage(wxid, transferResultUrl, msgType, null); + } else { + logger.info("未提取到URL"); + } + return; + } else { + logger.info("消息不包含【京东】"); + } + + if (msg.startsWith("京")) { + logger.info("消息以京开头,处理京东订单消息"); + jdUtils.sendOrderToWxByOrderJD(msg.replace("京", ""), fromWxid); + return; + } else { + logger.info("消息不以京开头"); + } + + logger.info("未命中前置指令,开始命中 Default 流程"); + jdUtils.sendOrderToWxByOrderDefault(msg, fromWxid); +} //else if (msg.startsWith("美团 ")) { // logger.info("处理美团的消息"); @@ -422,7 +392,6 @@ public class WxMessageConsumer { // wxUtil.sendTextMessage(wxid, result, msgType, wxMessageDataForChat.getFromwxid()); //} // wxMessageDataForChatService.save(wxMessageDataForChat); - } /** * @param wxMessage