diff --git a/src/main/java/cn/van/business/util/JDScheduleJob.java b/src/main/java/cn/van/business/util/JDScheduleJob.java index 1be02f9..0a1273a 100644 --- a/src/main/java/cn/van/business/util/JDScheduleJob.java +++ b/src/main/java/cn/van/business/util/JDScheduleJob.java @@ -4,6 +4,7 @@ import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.van.business.model.jd.OrderRow; import cn.van.business.model.pl.Comment; +import cn.van.business.model.wx.SuperAdmin; import cn.van.business.repository.CommentRepository; import cn.van.business.repository.OrderRowRepository; import cn.van.business.util.jdReq.*; @@ -213,7 +214,7 @@ public class JDScheduleJob { } // 订单处理方法 - private void processOrderResponse(UnionOpenOrderRowQueryResponse response, WXUtil.SuperAdmin admin) { + private void processOrderResponse(UnionOpenOrderRowQueryResponse response, SuperAdmin admin) { Arrays.stream(response.getQueryResult().getData()).parallel().map(this::createOrderRow).forEach(orderRowRepository::save); } @@ -324,7 +325,7 @@ public class JDScheduleJob { if (isRunning_jd.equals("true")) { try { OrderFetchStrategy strategy = new Days3090Strategy(); - for (WXUtil.SuperAdmin admin : super_admins.values()) { + for (SuperAdmin admin : super_admins.values()) { try { if (Util.isAnyEmpty(admin.getAppKey(), admin.getSecretKey())) { continue; @@ -351,7 +352,7 @@ public class JDScheduleJob { try { OrderFetchStrategy strategy = new Days1430Strategy(); // 需补充Days1430Strategy实现 - for (WXUtil.SuperAdmin admin : super_admins.values()) { + for (SuperAdmin admin : super_admins.values()) { try { if (Util.isAnyEmpty(admin.getAppKey(), admin.getSecretKey())) { continue; diff --git a/src/main/java/cn/van/business/util/JDUtil.java b/src/main/java/cn/van/business/util/JDUtil.java index a8c519f..242adbf 100644 --- a/src/main/java/cn/van/business/util/JDUtil.java +++ b/src/main/java/cn/van/business/util/JDUtil.java @@ -8,6 +8,7 @@ import cn.van.business.model.jd.JDOrder; import cn.van.business.model.jd.OrderRow; import cn.van.business.model.pl.Comment; import cn.van.business.model.pl.TaobaoComment; +import cn.van.business.model.wx.SuperAdmin; import cn.van.business.repository.*; import cn.van.business.util.ds.DeepSeekClientUtil; import cn.van.business.util.ds.GPTClientUtil; @@ -265,9 +266,9 @@ public class JDUtil { public void sendOrderToWxByOrderJD(String order, String fromWxid) { int[] param = {-1}; - List superAdmins = getSuperAdmins(fromWxid); + List superAdmins = getSuperAdmins(fromWxid); List unionIds = new ArrayList<>(); - for (WXUtil.SuperAdmin superAdmin : superAdmins) { + for (SuperAdmin superAdmin : superAdmins) { String unionId = superAdmin.getUnionId(); unionIds.add(Long.valueOf(unionId)); } @@ -556,9 +557,9 @@ public class JDUtil { */ public void sendOrderToWxByOrderJDAdvanced(String order, String fromWxid) { int[] param = {-1}; - List superAdmins = getSuperAdmins(fromWxid); + List superAdmins = getSuperAdmins(fromWxid); List unionIds = new ArrayList<>(); - for (WXUtil.SuperAdmin superAdmin : superAdmins) { + for (SuperAdmin superAdmin : superAdmins) { String unionId = superAdmin.getUnionId(); unionIds.add(Long.valueOf(unionId)); } diff --git a/src/main/java/cn/van/business/util/OrderUtil.java b/src/main/java/cn/van/business/util/OrderUtil.java index 7f7b646..be5fc71 100644 --- a/src/main/java/cn/van/business/util/OrderUtil.java +++ b/src/main/java/cn/van/business/util/OrderUtil.java @@ -2,6 +2,7 @@ package cn.van.business.util; import cn.van.business.enums.ValidCodeConverter; import cn.van.business.model.jd.OrderRow; +import cn.van.business.model.wx.SuperAdmin; import cn.van.business.repository.OrderRowRepository; import lombok.AllArgsConstructor; import lombok.Getter; @@ -129,7 +130,8 @@ public class OrderUtil { if (Boolean.TRUE.equals(redisTemplate.hasKey(key))) { return; } - List superAdmins = getSuperAdmins(wxId); + + List superAdmins = getSuperAdmins(wxId); if (superAdmins.isEmpty()) return; List unionIds = superAdmins.stream().map(admin -> Long.valueOf(admin.getUnionId())).collect(Collectors.toList()); diff --git a/src/main/java/cn/van/business/util/WXUtil.java b/src/main/java/cn/van/business/util/WXUtil.java index 6d7b32f..c7a013f 100644 --- a/src/main/java/cn/van/business/util/WXUtil.java +++ b/src/main/java/cn/van/business/util/WXUtil.java @@ -1,9 +1,11 @@ package cn.van.business.util; +import cn.van.business.model.wx.SuperAdmin; import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.HttpRequest; import cn.van.business.enums.WXReqType; import cn.van.business.mq.MessageProducerService; +import cn.van.business.repository.SuperAdminRepository; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import lombok.AllArgsConstructor; @@ -88,14 +90,16 @@ public class WXUtil { public static String WX_BASE_URL; private final WxtsUtil wxTsUtil; private final MessageProducerService messageProducerService; + private final SuperAdminRepository superAdminRepository; public int sendTimes = 0; private static boolean restartNoticeSent = false; @Autowired - public WXUtil(Environment env, WxtsUtil wxTsUtil, @Lazy MessageProducerService messageProducerService) { + public WXUtil(Environment env, WxtsUtil wxTsUtil, @Lazy MessageProducerService messageProducerService, SuperAdminRepository superAdminRepository) { this.messageProducerService = messageProducerService; this.wxTsUtil = wxTsUtil; WX_BASE_URL = env.getProperty("config.WX_BASE_URL"); + this.superAdminRepository = superAdminRepository; System.out.println("WX_BASE_URL:" + WX_BASE_URL); initSuperAdmins(); } @@ -143,74 +147,16 @@ public class WXUtil { if (restartNoticeSent) { return; } - SuperAdmin admin1 = new SuperAdmin("wxid_ytpc72mdoskt22", "凡", "2014264913", "98e21c89ae5610240ec3f5f575f86a59", "3dcb6b23a1104639ac433fd07adb6dfb"); - super_admins.put(admin1.getWxid() + admin1.getUnionId(), admin1); - jdidToWxidMap.put(admin1.getUnionId(), admin1.getWxid()); - jdidToRemarkMap.put(admin1.getUnionId(), admin1.getName()); - - SuperAdmin admin2 = new SuperAdmin("wxid_yneqf1implxu12", "源", "2025353364", "e3c161242c8a1416fada5b5564d7ee70", "41ae9aabf03b41e6ba309682e36b323e"); - super_admins.put(admin2.getWxid() + admin2.getUnionId(), admin2); - jdidToWxidMap.put(admin2.getUnionId(), admin2.getWxid()); - jdidToRemarkMap.put(admin2.getUnionId(), admin2.getName()); - - SuperAdmin admin3 = new SuperAdmin("wxid_ytpc72mdoskt22", "琳", "2035096657", "9c2011409f0fc906b73432dd3687599d", "3ceddff403e544a8a2eacc727cf05dab"); - super_admins.put(admin3.getWxid() + admin3.getUnionId(), admin3); - jdidToWxidMap.put(admin3.getUnionId(), admin3.getWxid()); - jdidToRemarkMap.put(admin3.getUnionId(), admin3.getName()); - - SuperAdmin admin4 = new SuperAdmin("wxid_ytpc72mdoskt22", "淑", "2036678559", "4dbc8edd74fbb24d537ee64930527e30", "27ee9b5871e547eb83e19027a4ff7e18"); - super_admins.put(admin4.getWxid() + admin4.getUnionId(), admin4); - jdidToWxidMap.put(admin4.getUnionId(), admin4.getWxid()); - jdidToRemarkMap.put(admin4.getUnionId(), admin4.getName()); - - SuperAdmin admin5 = new SuperAdmin("wxid_ytpc72mdoskt22", "妈", "2035140236", "5cc8da6a55842330775fad4ee9ebf47a", "c4aebcd408924143a75463781f6acd7c"); - super_admins.put(admin5.getWxid() + admin5.getUnionId(), admin5); - jdidToWxidMap.put(admin5.getUnionId(), admin5.getWxid()); - jdidToRemarkMap.put(admin5.getUnionId(), admin5.getName()); - - SuperAdmin admin6 = new SuperAdmin("wxid_ytpc72mdoskt22", "心", "2019237086", "01381d95e4936f1f3fe643bba2171894", "087c56aa156a4c20be280195be8b3eda"); - super_admins.put(admin6.getWxid() + admin6.getUnionId(), admin6); - jdidToWxidMap.put(admin6.getUnionId(), admin6.getWxid()); - jdidToRemarkMap.put(admin6.getUnionId(), admin6.getName()); - - SuperAdmin admin7 = new SuperAdmin("wxid_ytpc72mdoskt22", "敏", "2033493067", "66618e24a5e9f44156253c4eb9892388", "15846e2334934482a703417d5058f842"); - super_admins.put(admin7.getWxid() + admin7.getUnionId(), admin7); - jdidToWxidMap.put(admin7.getUnionId(), admin7.getWxid()); - jdidToRemarkMap.put(admin7.getUnionId(), admin7.getName()); - //370|10:39:16|wxid_kr145nk7l0an31|发出私聊|【发送】wxid_gca9mnidqhkq11: - SuperAdmin admin8 = new SuperAdmin("wxid_ytpc72mdoskt22", "梓豪", "1003068753", "e335738c819a7c3343d4dde52c393880", "b56abdd9b177466ba2afb6f0ee89709c"); - super_admins.put(admin8.getWxid() + admin8.getUnionId(), admin8); - jdidToWxidMap.put(admin8.getUnionId(), admin8.getWxid()); - jdidToRemarkMap.put(admin8.getUnionId(), admin8.getName()); - - SuperAdmin admin9 = new SuperAdmin("wxid_ytpc72mdoskt22", "楠", "2032071669", "327beaa7ee7b5911a79e241013971403", "9b5110c76a534f09808258057e3cf20b"); - super_admins.put(admin9.getWxid() + admin9.getUnionId(), admin9); - jdidToWxidMap.put(admin9.getUnionId(), admin9.getWxid()); - jdidToRemarkMap.put(admin9.getUnionId(), admin9.getName()); - - SuperAdmin admin10 = new SuperAdmin("wxid_sr3r8ot0z6do12", "星", "2036719699", "43de3e21ab2936380e558c5606e2bae0", "1fb013c8d5fb4e2597cbdb19fe128b02"); - super_admins.put(admin10.getWxid() + admin10.getUnionId(), admin10); - jdidToWxidMap.put(admin10.getUnionId(), admin10.getWxid()); - jdidToRemarkMap.put(admin10.getUnionId(), admin10.getName()); - - //102|12:50:55|wxid_kr145nk7l0an31|收到私聊|:1 0213的微信号 - SuperAdmin admin11 = new SuperAdmin("wxid_cfmrk2upjtf322", "0213", "", "", ""); - super_admins.put(admin11.getWxid() + admin11.getUnionId(), admin11); - - SuperAdmin admin12 = new SuperAdmin("wxid_ytpc72mdoskt22", "轩", "2036765910", "e9c3f42fb6452af9c3dfc4a8496d6798", "5e56bb788a3c4d9ba032234277c521f2"); - super_admins.put(admin12.getWxid() + admin12.getUnionId(), admin12); - jdidToWxidMap.put(admin12.getUnionId(), admin12.getWxid()); - jdidToRemarkMap.put(admin12.getUnionId(), admin12.getName()); - - SuperAdmin admin13 = new SuperAdmin("wxid_ytpc72mdoskt22", "牛", "2036827177", "0218a93e14d1a37661889e91333aed30", "c0f5f9a37d904f95a9e968be97ad37bb"); - super_admins.put(admin13.getWxid() + admin13.getUnionId(), admin13); - jdidToWxidMap.put(admin13.getUnionId(), admin13.getWxid()); - jdidToRemarkMap.put(admin13.getUnionId(), admin13.getName()); - - /**/ - SuperAdmin admin14 = new SuperAdmin("wxid_m5ibcpe0ukw521", "小怪兽", "", "", ""); - super_admins.put(admin14.getWxid() + admin14.getUnionId(), admin14); - + logger.info("初始化超级管理员"); + List superAdminList = superAdminRepository.findAll(); + for (SuperAdmin superAdmin : superAdminList) { + super_admins.put(superAdmin.getWxid() + superAdmin.getUnionId(), superAdmin); + if (Util.isNotEmpty(superAdmin.getUnionId())){ + jdidToWxidMap.put(superAdmin.getUnionId(), superAdmin.getWxid()); + jdidToRemarkMap.put(superAdmin.getUnionId(), superAdmin.getName()); + } + logger.info("超级管理员:{} {}", superAdmin.getName(), superAdmin.getWxid()); + } /* 内部管理群 */ @@ -250,18 +196,6 @@ public class WXUtil { String fromWxid = default_bot_wxid; // 来源为机器人自身 sendTextMessage(default_super_admin_wxid, messageContent, 1, fromWxid, false); - //for (SuperAdmin admin : super_admins.values()) { - // if (!notify_wx.contains(admin.getWxid())){ - // try { - // sendTextMessage(admin.getWxid(), messageContent, 1, fromWxid, false); - // notify_wx.add(admin.getWxid()); - // } catch (Exception e) { - // logger.warn("发送重启通知失败,目标 wxid: {}", admin.getWxid(), e); - // } - // } - // - //} - restartNoticeSent = true; } @@ -304,7 +238,6 @@ public class WXUtil { //JSONObject wxBotInfo = (JSONObject) wxList.getJSONArray("result").get(0); //botWxid = wxBotInfo.getString("wxid"); // - //// WxReqDate wxReqDate = createWxReqData(WXReqType.SEND_TEXT_MESSAGE); JSONObject data = new JSONObject(); //if ((msgType.equals(1))) { @@ -475,18 +408,6 @@ public class WXUtil { } - @Data - @AllArgsConstructor - @NoArgsConstructor - public class SuperAdmin { - private String wxid; - private String name; - // 联盟ID - private String unionId; - private String appKey; - private String secretKey; - } - @Data @AllArgsConstructor @NoArgsConstructor diff --git a/src/main/java/cn/van/business/util/WxMessageConsumer.java b/src/main/java/cn/van/business/util/WxMessageConsumer.java index 3feddb4..24194e1 100644 --- a/src/main/java/cn/van/business/util/WxMessageConsumer.java +++ b/src/main/java/cn/van/business/util/WxMessageConsumer.java @@ -2,6 +2,7 @@ package cn.van.business.util; import cn.van.business.enums.FromType; +import cn.van.business.model.wx.SuperAdmin; import cn.van.business.model.wx.WxMessage; import com.alibaba.fastjson2.JSON; import org.slf4j.Logger; @@ -64,7 +65,7 @@ public class WxMessageConsumer { logger.info("消息内容:{}", innerData.getMsg()); } String fromWxid = innerData.getFromWxid(); - WXUtil.SuperAdmin superAdmin = getSuperAdmins(fromWxid).get(0); + SuperAdmin superAdmin = getSuperAdmins(fromWxid).get(0); if (Util.isEmpty(superAdmin)) { logger.info("不是超管消息,不处理"); return;