From d98b610bd0793dd5d29f623400a1d0a81bb55334 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 21 八月 2025 17:46:27 +0800
Subject: [PATCH] 优化

---
 server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java |  197 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 192 insertions(+), 5 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java b/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java
index 0d47a1b..440b45d 100644
--- a/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java
+++ b/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java
@@ -5,15 +5,21 @@
 import com.doumee.core.constants.Constants;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.dao.business.model.IdentityInfo;
+import com.doumee.dao.business.model.Orders;
+import com.doumee.dao.business.model.WithdrawalOrders;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -29,9 +35,16 @@
     private static String goodsOrderUrl = "pages/settlementDetails/settlementDetails?goodsOrderId=";
 
     private static String identityInfoUrl = "pages/mine/mine";
+
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
 
+    /**
+     * 淇℃伅璁よ瘉
+     * @param openid
+     * @param identityInfo
+     * @throws WxErrorException
+     */
     public  void  identityInfoMessage(String openid, IdentityInfo identityInfo) throws WxErrorException {
         RestTemplate restTemplate = new RestTemplate();
         String accessToken = WxMiniConfig.wxMaService.getAccessToken();
@@ -43,12 +56,12 @@
         //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
         wxMsgVO.setTouser(openid);
         //璁㈤槄娑堟伅妯℃澘id
-        wxMsgVO.setTemplate_id("4H9ztG4E9BxJLwMuYSZ6oiM7yb4KX7u7bYhkhYJP0-Y");
+        wxMsgVO.setTemplate_id("VJho7-lf-4_WZFfOzenDndgwNDIA0EvCiE6vqBnExpQ");
         Map<String, TemplateData> m = new HashMap<>(4);
-        m.put("thing11", new TemplateData(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO)?"鐢ㄥ伐璁よ瘉":Constants.equalsInteger(identityInfo.getType(),Constants.ONE)?"杩愯揣璁よ瘉":"渚涢璁よ瘉"));
-        m.put("phrase4", new TemplateData(Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.TWO)?"璁よ瘉閫氳繃":"璁よ瘉鏈�氳繃"));
-        m.put("date3", new TemplateData(DateUtil.getFomartDate(identityInfo.getAuditTime(),"yyyy-MM-dd HH:mm:ss")));
-        m.put("thing5", new TemplateData(identityInfo.getAuditRemark()));
+        m.put("thing2", new TemplateData(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO)?"鐢ㄥ伐璁よ瘉":Constants.equalsInteger(identityInfo.getType(),Constants.ONE)?"杩愯揣璁よ瘉":"渚涢璁よ瘉"));
+        m.put("phrase6", new TemplateData(Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.TWO)?"璁よ瘉閫氳繃":"璁よ瘉鏈�氳繃"));
+        m.put("time12", new TemplateData(DateUtil.getFomartDate(identityInfo.getAuditTime(),"yyyy-MM-dd HH:mm")));
+        m.put("thing14", new TemplateData(identityInfo.getAuditRemark()));
         wxMsgVO.setPage(identityInfoUrl);
         wxMsgVO.setData(m);
         ResponseEntity<String> responseEntity =
@@ -57,4 +70,178 @@
     }
 
 
