diff --git a/src/main/java/cn/van/business/util/WXUtil.java b/src/main/java/cn/van/business/util/WXUtil.java index 6a8df72..ff12510 100644 --- a/src/main/java/cn/van/business/util/WXUtil.java +++ b/src/main/java/cn/van/business/util/WXUtil.java @@ -40,6 +40,7 @@ public class WXUtil { // 群聊管理白名单 public static List chatRoom_admin = new ArrayList<>(); + public static List chatRoom_admin_inner = new ArrayList<>(); // 线报来源群 public static Map chatRoom_xb = new HashMap<>(); @@ -170,14 +171,16 @@ public class WXUtil { //chatRoom_admin.add("50400969285@chatroom"); // 闲鱼 chatRoom_admin.add("50203565991@chatroom"); + chatRoom_admin_inner.add("50203565991@chatroom"); // 什么都发 chatRoom_admin.add("49533691813@chatroom"); + chatRoom_admin_inner.add("49533691813@chatroom"); // 方案交互群 chatRoom_admin.add("44960628585@chatroom"); - //评价生成群 + chatRoom_admin_inner.add("44960628585@chatroom"); + // 评价生成群 chatRoom_admin.add("47484514467@chatroom"); - /* 线报采集来源群 */ // 玩了买 chatRoom_xb.put("23143922156@chatroom", "玩乐买"); diff --git a/src/main/java/cn/van/business/util/WxMessageConsumer.java b/src/main/java/cn/van/business/util/WxMessageConsumer.java index 864d732..cbac14c 100644 --- a/src/main/java/cn/van/business/util/WxMessageConsumer.java +++ b/src/main/java/cn/van/business/util/WxMessageConsumer.java @@ -31,186 +31,26 @@ import static cn.van.business.util.WXUtil.*; */ @Component public class WxMessageConsumer { - - private static final String meituanCookie = "meituanCookie"; - /** - * key开头的为 setting 的 key - */ - private static final String key_caiDan_user = "用户菜单"; - private static final String key_caiDan_admin = "管理员菜单"; - /** - * order 开头的是接受的指令 - */ - private static final String order_caiDan = "菜单"; - private static final String order_admin = "管理员"; - /**/ private static final Logger logger = LoggerFactory.getLogger(WxMessageConsumer.class); - /** - * 临时参数 - * 每次扣费 - */ - private static final BigDecimal priceOfMT20 = new BigDecimal("0.2"); - private static final Integer fromGR = 10008; - private static final String SERVER_URL = "https://api.jd.com/routerjson"; - private static final String accessToken = ""; - private static final String appKey = "98e21c89ae5610240ec3f5f575f86a59"; - private static final String appSecret = "3dcb6b23a1104639ac433fd07adb6dfb"; - private final WXUtil wxUtil; - private final QLUtil qlUtil; - private final WxMessageDataForChatRepository wxMessageDataForChatRepository; - private final WxUserRepository wxUserRepository; - private final SettingRepository settingRepository; private final JDUtil jdUtils; @Autowired - public WxMessageConsumer(WXUtil wxUtil, QLUtil qlUtil, - @Lazy WxMessageDataForChatRepository wxMessageDataForChatService, - @Lazy WxUserRepository wxUserRepository, - @Lazy SettingRepository settingRepository, - @Lazy JDUtil jdUtils) { - this.wxUtil = wxUtil; - this.qlUtil = qlUtil; - this.wxMessageDataForChatRepository = wxMessageDataForChatService; - this.wxUserRepository = wxUserRepository; - this.settingRepository = settingRepository; + public WxMessageConsumer(@Lazy JDUtil jdUtils) { this.jdUtils = jdUtils; } - /** - * 从京东商品 URL 中提取产品 ID - * - * @param url 需要解析的 URL - * @return 提取出的产品 ID - */ - public static String extractProductId(String url) { - // 使用正则表达式匹配 pattern 包含 /product/ 后跟一系列数字,结束于 .html - Pattern pattern = Pattern.compile("/product/(\\d+)\\.html"); - Matcher matcher = pattern.matcher(url); - - if (matcher.find()) { - return matcher.group(1); // 返回第一个捕获组(产品 ID) - } - return null; // 如果没有找到匹配项,返回 null - } - - //private Boolean heiMingDan(String wxid) { - // // 0 正常 1 黑名单 - // // - // boolean flag = false; - // WxUser wxUser = wxUserRepository.getOne(Wrappers.query(new WxUser()).eq("wxid", wxid)); - // if (Util.isNotEmpty(wxUser)) { - // if (wxUser.getStatus().equals(1)) { - // flag = true; - // } - // } - // return flag; - //} - - - //private Boolean isNew(String wxid) { - // // 0 是 1 不是 - // boolean flag = false; - // WxUser wxUser = wxUserRepository.getOne(Wrappers.query(new WxUser()).eq("wxid", wxid)); - // if (Util.isNotEmpty(wxUser)) { - // if (wxUser.getIsnew().equals(0)) { - // flag = true; - // } - // } - // return flag; - //} - - //private Boolean isNew(Integer isNew) { - // // 0 是 1 不是 - // boolean flag = false; - // if (isNew.equals(0)) { - // flag = true; - // } - // return flag; - //} - - /** - * @param wxMessage - * @return - * @throws - * @description - */ - //private void handleTransferEvent(WxMessage wxMessage) { - // Integer msgType = 1; - // - // /** - // * { - // * "fromWxid": "wxid_ytpc72mdoskt22", 对方wxid - // * "msgSource": 1, 1|收到转账 2|对方接收转账 3|发出转账 4|自己接收转账 5|对方退还 6|自己退还 - // * "transType": 1, 1|即时到账 2|延时到账 - // * "money": "2.00", 金额,单位元 - // * "memo": "", 转账备注 - // * "transferid": "1000050001202312250424037787039", 转账ID - // * "invalidtime": "1703577220" 10位时间戳 - // * }*/ - // JSONObject data = wxMessage.getData().getJSONObject("data"); - // if (data == null) { - // return; - // } - // WxMessageDataForTransfer wxMessageDataForTransfer = data.to(WxMessageDataForTransfer.class); - // - // String result = null; - // String wxid = wxMessageDataForTransfer.getFromwxid(); - // - // - // - // if (heiMingDan(wxid)) { - // result = "您已被拉黑,请联系客服!"; - // } else { - // if (wxMessageDataForTransfer.getTranstype().equals(2)) { - // result = "请勿使用延时到账功能。累计三次将永久拉黑!"; - // } else { - // - // JSONObject shouKuanResult = wxUtil.queRenShouKuan(wxid, wxMessageDataForTransfer.getTransferid()); - // if (shouKuanResult == null) { - // result = "查询转账失败,请稍后再试。"; - // } - // if (shouKuanResult != null && shouKuanResult.getInteger("code") == 200) { - // BigDecimal money = wxMessageDataForTransfer.getMoney(); - // if (money.compareTo(BigDecimal.ZERO) > 0) { - // WxUser wxUser = wxUserService.getOne(Wrappers.query(new WxUser()).eq("wxid", wxid)); - // wxUser.setMoneyLeiji(wxUser.getMoneyLeiji().add(money)); - // wxUser.setMoneyShengyu(wxUser.getMoneyShengyu().add(money)); - // wxUser.setCountChongzhi(wxUser.getCountChongzhi().add(BigDecimal.ONE)); - // wxUserService.updateById(wxUser); - // result = "收到转账" + money + "元,已成功存入账户。感谢您的使用。"; - // } - // } - // - // } - // - // } - // wxUtil.sendTextMessage(wxid, result, msgType, null); - // - //} @Async("threadPoolTaskExecutor") public void consume(WxMessage wxMessage) throws Exception { - //logger.info("接收到消息 : {}", wxMessage); if (wxMessage.getEvent() == null) { return; } - /** - * 需要处理 私聊 和 转账消息 - * 其他消息暂时不处理 - * 私聊需要解析是否美团领券 - * 转账需要对接会员系统 - * - * */ - //WxMessage.DataSection data = wxMessage.getData(); + if (FromType.PRIVATE.getKey().equals(wxMessage.getEvent())) { handlePrivateMessage(wxMessage); } else if (FromType.GROUP.getKey().equals(wxMessage.getEvent())) { handleGroupMessage(wxMessage); } - //if (event.equals(EventType.TRANSFER_EVENT.getKey())) { - // handleTransferEvent(wxMessage); - //} - } /** @@ -229,37 +69,23 @@ public class WxMessageConsumer { } else { logger.info("消息内容:{}", innerData.getMsg()); } - String fromWxid = innerData.getFromWxid(); WXUtil.SuperAdmin superAdmin = getSuperAdmins(fromWxid).get(0); if (Util.isEmpty(superAdmin)) { logger.info("不是超管消息,不处理"); return; } - String msg = innerData.getMsg(); if (msg.startsWith("京")) { logger.info("消息以京开头,处理京东指令消息"); jdUtils.sendOrderToWxByOrderJD(msg.replace("京", ""), fromWxid); return; - } else { - logger.info("消息不以京开头"); - } - if (msg.startsWith("拼")) { - logger.info("消息以拼开头,处理拼多多指令消息"); - jdUtils.sendOrderToWxByOrderPDD(msg.replace("拼", ""), fromWxid); - return; } if (msg.startsWith("单")) { logger.info("消息以单开头,处理单指令消息"); jdUtils.sendOrderToWxByOrderD(msg.replace("单", ""), fromWxid); return; } - //if (msg.startsWith("评")){ - // logger.info("消息以评开头,处理评价指令消息"); - // jdUtils.sendOrderToWxByOrderP(msg.replace("评", ""), fromWxid); - // return; - //} logger.info("未命中前置指令,开始命中 Default 流程"); jdUtils.sendOrderToWxByOrderDefault(msg, fromWxid); } @@ -281,542 +107,33 @@ public class WxMessageConsumer { if (chatRoom_xb.containsKey(fromWxid)) { logger.info("线报群消息"); - jdUtils.xb(msg,fromWxid); + jdUtils.xb(msg, fromWxid); return; } + // 超级管理员内部群 + if (chatRoom_admin_inner.contains(fromWxid)) { + if (msg.startsWith("单")) { + logger.info("消息以单开头,处理单指令消息"); + jdUtils.sendOrderToWxByOrderD(msg.replace("单", ""), fromWxid); + return; + } + logger.info("未命中前置指令,开始命中 Default 流程"); + jdUtils.sendOrderToWxByOrderDefault(msg, fromWxid); + } + // 可以对外的群聊 if (!chatRoom_admin.contains(fromWxid)) { logger.info("不是白名单群聊,不处理"); return; } - if (msg.startsWith("评")){ - if (("47484514467@chatroom".equals(fromWxid))){ - logger.info("消息以评开头,处理评价指令消息"); - jdUtils.sendOrderToWxByOrderP(msg.replace("评", ""), fromWxid); - return; - } - if (msg.startsWith("拼")) { - logger.info("消息以拼开头,处理拼多多指令消息"); - jdUtils.sendOrderToWxByOrderPDD(msg.replace("拼", ""), fromWxid); - return; - } - if (msg.startsWith("单")) { - logger.info("消息以单开头,处理单指令消息"); - jdUtils.sendOrderToWxByOrderD(msg.replace("单", ""), fromWxid); - return; - } - logger.info("未命中前置指令,开始命中 Default 流程"); - jdUtils.sendOrderToWxByOrderDefault(msg, fromWxid); - /** - * { - * "event": 10008, - * "wxid": "wxid_nq6r0w9v12612", - * "data": { - * "type": "recvMsg", - * "des": "收到消息", - * "data": { - * "timeStamp": "1716619844146", - * "fromType": 2, - * "msgType": 1, - * "msgSource": 0, - * "fromWxid": "34457730396@chatroom", - * "finalFromWxid": "wxid_3sq4tklb6c3121", - * "atWxidList": ["wxid_nq6r0w9v12612", "wxid_s4icha2bm2zg12"], - * "silence": 0, - * "membercount": 3, - * "signature": "V1_1YiTEwOY|v1_1YiTEwOY", - * "msg": "@忆白\\u2005@小鹿\\uD83D\\uDE00\\uD83D\\uDE00摸\\u2005你好\\uD83E\\uDD23世界", - * "msgId": "7053704521966022857", - * "sendId": "" - * }, - * "timestamp": "1716619844147", - * "wxid": "wxid_nq6r0w9v12612", - * "port": 8888, - * "pid": 3944, - * "flag": "7888" - * } - * }*/ - } - //else if (msg.startsWith("美团 ")) { - // logger.info("处理美团的消息"); - // msg = msg.substring(msg.indexOf("https://i.meituan.com/mttouch/page/account")); - // String[] all = msg.split("\\?"); - // - // if (all.length == 2) { - // String wxid = null; - // if (wxMessage.getFromtype().equals(fromGR)) { - // wxid = wxMessage.getFromid(); - // } else { - // wxid = wxMessage.getFromgid(); - // } - // String httpData = all[1]; - // String[] httpDataArr = httpData.split("&"); - // if (httpDataArr.length == 2) { - // // 调用美团 - // //String result = mt20(wxid, httpDataArr[0].split("=")[1], httpDataArr[1].split("=")[1]); - // - // //wxUtil.sendTextMessage(wxid, result, msgType, null); - // } else { - // - // wxUtil.sendTextMessage(wxid, "请检查提交的数据格式是否正确。", msgType, null); - // } - // } - //} else if ("余额".equals(msg)) { - // String wxid = null; - // if (wxMessageDataForChat.getFromtype() == 1) { - // wxid = wxMessageDataForChat.getFromwxid(); - // } else if (wxMessageDataForChat.getFromtype() == 2) { - // wxid = wxMessageDataForChat.getFinalfromwxid(); - // } - // WxUser wxUser = wxUserService.getOne(Wrappers.query(new WxUser()).eq("wxid", wxid)); - // String result = ""; - // if (Util.isNotEmpty(wxUser)) { - // result = "您的余额为:" + wxUser.getMoneyLeiji() + "元\r"; - // result = result + " 您的消费次数为:" + wxUser.getCountXiaofei() + "次\r"; - // result = result + " 您的充值次数为:" + wxUser.getCountChongzhi() + "次\r"; - // result = result + " 您的累计充值为:" + wxUser.getMoneyLeiji() + "元"; - // } else { - // result = "暂未查询到充值记录。\r"; - // } - // - // - // wxUtil.sendTextMessage(wxid, result, msgType, null); - //} else if ("体验".equals(msg)) { - // String wxid = null; - // if (wxMessageDataForChat.getFromtype() == 1) { - // wxid = wxMessageDataForChat.getFromwxid(); - // } else if (wxMessageDataForChat.getFromtype() == 2) { - // wxid = wxMessageDataForChat.getFinalfromwxid(); - // } - // String result = ""; - // if (heiMingDan(wxid)) { - // result = "黑名单!"; - // } else { - // WxUser wxUser = wxUserService.getOne(Wrappers.query(new WxUser()).eq("wxid", wxid)); - // if (isNew(wxUser.getIsnew())) { - // wxUser.setMoneyLeiji(wxUser.getMoneyLeiji().add(new BigDecimal(1))); - // wxUser.setMoneyShengyu(wxUser.getMoneyShengyu().add(new BigDecimal(1))); - // wxUser.setCountChongzhi(wxUser.getCountChongzhi().add(BigDecimal.ONE)); - // wxUser.setIsnew(1); - // wxUserService.updateById(wxUser); - // result = "体验成功,您已成功充值" + 1.00 + "元,已成功存入账户。感谢您的使用。"; - // } else { - // result = "您已体验过,请勿重复体验。"; - // } - // - // } - // - // wxUtil.sendTextMessage(wxid, result, msgType, null); - // - //}// 用户返回用户菜单 - //else if (order_caiDan.equals(msg)) { - // String wxid = null; - // if (wxMessageDataForChat.getFromtype() == 1) { - // wxid = wxMessageDataForChat.getFromwxid(); - // } else if (wxMessageDataForChat.getFromtype() == 2) { - // wxid = wxMessageDataForChat.getFinalfromwxid(); - // } - // String result = ""; - // String puTong = getSetting(key_caiDan_user); - // String chaoJi = getSetting(key_caiDan_admin); - // if (isSuperAdminUser(wxid)) { - // result = "用户菜单:" + puTong + " 管理员菜单:" + chaoJi; - // } else { - // result = "用户菜单:" + puTong; - // } - // - // wxUtil.sendTextMessage(wxid, result, msgType, wxMessageDataForChat.getFromwxid()); - //} - // wxMessageDataForChatService.save(wxMessageDataForChat); - - - /** - * @param wxMessage - * @return - * @throws - * @description 处理群聊消息 - */ -// private void handleGroupMessage (WxMessage wxMessage){ -// Integer msgType = 2; -// /** -// * 接收到消息 : WxMessage(event=10009, wxid=wxid_kr145nk7l0an31, data={"type":"D0003","des":"收到消息","data":{"timeStamp":"1703128368100","fromType":1,"msgT两次ype":1,"msgSource":0,"fromWxid":"wxid_ytpc72mdoskt22","finalFromWxid":"","atWxidList":[],"silence":0,"membercount":0,"signature":"v1_vXrWK/iB","msg":"嗨鲁个迷紫123","msgBase64":"5Zeo6bKB5Liq6L+357SrMTIz"},"timestamp":"1703128368112","wxid":"wxid_kr145nk7l0an31","port":16888,"pid":10468,"flag":"7777"}) -// * 需要get 两次 data 字段*/ -// JSONObject data = wxMessage.getData().getJSONObject("data"); -// if (data == null) { -// return; -// } -// -// -// /**{"type":"D0003","des":"收到消息","data":{"timeStamp":"1702957325031","fromType":1,"msgType":1,"msgSource":0,"fromWxid":"wxid_ytpc72mdoskt22","finalFromWxid":"","atWxidList":[],"silence":0,"membercount":0,"signature":"v1_OJXJYpvM","msg":"在不","msgBase64":"5Zyo5LiN"},"timestamp":"1702957325041","wxid":"wxid_kr145nk7l0an31","port":16888,"pid":10468,"flag":"7777"} -// * */ -// WxMessageDataForChat wxMessageDataForChat = data.to(WxMessageDataForChat.class); -// -// // 做业务处理 -// logger.info("处理消息: {}", wxMessageDataForChat.toString()); -// -// /** -// * timeStamp 收到这条消息的13位现行时间戳 -// * fromType 来源类型:1|私聊 2|群聊 3|公众号 -// * msgType 消息类型:1|文本 3|图片 34|语音 42|名片 43|视频 47|动态表情 48|地理位置 49|分享链接或附件 2001|红包 2002|小程序 2003|群邀请 10000|系统消息 -// * msgSource 消息来源:0|别人发送 1|自己手机发送 -// * fromWxid fromType=1时为好友wxid,fromType=2时为群wxid,fromType=3时公众号wxid -// * finalFromWxid 仅fromType=2时有效,为群内发言人wxid -// * atWxidList 仅fromType=2,且msgSource=0时有效,为消息中艾特人wxid列表 -// * silence 仅fromType=2时有效,0 -// * membercount 仅fromType=2时有效,群成员数量 -// * signature 消息签名 -// * msg 消息内容 -// * msgBase64 消息内容的Base64 -// * */ -// if (Util.isAnyEmpty(wxMessageDataForChat.getMsg(), wxMessageDataForChat.getFromwxid(), wxMessageDataForChat.getFromtype())) { -// logger.info("消息内容为空,不处理"); -// return; -// } -// String atwxidlist = wxMessageDataForChat.getAtwxidlist(); -// if (Util.isNotEmpty((atwxidlist))) { -// JSONObject wxList = wxUtil.getWxList(); -// JSONObject wxBotInfo = (JSONObject) wxList.getJSONArray("result").get(0); -// String botWxid = wxBotInfo.getString("wxid"); -// -// if (atwxidlist.contains(botWxid)) { -// String[] split = wxMessageDataForChat.getMsg().split(" "); -// String msg; -// if (split.length == 2) { -// msg = split[1]; -// } else { -// String[] newArray = new String[split.length - 1]; -// System.arraycopy(split, 1, newArray, 0, newArray.length); -// StringBuilder stringBuilder = new StringBuilder(); -// Iterator iterator = Arrays.stream(newArray).iterator(); -// while (iterator.hasNext()) { -// String s = iterator.next(); -// stringBuilder.append(s).append(" "); -// } -// msg = stringBuilder.toString(); -// } -// -////美团 20-7 + https://i.meituan.com/mttouch/page/account?userId=3822095266&token=AgHdIkm2tAGHc9SQSiG7M8xCx1LbTue9D2HPOAun2eYl3ou7BeEw1uGrGZH-DxmEiUgsbA1v9SM4DQAAAAC6HAAAz0rTXmkB_CIHin08hCu68mFv5k6nUc2q6_CfZqEdBcngRK_xD8Sx5fE4rfdq-yAJ, msgbase64=576O5ZuiIDIwLTcgKyBodHRwczovL2kubWVpdHVhbi5jb20vbXR0b3VjaC9wYWdlL2FjY291bnQ/dXNlcklkPTM4MjIwOTUyNjYmdG9rZW49QWdIZElrbTJ0QUdIYzlTUVNpRzdNOHhDeDFMYlR1ZTlEMkhQT0F1bjJlWWwzb3U3QmVFdzF1R3JHWkgtRHhtRWlVZ3NiQTF2OVNNNERRQUFBQUM2SEFBQXowclRYbWtCX0NJSGluMDhoQ3U2OG1GdjVrNm5VYzJxNl9DZlpxRWRCY25nUktfeEQ4U3g1ZkU0cmZkcS15QUo= -// if (msg.startsWith("美团 20-7 ")) { -// logger.info("处理美团的消息"); -// msg = msg.substring(msg.indexOf("https://i.meituan.com/mttouch/page/account")); -// String[] all = msg.split("\\?"); -// -// if (all.length == 2) { -// String wxid = null; -// if (wxMessageDataForChat.getFromtype() == 1) { -// wxid = wxMessageDataForChat.getFromwxid(); -// } else if (wxMessageDataForChat.getFromtype() == 2) { -// wxid = wxMessageDataForChat.getFinalfromwxid(); -// } -// String httpData = all[1]; -// String[] httpDataArr = httpData.split("&"); -// if (httpDataArr.length == 2) { -// String result = mt20(wxMessageDataForChat.getFinalfromwxid(), httpDataArr[0].split("=")[1], httpDataArr[1].split("=")[1]); -// -// wxUtil.sendTextMessage(wxMessageDataForChat.getFinalfromwxid(), result, msgType, wxMessageDataForChat.getFromwxid()); -// } else { -// -// wxUtil.sendTextMessage(wxMessageDataForChat.getFinalfromwxid(), "请检查提交的数据格式是否正确。", msgType, wxMessageDataForChat.getFromwxid()); -// } -// -// } -// } else if ("[转账待你接收,可在手机上查看]".equals(msg)) { -// -// wxUtil.sendTextMessage(wxMessageDataForChat.getFinalfromwxid(), "暂不支持群内转账功能,请私聊进行转账充值。", msgType, wxMessageDataForChat.getFromwxid()); -// } else if ("余额".equals(msg)) { -// String wxid = null; -// if (wxMessageDataForChat.getFromtype() == 1) { -// wxid = wxMessageDataForChat.getFromwxid(); -// } else if (wxMessageDataForChat.getFromtype() == 2) { -// wxid = wxMessageDataForChat.getFinalfromwxid(); -// } -// WxUser wxUser = wxUserService.getOne(Wrappers.query(new WxUser()).eq("wxid", wxid)); -// String result = ""; -// if (Util.isNotEmpty(wxUser)) { -// result = "您的余额为:" + wxUser.getMoneyLeiji() + "元\r"; -// result = result + " 您的消费次数为:" + wxUser.getCountXiaofei() + "次\r"; -// result = result + " 您的充值次数为:" + wxUser.getCountChongzhi() + "次\r"; -// result = result + " 您的累计充值为:" + wxUser.getMoneyLeiji() + "元"; -// } else { -// result = "暂未查询到充值记录。\r"; -// } -// -// -// wxUtil.sendTextMessage(wxid, result, msgType, wxMessageDataForChat.getFromwxid()); -// } else if ("体验".equals(msg)) { -// String wxid = null; -// if (wxMessageDataForChat.getFromtype() == 1) { -// wxid = wxMessageDataForChat.getFromwxid(); -// } else if (wxMessageDataForChat.getFromtype() == 2) { -// wxid = wxMessageDataForChat.getFinalfromwxid(); -// } -// String result = ""; -// if (heiMingDan(wxid)) { -// result = "黑名单!"; -// } else { -// WxUser wxUser = wxUserService.getOne(Wrappers.query(new WxUser()).eq("wxid", wxid)); -// if (isNew(wxUser.getIsnew())) { -// wxUser.setMoneyLeiji(wxUser.getMoneyLeiji().add(new BigDecimal(1))); -// wxUser.setMoneyShengyu(wxUser.getMoneyShengyu().add(new BigDecimal(1))); -// wxUser.setCountChongzhi(wxUser.getCountChongzhi().add(BigDecimal.ONE)); -// wxUser.setIsnew(1); -// wxUserService.updateById(wxUser); -// result = "体验成功,您已成功充值" + 1.00 + "元,已成功存入账户。感谢您的使用。"; -// } else { -// result = "您已体验过,请勿重复体验。"; -// } -// -// } -// -// wxUtil.sendTextMessage(wxid, result, msgType, wxMessageDataForChat.getFromwxid()); -// -// } else if (msg.startsWith("S")) { -// logger.info("处理超级管理员的消息"); -// String wxid = null; -// if (wxMessageDataForChat.getFromtype() == 1) { -// wxid = wxMessageDataForChat.getFromwxid(); -// } else if (wxMessageDataForChat.getFromtype() == 2) { -// wxid = wxMessageDataForChat.getFinalfromwxid(); -// } -// if (!isSuperAdminUser(wxid)) { -// return; -// } -// -// String result = ""; -// if (heiMingDan(wxid)) { -// result = "黑名单!"; -// } else { -// String[] split1 = msg.split("\\+"); -// String superAdminOrder = split1[1]; -// if ("设置普通菜单".equals(superAdminOrder)) { -// if (split1.length == 3) { -// String value = split1[2]; -// Setting setting = settingService.getOne(new QueryWrapper().eq("setting_key", key_caiDan_admin)); -// setting.setSettingValue(value); -// settingService.saveOrUpdate(setting); -// result = "设置成功!"; -// } else { -// result = "设置失败!"; -// } -// } else if ("设置超级菜单".equals(superAdminOrder)) { -// if (split1.length == 3) { -// String value = split1[2]; -// Setting setting = settingService.getOne(new QueryWrapper().eq("setting_key", key_caiDan_admin)); -// setting.setSettingValue(value); -// settingService.saveOrUpdate(setting); -// result = "设置成功!"; -// } else { -// result = "设置失败!"; -// } -// } else if ("查询管理员".equals(superAdminOrder)) { -// result = getSetting(order_admin); -// } else if ("添加管理员".equals(superAdminOrder)) { -// if (split1.length == 3) { -// String value = split1[2]; -// Setting setting = settingService.getOne(new QueryWrapper().eq("setting_key", order_admin)); -// setting.setSettingValue(value.concat(",").concat(setting.getSettingValue())); -// settingService.saveOrUpdate(setting); -// result = "设置成功!"; -// } else { -// result = "设置失败!"; -// } -// } else if ("删除管理员".equals(superAdminOrder)) { -// if (split1.length == 3) { -// String value = split1[2]; -// Setting setting = settingService.getOne(new QueryWrapper().eq("setting_key", order_admin)); -// setting.setSettingValue(setting.getSettingValue().replace(value, "")); -// settingService.saveOrUpdate(setting); -// result = "设置成功!"; -// } else { -// result = "设置失败!"; -// } -// } -// // -// //if () -// -// wxUtil.sendTextMessage(wxid, result, msgType, wxMessageDataForChat.getFromwxid()); -// } -// } -// // 管理员返回两种菜单 -// else if (order_caiDan.equals(msg)) { -// String wxid = null; -// if (wxMessageDataForChat.getFromtype() == 1) { -// wxid = wxMessageDataForChat.getFromwxid(); -// } else if (wxMessageDataForChat.getFromtype() == 2) { -// wxid = wxMessageDataForChat.getFinalfromwxid(); -// } -// String result = ""; -// String puTong = getSetting(key_caiDan_user); -// String chaoJi = getSetting(key_caiDan_admin); -// if (isSuperAdminUser(wxid)) { -// result = "用户菜单:" + puTong + " 管理员菜单:" + chaoJi; -// } else { -// result = "用户菜单:" + puTong; -// } -// -// wxUtil.sendTextMessage(wxid, result, msgType, wxMessageDataForChat.getFromwxid()); -// } -// } -// wxMessageDataForChatService.save(wxMessageDataForChat); -// -// } -// -// } -// private String getSetting(String key) { -// if (Util.isNotEmpty(key)) { -// Setting value = settingRepository.getOne(new QueryWrapper().eq("setting_key", key)); -// return value.getSettingValue(); -// } else { -// return null; -// } -// } - - //private boolean isSuperAdminUser(String wxid) { - // boolean flag = false; - // Setting setting = settingRepository.getOne(new QueryWrapper().eq("setting_key", "管理员")); - // if (Util.isNotEmpty(setting)) { - // if (setting.getSettingValue().contains(wxid)) { - // flag = true; - // } - // } - // return flag; - //} - - /** - * @param userId - * @param token - * @return - * @throws - * @description - */ - //private String mt20(String wxid, String userId, String token) { - // /** - // * 1 查询用户余额 - // * 2 调用青龙的添加环境变量 - // * 3 执行美团领券 - // * 4 删除环境变量 - // * 5 改写返回的消息内容返回给用户 - // * */ - // logger.info("查询用户余额"); - // HashMap checkYuE = checkYuE(wxid); - // Boolean isRun = (Boolean) checkYuE.get("isRun"); - // String info = (String) checkYuE.get("info"); - // BigDecimal yuE = (BigDecimal) checkYuE.get("yuE"); - // //isRun = true; - // - // // 余额可以支持一次扣费 - // if (isRun) { - // // 调用青龙 成功 - // return runQL(token, wxid, 1); - // - // } else { - // // 调用青龙 失败 - // logger.info("余额不支持一次扣费"); - // return info; - // } - // - //} - - /** - * @param wxid - * @return - * @throws - * @description 根据 wxid 查询余额 - */ - //private HashMap checkYuE(String wxid) { - // - // HashMap result = new HashMap<>(); - // BigDecimal yuE = BigDecimal.ZERO; - // String info = ""; - // Boolean isRun = false; - // WxUser wxUser = wxUserRepository.getOne(Wrappers.query(new WxUser()).eq("wxid", wxid)); - // if (Util.isEmpty(wxUser)) { - // info = "未进行过充值,请先充值后使用。"; - // } else { - // // 如果余额小于等于零 - // if (wxUser.getMoneyShengyu().compareTo(BigDecimal.ZERO) <= 0) { - // info = "账户余额不足,请先充值后使用。"; - // } - // - // if (wxUser.getMoneyShengyu().compareTo(priceOfMT20) < 0) { - // info = "剩余余额不足以支持本次扣费,请先充值后使用。"; - // } else { - // isRun = true; - // } - // } - // - // // 返回结果 - // result.put("yuE", yuE); - // result.put("info", info); - // result.put("isRun", isRun); - // return result; - //} - - /** - * @param wxid - * @param time 调用次数,后期可以改成包月还是一次 ,目前都是 1 - * @param token - * @return - * @throws - * @description - */ - private String runQL(String token, String wxid, Integer time) { - - /** - * 1. 在系统设置 -> 应用设置 -> 添加应用,权限目前支持5个模块,可以选择多个模块。选择一个模块之后,可读写此模块的所有接口。 - * 2. 使用生成的 client_id 和 client_secret 请求获取token接口 http://localhost:5700/open/auth/token?client_id=xxxxxx&client_secret=xxxxxxxx - * 3. 上面接口返回的token有效期为30天,可用于请求青龙的接口 curl 'http://localhost:5700/open/envs?searchValue=&t=1630032278171' -H 'Authorization: Bearer - * 接口返回的token' - * 4. openapi的接口与系统正常接口的区别就是青龙里的是/api/envs,openapi是/open/envs,即就是青龙接口中的api换成open - * */ - - //String responseStr = HttpRequest.post(QL_BASE_URL + getToken()) - // .body(JSON.toJSONString(jsonMap))//头信息,多个头信息多次调用此方法即可 - // .execute().body(); - - /* - * 1.查询有没有这个环境变量 - * 2.没有就创建 - * 3.有就修改 环境变量名 需要 wxid + 手机号 - * 4.执行crons - * 5.如果是一次性的,time = 1 ,就删除环境变量(考虑改成禁用) - * 6.拿到青龙的结果 - * */ - //new QLUtil().getEnv(remark) - - - HashMap loginedUserInfo = qlUtil.getLoginedUserInfo(token); - if (Util.isNotEmpty(loginedUserInfo)) { - String mobile = loginedUserInfo.get("mobile"); - String nickName = loginedUserInfo.get("nickName"); - String remark = wxid + "+" + mobile + "+" + nickName; - JSONArray env = qlUtil.getEnv(token); - logger.info("1 查询环境变量 env = " + env); - // 第一次用 token 查询 - if (env.size() == 0) { - env = qlUtil.getEnv(wxid + "+" + mobile); + if (msg.startsWith("评")) { + if (("47484514467@chatroom".equals(fromWxid))) { + logger.info("消息以评开头,处理评价指令消息"); + jdUtils.sendOrderToWxByOrderP(msg.replace("评", ""), fromWxid); + return; } - // 第二次用 wxid + mobile 查询,如果不存在就直接创建 - if (env.size() == 0) { - Boolean addEnv = qlUtil.addEnv(token, meituanCookie, remark); - logger.info("2 使用token查询不存在环境变量,向青龙添加变量 addEnv = " + addEnv); - } else { - // 如果存在则说明 需要更新token - logger.info("3 环境变量已存在{}", env); - } - // 这时候已经有了环境变量,可以执行crons - qlUtil.getCron("美团"); - //logger.info("查询crons cron = " + cron); - - - return "runQL 调用成功"; - - } else { - - return "获取用户信息失败"; } } - }