+    /**
+     *
+     * @param openidList
+     * @param orders
+     * @param cancelType 鍙栨秷绫诲瀷锛�0=骞冲彴鍙栨秷锛�1=鍙戝崟鏂瑰彇娑堬紱1=鎺ュ崟鏂瑰彇娑�
+     * @throws WxErrorException
+     */
+    public  void  cancelMessage(List<String> openidList, Orders orders,Integer cancelType ) throws WxErrorException {
+        RestTemplate restTemplate = new RestTemplate();
+        String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鍙栨秷涓氬姟  -> accessToken锛歿}",accessToken);
+        //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+        //鎷兼帴鎺ㄩ�佺殑妯$増
+        WxMsgVO wxMsgVO = new WxMsgVO();
+        //璁㈤槄娑堟伅妯℃澘id
+        wxMsgVO.setTemplate_id("AA97cHjvlPiNO4viMkVe4JifCf9TD5b5Eb7s6El3VS8");
+        Map<String, TemplateData> m = new HashMap<>(5);
+        m.put("character_string3", new TemplateData(orders.getCode()));
+        m.put("thing2", new TemplateData(Constants.orderType.getName(orders.getType())));
+        m.put("thing1", new TemplateData(orders.getLocation() + (StringUtils.isNotBlank(orders.getLocationRemark())?orders.getLocationRemark():"")));
+        m.put("date8", new TemplateData(DateUtil.getFomartDate(orders.getCancelTime(),"yyyy-MM-dd HH:mm:ss")));
+        m.put("thing6", new TemplateData(Constants.equalsInteger(cancelType,Constants.ZERO)?"骞冲彴鍙栨秷":Constants.equalsInteger(cancelType,Constants.ONE)?"鍙戝崟鏂瑰彇娑�":"鎺ュ崟鏂瑰彇娑�"));
+        //TODO 璺宠浆鍦板潃
+        wxMsgVO.setPage("");
+        wxMsgVO.setData(m);
+        if(CollectionUtils.isNotEmpty(openidList)){
+            for (String openid:openidList) {
+                //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+                wxMsgVO.setTouser(openid);
+                ResponseEntity<String> responseEntity =
+                        restTemplate.postForEntity(url, wxMsgVO, String.class);
+                log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", JSONObject.toJSONString(responseEntity));
+            }
+        }else{
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", "鏃犱汉鍛樹俊鎭�");
+        }
+    }
+
+
+    public  void  acceptMessage(String openid, Orders orders,String memberName,String memberPhone) throws WxErrorException {
+        RestTemplate restTemplate = new RestTemplate();
+        String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鎺ュ崟涓氬姟  -> accessToken锛歿}",accessToken);
+        //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+        //鎷兼帴鎺ㄩ�佺殑妯$増
+        WxMsgVO wxMsgVO = new WxMsgVO();
+        wxMsgVO.setTouser(openid);
+        //璁㈤槄娑堟伅妯℃澘id
+        wxMsgVO.setTemplate_id("oVjOBLcHxIlGzOMJsdInmgI5CHGXh-UTvMzQqfFOnIg");
+        Map<String, TemplateData> m = new HashMap<>(4);
+        m.put("character_string3", new TemplateData(orders.getCode()));
+        m.put("thing1", new TemplateData(Constants.orderType.getName(orders.getType())));
+        m.put("thing15", new TemplateData(memberName));
+        m.put("phone_number8", new TemplateData(memberPhone));
+        //TODO 璺宠浆鍦板潃
+        wxMsgVO.setPage("");
+        wxMsgVO.setData(m);
+        //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+        ResponseEntity<String> responseEntity =
+                restTemplate.postForEntity(url, wxMsgVO, String.class);
+        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", JSONObject.toJSONString(responseEntity));
+    }
+
+
+    public  void  orderUpdMessage(String openid, Orders orders) throws WxErrorException {
+        RestTemplate restTemplate = new RestTemplate();
+        String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鍙樻洿閫氱煡  -> accessToken锛歿}",accessToken);
+        //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+        //鎷兼帴鎺ㄩ�佺殑妯$増
+        WxMsgVO wxMsgVO = new WxMsgVO();
+        wxMsgVO.setTouser(openid);
+        //璁㈤槄娑堟伅妯℃澘id
+        wxMsgVO.setTemplate_id("3YSC7gouRlSjHXz4CrWOGFzPmGwEBtFj4snwdfMvKHk");
+        Map<String, TemplateData> m = new HashMap<>(3);
+        m.put("character_string1", new TemplateData(orders.getCode()));
+        m.put("thing3", new TemplateData("鍙樻洿璁㈠崟鏃ユ湡"));
+        //鍙樻洿鍚庢棩鏈燂細07-23鑷�07-25
+        m.put("thing5", new TemplateData("鍙樻洿鍚庢棩鏈�:" +DateUtil.getFomartDate(orders.getStartDate(),"MM-dd") + "鑷�" +DateUtil.getFomartDate(orders.getEndDate(),"MM-dd")));
+        //TODO 璺宠浆鍦板潃
+        wxMsgVO.setPage("");
+        wxMsgVO.setData(m);
+        //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+        ResponseEntity<String> responseEntity =
+                restTemplate.postForEntity(url, wxMsgVO, String.class);
+        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙樻洿閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
+    }
+
+
+
+
+    public  void  withdrawalMessage(String openid, WithdrawalOrders withdrawalOrders) throws WxErrorException {
+        RestTemplate restTemplate = new RestTemplate();
+        String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鎻愮幇鎴愬姛閫氱煡  -> accessToken锛歿}",accessToken);
+        //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+        //鎷兼帴鎺ㄩ�佺殑妯$増
+        WxMsgVO wxMsgVO = new WxMsgVO();
+        wxMsgVO.setTouser(openid);
+        //璁㈤槄娑堟伅妯℃澘id
+        wxMsgVO.setTemplate_id("fNJy4545hcrH83bP3a1vszs7XEKWjXMsrfr2XCNsql0");
+        Map<String, TemplateData> m = new HashMap<>(4);
+        m.put("phrase2", new TemplateData("宸叉墦娆�"));
+        m.put("amount1", new TemplateData((new BigDecimal(withdrawalOrders.getAmount().toString()).divide(new BigDecimal("100"))).toString()));
+        m.put("time3", new TemplateData(DateUtil.getFomartDate(withdrawalOrders.getUpdateTime(),"yyyy.MM.dd HH.mm.ss")));
+        m.put("thing4", new TemplateData("鎵撴鎴愬姛锛岃娉ㄦ剰鏌ユ敹"));
+        //TODO 璺宠浆鍦板潃
+        wxMsgVO.setPage("");
+        wxMsgVO.setData(m);
+        //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+        ResponseEntity<String> responseEntity =
+                restTemplate.postForEntity(url, wxMsgVO, String.class);
+        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鎻愮幇鎴愬姛閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
+    }
+
+
+    public  void  revenueMessage(String openid, Orders orders) throws WxErrorException {
+        RestTemplate restTemplate = new RestTemplate();
+        String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鏀剁泭閫氱煡  -> accessToken锛歿}",accessToken);
+        //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+        //鎷兼帴鎺ㄩ�佺殑妯$増
+        WxMsgVO wxMsgVO = new WxMsgVO();
+        wxMsgVO.setTouser(openid);
+        //璁㈤槄娑堟伅妯℃澘id
+        wxMsgVO.setTemplate_id("tDpYImlrdv-0d3euTrHbYZ1cEZvjVHTNlqHvV0tpLHg");
+        Map<String, TemplateData> m = new HashMap<>(5);
+        m.put("character_string8", new TemplateData(orders.getCode()));
+        m.put("phrase3", new TemplateData("宸叉敮浠�"));
+        m.put("phrase4", new TemplateData("寰俊鏀粯"));
+        m.put("amount6", new TemplateData((new BigDecimal(orders.getReceiveAccount().toString()).divide(new BigDecimal("100")))+"鍏�"));
+        m.put("date7", new TemplateData(DateUtil.getFomartDate(new Date(),"yyyy-MM-dd HH:mm:ss")));
+        //TODO 璺宠浆鍦板潃
+        wxMsgVO.setPage("");
+        wxMsgVO.setData(m);
+        //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+        ResponseEntity<String> responseEntity =
+                restTemplate.postForEntity(url, wxMsgVO, String.class);
+        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鏀剁泭閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
+    }
+
+
+    public  void  autoDispatchMessage(String openid, Orders orders,BigDecimal distance) throws WxErrorException {
+        RestTemplate restTemplate = new RestTemplate();
+        String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鏈嶅姟娲惧崟  -> accessToken锛歿}",accessToken);
+        //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+        //鎷兼帴鎺ㄩ�佺殑妯$増
+        WxMsgVO wxMsgVO = new WxMsgVO();
+        wxMsgVO.setTouser(openid);
+        //璁㈤槄娑堟伅妯℃澘id
+        wxMsgVO.setTemplate_id("1h6JYpQf-mDKV4tYQ6gGDONfx1awqtm3-y9W8vUraT4");
+        Map<String, TemplateData> m = new HashMap<>(5);
+        m.put("thing2", new TemplateData(Constants.orderType.getName(orders.getType())));
+        m.put("thing3", new TemplateData(orders.getOrderContent()));
+        m.put("phrase4", new TemplateData("姝ゅ湴璺濈鎮�"+distance+"鍏噷"));
+        m.put("amount28", new TemplateData(orders.getEstimatedAccount().toString()));
+        m.put("thing12", new TemplateData("宸ュ崟灏嗕簬"+DateUtil.getFomartDate(orders.getStartDate(),"MM-dd")+"寮�濮�"));
+        //TODO 璺宠浆鍦板潃
+        wxMsgVO.setPage("");
+        wxMsgVO.setData(m);
+        //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+        ResponseEntity<String> responseEntity =
+                restTemplate.postForEntity(url, wxMsgVO, String.class);
+        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鏈嶅姟娲惧崟锛歿}", JSONObject.toJSONString(responseEntity));
+    }
+
+
 }

--
Gitblit v1.9.3