From 6b6dea66dc53ebee26ac5e6731d8e7f0bd6a9fe2 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期五, 22 八月 2025 20:57:59 +0800
Subject: [PATCH] 111

---
 server/services/src/main/resources/application-dev.yml                                          |    2 
 server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java                           |  418 +++++++++++++++-----------
 server/services/src/main/java/com/doumee/core/utils/DateUtil.java                               |    2 
 server/services/src/main/java/com/doumee/service/business/AliSmsService.java                    |  118 +++---
 server/services/src/main/resources/application-test.yml                                         |    2 
 server/services/src/main/java/com/doumee/core/constants/Constants.java                          |    2 
 server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java     |   21 
 server/services/src/main/resources/application-pro.yml                                          |   55 +-
 server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java           |   13 
 server/admin/src/main/java/com/doumee/api/business/PaymentCallback.java                         |    8 
 server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java           |  198 +++++++++++-
 server/web/src/main/resources/application.yml                                                   |    2 
 server/admin/src/main/resources/application.yml                                                 |    2 
 server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java |   80 ++--
 14 files changed, 580 insertions(+), 343 deletions(-)

diff --git a/server/admin/src/main/java/com/doumee/api/business/PaymentCallback.java b/server/admin/src/main/java/com/doumee/api/business/PaymentCallback.java
index 8539e1c..a1b873b 100644
--- a/server/admin/src/main/java/com/doumee/api/business/PaymentCallback.java
+++ b/server/admin/src/main/java/com/doumee/api/business/PaymentCallback.java
@@ -83,13 +83,7 @@
                     .body(body)
                     .build();
 
-            NotificationConfig config = /*new RSAAutoCertificateConfig.Builder()
-                    .merchantId(WxMiniConfig.wxProperties.getMchId())
-                    .privateKeyFromPath(WxMiniConfig.wxProperties.getPrivateKeyPath())
-                    .merchantSerialNumber(WxMiniConfig.wxProperties.getSerialNumer())
-                    .apiV3Key(WxMiniConfig.wxProperties.getApiV3Key())
-                    .build(); */
-            new RSAPublicKeyConfig.Builder()
+            NotificationConfig config = new RSAPublicKeyConfig.Builder()
                     .merchantId(WxMiniConfig.wxProperties.getMchId())
                     .privateKeyFromPath(WxMiniConfig.wxProperties.getPrivateKeyPath())
                     .publicKeyFromPath(WxMiniConfig.wxProperties.getPubKeyPath())
diff --git a/server/admin/src/main/resources/application.yml b/server/admin/src/main/resources/application.yml
index 1e003e1..d432216 100644
--- a/server/admin/src/main/resources/application.yml
+++ b/server/admin/src/main/resources/application.yml
@@ -12,7 +12,7 @@
 
 spring:
   profiles:
-    active: test
+    active: pro
   # JSON杩斿洖閰嶇疆
   jackson:
     # 榛樿鏃跺尯
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 440b45d..f612666 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
@@ -32,9 +32,17 @@
 @Slf4j
 public class SendWxMessage {
 
-    private static String goodsOrderUrl = "pages/settlementDetails/settlementDetails?goodsOrderId=";
 
-    private static String identityInfoUrl = "pages/mine/mine";
+    private static String mineUrl = "/pages/mine/mine";
+
+    private static String orderDetail = "pages/order-details/order-details?id={id}";// 鐢ㄥ伐
+
+    private static String orderDetailFreight = "pages/freight-order/freight-order?id={id}";// 璐ц繍
+
+    private static String orderDetailFood = "pages/order-food/order-food?id={id}";// 璁㈤
+
+    private static String balanceUrl = "pages/balance-details/balance-details";// 浣欓鏄庣粏
+
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
@@ -45,202 +53,256 @@
      * @param identityInfo
      * @throws WxErrorException
      */
-    public  void  identityInfoMessage(String openid, IdentityInfo identityInfo) 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();
-        //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
-        wxMsgVO.setTouser(openid);
-        //璁㈤槄娑堟伅妯℃澘id
-        wxMsgVO.setTemplate_id("VJho7-lf-4_WZFfOzenDndgwNDIA0EvCiE6vqBnExpQ");
-        Map<String, TemplateData> m = new HashMap<>(4);
-        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 =
-                restTemplate.postForEntity(url, wxMsgVO, String.class);
-        log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁よ瘉淇℃伅锛歿}", JSONObject.toJSONString(responseEntity));
+    public  void  identityInfoMessage(String openid, IdentityInfo identityInfo){
+        try{
+            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();
+            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+            wxMsgVO.setTouser(openid);
+            //璁㈤槄娑堟伅妯℃澘id
+            wxMsgVO.setTemplate_id("VJho7-lf-4_WZFfOzenDndgwNDIA0EvCiE6vqBnExpQ");
+            Map<String, TemplateData> m = new HashMap<>(4);
+            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(mineUrl);
+            wxMsgVO.setData(m);
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁よ瘉淇℃伅锛歿}", JSONObject.toJSONString(wxMsgVO));
+            ResponseEntity<String> responseEntity =
+                    restTemplate.postForEntity(url, wxMsgVO, String.class);
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁よ瘉淇℃伅锛歿}", JSONObject.toJSONString(responseEntity));
+        }catch (WxErrorException wxErrorException){
+
+        }
+
     }
 
 
     /**
-     *
+     * 璁㈠崟鍙栨秷涓氬姟閫氱煡
      * @param openidList
      * @param orders
      * @param cancelType 鍙栨秷绫诲瀷锛�0=骞冲彴鍙栨秷锛�1=鍙戝崟鏂瑰彇娑堬紱1=鎺ュ崟鏂瑰彇娑�
      * @throws WxErrorException
      */
-    public  void  cancelMessage(List<String> openidList, Orders orders,Integer cancelType ) throws WxErrorException {
+    public  void  cancelMessage(List<String> openidList, Orders orders,Integer cancelType ){
         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));
+        try{
+            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)?"鍙戝崟鏂瑰彇娑�":"鎺ュ崟鏂瑰彇娑�"));
+            String pageUrl = Constants.equalsInteger(orders.getType(),Constants.orderType.hyd.getKey())?orderDetailFreight:
+                    Constants.equalsInteger(orders.getType(),Constants.orderType.scd.getKey())?orderDetailFood:orderDetail;
+            pageUrl.replace("{id}",orders.getId().toString());
+            wxMsgVO.setPage(pageUrl);
+            wxMsgVO.setData(m);
+            if(CollectionUtils.isNotEmpty(openidList)){
+                for (String openid:openidList) {
+                    //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+                    wxMsgVO.setTouser(openid);
+                    log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", JSONObject.toJSONString(wxMsgVO));
+                    ResponseEntity<String> responseEntity =
+                            restTemplate.postForEntity(url, wxMsgVO, String.class);
+                    log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", JSONObject.toJSONString(responseEntity));
+                }
+            }else{
+                log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", "鏃犱汉鍛樹俊鎭�");
             }
-        }else{
-            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", "鏃犱汉鍛樹俊鎭�");
+        }catch (WxErrorException wxErrorException){
+
+        }
+
+    }
+
+
+    /**
+     * 鎺ュ崟閫氱煡
+     * @param openid
+     * @param orders
+     * @param memberName
+     * @param memberPhone
+     * @throws WxErrorException
+     */
+    public  void  acceptMessage(String openid, Orders orders,String memberName,String memberPhone){
+        RestTemplate restTemplate = new RestTemplate();
+        try{
+            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));
+            String pageUrl = Constants.equalsInteger(orders.getType(),Constants.orderType.hyd.getKey())?orderDetailFreight:
+                    Constants.equalsInteger(orders.getType(),Constants.orderType.scd.getKey())?orderDetailFood:orderDetail;
+            pageUrl.replace("{id}",orders.getId().toString());
+            wxMsgVO.setPage(pageUrl);
+            wxMsgVO.setData(m);
+            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鎺ュ崟閫氱煡锛歿}", JSONObject.toJSONString(wxMsgVO));
+            ResponseEntity<String> responseEntity =
+                    restTemplate.postForEntity(url, wxMsgVO, String.class);
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鎺ュ崟閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
+        }catch (WxErrorException wxErrorException){
+
+        }
+
+    }
+
+
+    public  void  orderUpdMessage(String openid, Orders orders){
+        RestTemplate restTemplate = new RestTemplate();
+        try{
+            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")));
+            String pageUrl = Constants.equalsInteger(orders.getType(),Constants.orderType.hyd.getKey())?orderDetailFreight:
+                    Constants.equalsInteger(orders.getType(),Constants.orderType.scd.getKey())?orderDetailFood:orderDetail;
+            pageUrl.replace("{id}",orders.getId().toString());
+            wxMsgVO.setPage(pageUrl);
+            wxMsgVO.setData(m);
+            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙樻洿閫氱煡锛歿}", JSONObject.toJSONString(wxMsgVO));
+            ResponseEntity<String> responseEntity =
+                    restTemplate.postForEntity(url, wxMsgVO, String.class);
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙樻洿閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
+        }catch (WxErrorException wxErrorException){
+
+        }
+
+    }
+
+
+
+
+    public  void  withdrawalMessage(String openid, WithdrawalOrders withdrawalOrders){
+        try{
+            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("鎵撴鎴愬姛锛岃娉ㄦ剰鏌ユ敹"));
+            wxMsgVO.setPage(balanceUrl);
+            wxMsgVO.setData(m);
+            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鎻愮幇鎴愬姛閫氱煡锛歿}", JSONObject.toJSONString(wxMsgVO));
+            ResponseEntity<String> responseEntity =
+                    restTemplate.postForEntity(url, wxMsgVO, String.class);
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鎻愮幇鎴愬姛閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
+        }catch (WxErrorException wxErrorException){
+
         }
     }
 
 
-    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  revenueMessage(String openid, Orders orders){
+        try{
+            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")));
+            wxMsgVO.setPage(balanceUrl);
+            wxMsgVO.setData(m);
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鏀剁泭閫氱煡锛歿}", JSONObject.toJSONString(wxMsgVO));
+            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+            ResponseEntity<String> responseEntity =
+                    restTemplate.postForEntity(url, wxMsgVO, String.class);
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鏀剁泭閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
+        }catch (WxErrorException wxErrorException){
+
+        }
     }
 
 
-    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  autoDispatchMessage(String openid, Orders orders,double distance){
+        try{
+            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")+"寮�濮�"));
+            String pageUrl = Constants.equalsInteger(orders.getType(),Constants.orderType.hyd.getKey())?orderDetailFreight:
+                    Constants.equalsInteger(orders.getType(),Constants.orderType.scd.getKey())?orderDetailFood:orderDetail;
+            pageUrl.replace("{id}",orders.getId().toString());
+            wxMsgVO.setPage(pageUrl);
+            wxMsgVO.setData(m);
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鏈嶅姟娲惧崟锛歿}", JSONObject.toJSONString(wxMsgVO));
+            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+            ResponseEntity<String> responseEntity =
+                    restTemplate.postForEntity(url, wxMsgVO, String.class);
+            log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鏈嶅姟娲惧崟锛歿}", JSONObject.toJSONString(responseEntity));
+        }catch (WxErrorException wxErrorException){
 
+        }
 
-
-
-    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));
     }
 
 
diff --git a/server/services/src/main/java/com/doumee/core/constants/Constants.java b/server/services/src/main/java/com/doumee/core/constants/Constants.java
index 82cded4..ea8fd78 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -647,7 +647,7 @@
 
 
     public  enum smsContent {
-        accept(0, "SMS_491325122","鎮ㄧ殑{order}璁㈠崟宸茶鎺ュ崟锛佹椂闂达細{time1}-{time2}锛屾帴鍗曟柟锛歿name}銆�"),
+        accept(0, "SMS_491325122","鎮ㄧ殑{order}璁㈠崟宸茶鎺ュ崟锛佹椂闂达細{time1}-{time2}锛屽彲杩涘叆灏忕▼搴忚仈绯绘帴鍗曟柟銆�"),
         receiveCancel(1, "SMS_491055243","鎮ㄧ殑{order}璁㈠崟锛屾椂闂达細{time1}-{time2}锛屽凡琚帴鍗曟柟鍙栨秷锛岃鍗曞凡閲嶆柊杩涘叆鎺ュ崟澶у巺銆�"),
         platformCancel(2, "SMS_491375152","鎮ㄧ殑{order}璁㈠崟锛屾椂闂达細{time1}-{time2},宸茬敱骞冲彴鍙栨秷銆傚鏈夌枒闂鑱旂郴瀹㈡湇銆�"),
         agreeUpd(3, "SMS_491190259","鎺ュ崟鏂瑰凡鍚屾剰鎮ㄥ皢{order}鐨勮鍗曟椂闂翠慨鏀逛负{time1}鑷硔time2}銆�"),
diff --git a/server/services/src/main/java/com/doumee/core/utils/DateUtil.java b/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
index 997bd6a..02efdb3 100644
--- a/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/services/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -2057,7 +2057,7 @@
      */
     public static String getCurrDateTime() {
         Timestamp date = new Timestamp(System.currentTimeMillis());
-        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         return formatter.format(date);
     }
     public static String getCurrDateTimeShort() {
diff --git a/server/services/src/main/java/com/doumee/service/business/AliSmsService.java b/server/services/src/main/java/com/doumee/service/business/AliSmsService.java
index 71625fb..255d7da 100644
--- a/server/services/src/main/java/com/doumee/service/business/AliSmsService.java
+++ b/server/services/src/main/java/com/doumee/service/business/AliSmsService.java
@@ -46,72 +46,74 @@
     private final static String SING_NAME = "姗欐澶╀笅绉戞妧";
 
 
-    public void sendSms(int type, String phone, Orders orders, String receiveName, String businessPhone, BigDecimal distance, IdentityInfo identityInfo,CategoryMapper categoryMapper){
-        Constants.smsContent smsContent = Constants.smsContent.getSmsContent(type);
-        Map<String,Object> tempParam = new HashMap<>();
-        if(smsContent.getName().indexOf("time1")>=Constants.ZERO){
-            tempParam.put("time1", DateUtil.formatDate(orders.getStartDate(),"MM-dd"));
-        }
-        if(smsContent.getName().indexOf("time2")>=Constants.ZERO){
-            tempParam.put("time2", DateUtil.formatDate(orders.getEndDate(),"MM-dd"));
-        }
-        if(smsContent.getName().indexOf("name")>=Constants.ZERO){
-            tempParam.put("name", receiveName);
-        }
-        if(smsContent.getName().indexOf("money")>=Constants.ZERO){
-            tempParam.put("money", new BigDecimal(orders.getReceiveAccount().toString()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP)+"鍏�");
-        }
-        if(smsContent.getName().indexOf("distance")>=Constants.ZERO){
-            tempParam.put("distance", distance +"km");
-        }
-        //璁よ瘉鐭俊 鐗规畩澶勭悊
-        if(Constants.equalsInteger(smsContent.getKey(),Constants.smsContent.authentication.getKey())){
-            //璁よ瘉绫诲瀷
-            if(smsContent.getName().indexOf("authentication")>=Constants.ZERO){
-                tempParam.put("authentication", Constants.equalsInteger(identityInfo.getAuthType(),Constants.ZERO)?"涓汉":identityInfo.getCompanyName());
+    public void businessSendSms(int type, String phone, Orders orders, BigDecimal distance,
+                        IdentityInfo identityInfo,CategoryMapper categoryMapper){
+        try{
+            Constants.smsContent smsContent = Constants.smsContent.getSmsContent(type);
+            Map<String,Object> tempParam = new HashMap<>();
+            if(smsContent.getName().indexOf("time1")>=Constants.ZERO){
+                tempParam.put("time1", DateUtil.formatDate(orders.getStartDate(),"MM-dd"));
             }
-            if(smsContent.getName().indexOf("order")>=Constants.ZERO){
-                tempParam.put("order", Constants.orderType.getName(identityInfo.getType()).replace("鍗�",""));
+            if(smsContent.getName().indexOf("time2")>=Constants.ZERO){
+                tempParam.put("time2", DateUtil.formatDate(orders.getEndDate(),"MM-dd"));
             }
-            if(smsContent.getName().indexOf("status")>=Constants.ZERO){
-                tempParam.put("status", Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.TWO)?"宸查�氳繃":"鏈�氳繃");
+            if(smsContent.getName().indexOf("money")>=Constants.ZERO){
+                tempParam.put("money", new BigDecimal(orders.getReceiveAccount().toString()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP)+"鍏�");
             }
-        }else{
-            if(smsContent.getName().indexOf("order")>=Constants.ZERO){
-                String order = "";
-                //鏌ヨ璁㈠崟鐨勭被鍨嬩俊鎭�
-                if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-                    order = Constants.workType.getName(orders.getWorkType());
-                    Category category = categoryMapper.selectById(orders.getCategoryId());
-                    if(Objects.nonNull(category)){
-                        order = category.getName() + order;
-                    }
-                }else if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-                    order = "杩愯緭";
-                    Category category = categoryMapper.selectById(orders.getTransportTypeId());
-                    if(Objects.nonNull(category)){
-                        order = category.getName() + order;
-                    }
-                }else{
-                    List<CateringDTO> cateringDTOList = JSONArray.parseArray(orders.getWayInfo(),CateringDTO.class);
-                    if(CollectionUtils.isNotEmpty(cateringDTOList)){
-                        for (CateringDTO cateringDTO:cateringDTOList) {
-                            if(StringUtils.isBlank(order)){
-                                order = cateringDTO.getName();
-                            }else{
-                                order = order + "/" +cateringDTO.getName();
+            if(smsContent.getName().indexOf("distance")>=Constants.ZERO){
+                tempParam.put("distance", distance +"km");
+            }
+            //璁よ瘉鐭俊 鐗规畩澶勭悊
+            if(Constants.equalsInteger(smsContent.getKey(),Constants.smsContent.authentication.getKey())){
+                //璁よ瘉绫诲瀷
+                if(smsContent.getName().indexOf("authentication")>=Constants.ZERO){
+                    tempParam.put("authentication", Constants.equalsInteger(identityInfo.getAuthType(),Constants.ZERO)?"涓汉":identityInfo.getCompanyName());
+                }
+                if(smsContent.getName().indexOf("order")>=Constants.ZERO){
+                    tempParam.put("oeder", Constants.orderType.getName(identityInfo.getType()).replace("鍗�",""));
+                }
+                if(smsContent.getName().indexOf("status")>=Constants.ZERO){
+                    tempParam.put("status", Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.TWO)?"宸查�氳繃":"鏈�氳繃");
+                }
+            }else{
+                if(smsContent.getName().indexOf("order")>=Constants.ZERO){
+                    String order = "";
+                    //鏌ヨ璁㈠崟鐨勭被鍨嬩俊鎭�
+                    if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
+                        order = Constants.workType.getName(orders.getWorkType());
+                        Category category = categoryMapper.selectById(orders.getCategoryId());
+                        if(Objects.nonNull(category)){
+                            order = category.getName() + order;
+                        }
+                    }else if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
+                        order = "杩愯緭";
+                        Category category = categoryMapper.selectById(orders.getTransportTypeId());
+                        if(Objects.nonNull(category)){
+                            order = category.getName() + order;
+                        }
+                    }else{
+                        List<CateringDTO> cateringDTOList = JSONArray.parseArray(orders.getWayInfo(),CateringDTO.class);
+                        if(CollectionUtils.isNotEmpty(cateringDTOList)){
+                            for (CateringDTO cateringDTO:cateringDTOList) {
+                                if(StringUtils.isBlank(order)){
+                                    order = cateringDTO.getName();
+                                }else{
+                                    order = order + "/" +cateringDTO.getName();
+                                }
                             }
                         }
                     }
+                    tempParam.put("order",order);
                 }
-                tempParam.put("order",order);
             }
+            if(smsContent.getName().indexOf("distance")>=Constants.ZERO){
+                tempParam.put("distance", distance +"km");
+            }
+            AliSmsService.sendSms(phone,smsContent.getCode(), JSONObject.toJSONString(tempParam));
+        }catch (Exception e){
+            log.error("鐭俊鍙戦�佸け璐");
         }
 
-        if(smsContent.getName().indexOf("authentication")>=Constants.ZERO){
-            tempParam.put("distance", distance +"km");
-        }
-        AliSmsService.sendSms(phone,smsContent.getCode(), JSONObject.toJSONString(tempParam));
     }
 
 
@@ -166,10 +168,10 @@
             //璇锋眰澶辫触杩欓噷浼氭姏ClientException寮傚父
             SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
             if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
-//                logger.info(phone + "-" + templateCode + "-" + templateParam + " >>> " + JSON.toJSONString(sendSmsResponse));
+                log.info("鐭俊鍙戦�佸唴瀹癸細"+phone + "-" + templateCode + "-" + templateParam + " >>> " + JSON.toJSONString(sendSmsResponse));
                 return true;
             } else {
-//                logger.error(phone + "-" + templateCode + "-" + templateParam + " >>> " + JSON.toJSONString(sendSmsResponse));
+                log.error("鐭俊鍙戦�佸唴瀹癸細"+phone + "-" + templateCode + "-" + templateParam + " >>> " + JSON.toJSONString(sendSmsResponse));
             }
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java
index 5345ef6..298a4fd 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java
@@ -11,12 +11,14 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.CategoryMapper;
 import com.doumee.dao.business.IdentityInfoMapper;
 import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.model.IdentityInfo;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.dto.AuditDTO;
 import com.doumee.dao.system.model.SystemUser;
+import com.doumee.service.business.AliSmsService;
 import com.doumee.service.business.IdentityInfoService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -51,7 +53,11 @@
     @Autowired
     private MemberMapper memberMapper;
     @Autowired
+    private AliSmsService aliSmsService;
+    @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private CategoryMapper categoryMapper;
 
     @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
@@ -474,16 +480,15 @@
                 .eq(Member::getId,identityInfo.getMemberId())
         );
 
-        try{
-            //鍙戦�佸井淇¢�氱煡
-            if(StringUtils.isNotBlank(member.getOpenid())){
-                sendWxMessage.identityInfoMessage(member.getOpenid(),identityInfo);
-            }
-        }catch (WxErrorException wxErrorException){
-
+        //鍙戦�佸井淇¢�氱煡
+        if(StringUtils.isNotBlank(member.getOpenid())){
+            sendWxMessage.identityInfoMessage(member.getOpenid(),identityInfo);
         }
 
-
+        //鐭俊閫氱煡
+        aliSmsService.businessSendSms(Constants.smsContent.authentication.getKey(),
+                member.getTelephone(),null,null,
+                identityInfo,categoryMapper);
 
     }
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index b6f728c..1f9af81 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -399,18 +399,19 @@
         userCenterVO.setTaskingTotal(Constants.ZERO);
         userCenterVO.setDoneTotal(Constants.ZERO);
         userCenterVO.setReceiveTotal(Constants.ZERO);
-        List<Orders> releaseOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO).eq(Orders::getReleaseMemberId,member.getId()));
+        List<Orders> releaseOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO)
+                .eq(Orders::getReleaseMemberId,member.getId()));
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(releaseOrders)){
             userCenterVO.setReleaseTaskTotal(releaseOrders.size());
-            userCenterVO.setWaitCommentTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.waitPay.getKey())).collect(Collectors.toList()).size());
-            userCenterVO.setDoingTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.accept.getKey())).collect(Collectors.toList()).size());
-            userCenterVO.setWaitCommentTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.doing.getKey())&&Constants.equalsInteger(i.getCommentStatus(),Constants.ZERO)).collect(Collectors.toList()).size());
+            userCenterVO.setWaitCommentTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.done.getKey())&&Constants.equalsInteger(i.getCommentStatus(),Constants.ZERO)).collect(Collectors.toList()).size());
+            userCenterVO.setDoingTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.doing.getKey())).collect(Collectors.toList()).size());
+            userCenterVO.setWaitReceiveTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.wait.getKey())).collect(Collectors.toList()).size());
         }
         List<Orders> acceptOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO).eq(Orders::getAcceptMemberId,member.getId()));
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(acceptOrders)){
             userCenterVO.setReceiveTotal(acceptOrders.size());
-            userCenterVO.setTaskingTotal(acceptOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.accept.getKey())).collect(Collectors.toList()).size());
-            userCenterVO.setDoneTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.doing.getKey())).collect(Collectors.toList()).size());
+            userCenterVO.setTaskingTotal(acceptOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.doing.getKey())).collect(Collectors.toList()).size());
+            userCenterVO.setDoneTotal(acceptOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.done.getKey())).collect(Collectors.toList()).size());
         }
         member.setUserCenterVO(userCenterVO);
         return member;
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
index 985805d..0041ca0 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.wx.SendWxMessage;
 import com.doumee.config.wx.WxMiniConfig;
 import com.doumee.config.wx.WxMiniUtilService;
 import com.doumee.core.constants.Constants;
@@ -18,6 +19,7 @@
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.dto.*;
 import com.doumee.dao.vo.OrderReleaseVO;
+import com.doumee.service.business.AliSmsService;
 import com.doumee.service.business.OrdersService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -45,6 +47,7 @@
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 /**
  * 璁㈠崟淇℃伅璁板綍Service瀹炵幇
@@ -87,6 +90,12 @@
     @Autowired
     private WxMiniUtilService wxMiniUtilService;
 
+    @Autowired
+    private SendWxMessage sendWxMessage;
+
+    @Autowired
+    private AliSmsService aliSmsService;
+
     @Resource
     private RedisTemplate<String,Object> redisTemplate;
 
@@ -96,6 +105,11 @@
         OrderReleaseVO orderReleaseVO = new OrderReleaseVO();
         Object objects = null;
         this.initVerification(orders);
+        Member member = memberMapper.selectById(orders.getMember().getId());
+        if(Objects.isNull(member)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛淇℃伅寮傚父");
+        }
+
         orders.setCreateTime(new Date());
         orders.setUpdateTime(orders.getUpdateTime());
         orders.setPayStatus(Constants.ZERO);
@@ -120,16 +134,19 @@
         }
         //鐢ㄩ璁㈠崟
         if(Constants.equalsInteger(orders.getType(),Constants.TWO)){
+            orders.setPayAccount(orders.getEstimatedAccount());
+            Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue());
+            orders.setReceiveAccount(orders.getPayAccount() - tcje);
             orders.setStatus(Constants.ordersStatus.waitPay.getKey());
             orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
-            orders.setPayAccount(orders.getEstimatedAccount());
             //鍞よ捣鏀粯涓氬姟
-            objects = this.getWxPayResponse(orders,orders.getMember().getOpenid());
+            objects = this.getWxPayResponse(orders,member.getOpenid());
             orderReleaseVO.setObject(objects);
         }else{
             orders.setStatus(Constants.ordersStatus.wait.getKey());
         }
         ordersMapper.insert(orders);
+
         orderReleaseVO.setId(orders.getId());
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(orders.getMultifileList())){
             List<Multifile> multifileList = orders.getMultifileList();
@@ -147,7 +164,7 @@
             multifileMapper.insert(multifileList);
         }
         //鏇存柊鐢ㄦ埛鍙戝崟閲�
-        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" receive_num =  ( receive_num + 1 )").eq(Member::getId,orders.getMember().getId()));
+        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" PUBLISH_NUM =  ( ifnull(PUBLISH_NUM,0) + 1 )").eq(Member::getId,orders.getMember().getId()));
 
         //鍒涘缓鎿嶄綔鏃ュ織
         Constants.OrdersLog ordersLog = Constants.OrdersLog.UPLOAD;
@@ -654,18 +671,28 @@
                 .set(Orders::getStatus,Constants.ordersStatus.accept.getKey())
         );
 
-
-
         //鏇存柊鎺ュ崟閲�
-        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" publish_num = (publish_num + 1 )").eq(Member::getId,member.getId()));
+        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" RECEIVE_NUM = (ifnull(RECEIVE_NUM,0) + 1 )").eq(Member::getId,member.getId()));
 
         //鍒涘缓鎿嶄綔鏃ュ織
         Constants.OrdersLog ordersLog = Constants.OrdersLog.RECEIVE;
         this.saveOrderLog(orders,ordersLog,
                 ordersLog.getInfo(),member.getId(),null);
 
-        //TODO 寰俊鍏紬鍙锋彁閱� 宸叉帴鍗曟彁閱�
+        IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
+                .eq(IdentityInfo::getMemberId,member.getId())
+                .eq(IdentityInfo::getType,orders.getType())
+                .eq(IdentityInfo::getAuditStatus,Constants.TWO)
+                .last("limit 1")
+        );
 
+        if(org.apache.commons.lang3.StringUtils.isNotBlank(member.getOpenid())&&Objects.nonNull(wokerIdentityInfo)){
+            //鍙戦�佸井淇¢�氱煡
+            sendWxMessage.acceptMessage(member.getOpenid(),orders,wokerIdentityInfo.getLinkName(),wokerIdentityInfo.getTelephone());
+        }
+        //鐭俊閫氱煡
+        aliSmsService.businessSendSms(Constants.smsContent.accept.getKey(),member.getTelephone(),orders,null,
+                wokerIdentityInfo,categoryMapper);
 
 
     }
@@ -747,7 +774,23 @@
         this.saveOrderLog(model,ordersLog,
                 ordersLog.getInfo(),orders.getMember().getId(),null);
 
-        //TODO 閫氱煡鎺ュ崟浜� 璁㈠崟鍙戠敓鍙樻洿
+        //閫氱煡鎺ュ崟浜� 璁㈠崟鍙戠敓鍙樻洿
+        Member member = memberMapper.selectById(orders.getAcceptMemberId());
+        //鍙戦�佸井淇¢�氱煡
+        sendWxMessage.orderUpdMessage(member.getOpenid(),orders);
+
+        IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
+                .eq(IdentityInfo::getMemberId,member.getId())
+                .eq(IdentityInfo::getType,orders.getType())
+                .eq(IdentityInfo::getAuditStatus,Constants.TWO)
+                .last("limit 1")
+        );
+        if(Objects.nonNull(wokerIdentityInfo)){
+            //鐭俊閫氱煡
+            aliSmsService.businessSendSms(Constants.smsContent.orderUpd.getKey(),wokerIdentityInfo.getTelephone(),orders,null,
+                    null,categoryMapper);
+        }
+
     }
 
 
@@ -827,8 +870,12 @@
             Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_DISAGREE;
             this.saveOrderLog(orders,ordersLog,
                     ordersLog.getInfo(),confirmUpdOrderDTO.getMember().getId(),null);
-            //TODO 鍙戦�佷笉鍚屾剰鍙樻洿閫氱煡
         }
+        //鐭俊閫氱煡
+        aliSmsService.businessSendSms(!Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)?
+                        Constants.smsContent.agreeUpd.getKey():Constants.smsContent.disAgreeUpd.getKey()
+                ,orders.getLinkPhone(),null,null,
+                null,categoryMapper);
     }
 
 
@@ -845,6 +892,7 @@
         }else{
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
         }
+
 
     }
 
@@ -950,8 +998,6 @@
                     .set(Orders::getCancelType,Constants.ONE)
                     .eq(Orders::getId,orders.getId())
             );
-            //TODO 鍙戝崟鏂瑰彇娑堣鍗曢�氱煡鎺ュ崟鏂�
-
             //鍑忓皯鎺ュ崟閲�
             memberMapper.update(new UpdateWrapper<Member>().lambda().setSql("receive_num = (receive_num - 1) ").eq(Member::getId,orders.getAcceptMemberId()));
         }
@@ -963,8 +1009,26 @@
         this.saveOrderLog(orders,ordersLog,
                 ordersLog.getInfo(),member.getId(),null);
 
+        List<Member> members = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+                .and(i->i.eq(Member::getId,orders.getReleaseMemberId()).or().eq(Member::getId,orders.getAcceptMemberId()))
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(members)){
+            List<String> openIdList = members.stream().map(i->i.getOpenid()).collect(Collectors.toList());
+            //鍙戦�佸井淇¢�氱煡
+            sendWxMessage.cancelMessage(openIdList,orders,Constants.ONE);
+        }
 
-
+        IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
+                .eq(IdentityInfo::getMemberId,orders.getAcceptMemberId())
+                .eq(IdentityInfo::getType,orders.getType())
+                .eq(IdentityInfo::getAuditStatus,Constants.TWO)
+                .last("limit 1")
+        );
+        if(Objects.nonNull(wokerIdentityInfo)){
+            //鐭俊閫氱煡
+            aliSmsService.businessSendSms(Constants.smsContent.releaseCancel.getKey(),wokerIdentityInfo.getTelephone(),orders,null,
+                    null,categoryMapper);
+        }
     }
 
 
@@ -1011,8 +1075,18 @@
         this.saveOrderLog(orders,ordersLog,
                 ordersLog.getInfo(),member.getId(),null);
 
-        //TODO 鎺ュ崟鏂瑰彇娑堣鍗曢�氱煡
 
+        List<Member> members = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+                .and(i->i.eq(Member::getId,orders.getReleaseMemberId()).or().eq(Member::getId,orders.getAcceptMemberId()))
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(members)){
+            List<String> openIdList = members.stream().map(i->i.getOpenid()).collect(Collectors.toList());
+            //鍙戦�佸井淇¢�氱煡
+            sendWxMessage.cancelMessage(openIdList,orders,Constants.TWO);
+        }
+        //鐭俊閫氱煡
+        aliSmsService.businessSendSms(Constants.smsContent.receiveCancel.getKey(),member.getTelephone(),orders,null,
+                null,categoryMapper);
     }
 
 
@@ -1039,6 +1113,11 @@
         if(!Constants.equalsInteger(orders.getReleaseMemberId(),doneOrderDTO.getMember().getId())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
         }
+        Member payMember = memberMapper.selectById(doneOrderDTO.getMember().getId());
+        if(Objects.isNull(payMember)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛淇℃伅寮傚父");
+        }
+
         OrderReleaseVO orderReleaseVO = new OrderReleaseVO();
         orderReleaseVO.setId(orders.getId());
         Object object = null;
@@ -1051,7 +1130,7 @@
             orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
             ordersMapper.updateById(orders);
             //鍞よ捣鏀粯涓氬姟
-            object = this.getWxPayResponse(orders,doneOrderDTO.getMember().getOpenid());
+            object = this.getWxPayResponse(orders,payMember.getOpenid());
             orderReleaseVO.setObject(object);
         }else{
             orders.setStatus(Constants.ordersStatus.done.getKey());
@@ -1084,6 +1163,22 @@
             Constants.OrdersLog ordersLog = Constants.OrdersLog.DONE;
             this.saveOrderLog(orders,ordersLog,
                     ordersLog.getInfo(),doneOrderDTO.getMember().getId(),null);
+
+            sendWxMessage.revenueMessage(member.getOpenid(),orders);
+
+            //鐭俊閫氱煡鎺ュ崟鏂�
+            if(Objects.nonNull(orders.getAcceptMemberId())){
+                IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
+                        .eq(IdentityInfo::getMemberId,orders.getAcceptMemberId())
+                        .eq(IdentityInfo::getType,orders.getType())
+                        .eq(IdentityInfo::getAuditStatus,Constants.TWO)
+                        .last("limit 1")
+                );
+                if(Objects.nonNull(wokerIdentityInfo)){
+                    aliSmsService.businessSendSms(Constants.smsContent.pay.getKey(),wokerIdentityInfo.getTelephone(),orders,null,
+                            null,categoryMapper);
+                }
+            }
         }
         return orderReleaseVO;
     }
@@ -1174,6 +1269,32 @@
         Constants.OrdersLog ordersLog = Constants.OrdersLog.SYSTEM_CANCEL;
         this.saveOrderLog(orders,ordersLog,
                 ordersLog.getInfo(),null,loginUserInfo.getId());
+
+        List<Member> members = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+                        .and(i->i.eq(Member::getId,orders.getReleaseMemberId()).or().eq(Member::getId,orders.getAcceptMemberId()))
+                );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(members)){
+            List<String> openIdList = members.stream().map(i->i.getOpenid()).collect(Collectors.toList());
+            //鍙戦�佸井淇¢�氱煡
+            sendWxMessage.cancelMessage(openIdList,orders,Constants.ZERO);
+        }
+        //鐭俊閫氱煡鍙戝崟鏂�
+        aliSmsService.businessSendSms(Constants.smsContent.platformCancel.getKey(),orders.getLinkPhone(),orders,null,
+                null,categoryMapper);
+        //鐭俊閫氱煡鎺ュ崟鏂�
+        if(Objects.nonNull(orders.getAcceptMemberId())){
+            IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
+                    .eq(IdentityInfo::getMemberId,orders.getAcceptMemberId())
+                    .eq(IdentityInfo::getType,orders.getType())
+                    .eq(IdentityInfo::getAuditStatus,Constants.TWO)
+                    .last("limit 1")
+            );
+            if(Objects.nonNull(wokerIdentityInfo)){
+                aliSmsService.businessSendSms(Constants.smsContent.platformCancel2.getKey(),wokerIdentityInfo.getTelephone(),orders,null,
+                        null,categoryMapper);
+            }
+        }
+
     }
 
 
@@ -1209,9 +1330,10 @@
                 .eq(Orders::getId,orders.getId())
         );
         memberMapper.update(new UpdateWrapper<Member>().lambda()
-                .setSql(" score =  ( total_score +" + commentDTO.getLevel() + " ) / (score_order_num + 1 )")
-                .setSql(" total_score =  total_score +" + commentDTO.getLevel())
-                .setSql(" score_order_num = score_order_num + 1 " ).eq(Member::getId,orders.getAcceptMemberId())
+                .setSql(" score =  ( ifnull(total_score,0) +" + commentDTO.getLevel() + " ) / (ifnull(score_order_num,0) + 1 )")
+                .setSql(" total_score =  ifnull(total_score,0) +" + commentDTO.getLevel())
+                .setSql(" score_order_num = ifnull(score_order_num,0) + 1 " )
+                .eq(Member::getId,orders.getAcceptMemberId())
         );
         //鏃ュ織瀛樺偍
         Constants.OrdersLog ordersLog = Constants.OrdersLog.COMMENT;
@@ -1303,7 +1425,22 @@
                 this.saveOrderLog(orders,ordersLog,
                         ordersLog.getInfo(),orders.getReleaseMemberId(),null);
 
-                //TODO 閫氱煡鎺ュ崟鏂� 娆鹃」宸插埌璐�
+                // 閫氱煡鎺ュ崟鏂� 娆鹃」宸插埌璐�
+                sendWxMessage.revenueMessage(member.getOpenid(),orders);
+
+                //鐭俊閫氱煡鎺ュ崟鏂�
+                if(Objects.nonNull(orders.getAcceptMemberId())){
+                    IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
+                            .eq(IdentityInfo::getMemberId,orders.getAcceptMemberId())
+                            .eq(IdentityInfo::getType,orders.getType())
+                            .eq(IdentityInfo::getAuditStatus,Constants.TWO)
+                            .last("limit 1")
+                    );
+                    if(Objects.nonNull(wokerIdentityInfo)){
+                        aliSmsService.businessSendSms(Constants.smsContent.pay.getKey(),wokerIdentityInfo.getTelephone(),orders,null,
+                                null,categoryMapper);
+                    }
+                }
 
             }
         }
@@ -1650,7 +1787,9 @@
             if(CollectionUtils.isEmpty(memberList)){
                 continue;
             }
+
             Member member = memberList.get(Constants.ZERO);
+            Member releaseMember = memberMapper.selectById(orders.getReleaseMemberId());
             //鑷姩娲惧崟
             Orders model = ordersMapper.selectById(orders.getStatus());
             if(!Constants.equalsInteger(model.getStatus(),Constants.ONE)){
@@ -1665,13 +1804,34 @@
             );
 
             //鏇存柊鎺ュ崟閲�
-            memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" publish_num = (publish_num + 1 )").eq(Member::getId,member.getId()));
+            memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" publish_num = (ifnull(publish_num,0) + 1 )").eq(Member::getId,member.getId()));
 
             //鍒涘缓鎿嶄綔鏃ュ織
             Constants.OrdersLog ordersLog = Constants.OrdersLog.AUTO;
             this.saveOrderLog(orders,ordersLog,
                     ordersLog.getInfo(),member.getId(),null);
 
+            IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
+                    .eq(IdentityInfo::getMemberId,member.getId())
+                    .eq(IdentityInfo::getType,orders.getType())
+                    .eq(IdentityInfo::getAuditStatus,Constants.TWO)
+                    .last("limit 1")
+            );
+            //閫氱煡鍙戝崟鏂�
+            if(org.apache.commons.lang3.StringUtils.isNotBlank(releaseMember.getOpenid())&&Objects.nonNull(wokerIdentityInfo)){
+                //鍙戦�佸井淇¢�氱煡
+                sendWxMessage.acceptMessage(releaseMember.getOpenid(),orders,wokerIdentityInfo.getLinkName(),wokerIdentityInfo.getTelephone());
+            }
+
+            //閫氱煡鎺ュ崟鏂�
+            sendWxMessage.autoDispatchMessage(member.getOpenid(),orders,GeoUtils.haversineDistance(
+                    orders.getLgt().doubleValue(), orders.getLat().doubleValue(),
+                    member.getDriverIdentityModel().getLgt().doubleValue(),
+                    member.getDriverIdentityModel().getLat().doubleValue()
+            ));
+             
+            aliSmsService.businessSendSms(Constants.smsContent.dispatch.getKey(),orders.getLinkPhone(),orders,null,
+                    null,categoryMapper);
         }
     }
 
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
index 86d9fdb..1a0dd27 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
@@ -1,6 +1,7 @@
 package com.doumee.service.business.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.doumee.config.wx.SendWxMessage;
 import com.doumee.config.wx.TransferToUser;
 import com.doumee.config.wx.WXPayUtility;
 import com.doumee.config.wx.WxMiniConfig;
@@ -9,6 +10,7 @@
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.MemberRevenueMapper;
@@ -50,6 +52,9 @@
 
     @Autowired
     private MemberRevenueMapper memberRevenueMapper;
+
+    @Autowired
+    private SendWxMessage sendWxMessage;
 
     @Override
     public Integer create(WithdrawalOrders withdrawalOrders) {
@@ -249,44 +254,45 @@
 
     @Override
     public void transferSuccess(String outBillNo,Boolean isSuccess){
-        //杞处鎴愬姛
-        if(isSuccess){
-            withdrawalOrdersMapper.update(new UpdateWrapper<WithdrawalOrders>().lambda()
-                    .set(WithdrawalOrders::getStatus,Constants.ONE)
-                    .eq(WithdrawalOrders::getOutBillNo,outBillNo)
-            );
-        }else {
-            WithdrawalOrders withdrawalOrders = withdrawalOrdersMapper.selectOne(new QueryWrapper<WithdrawalOrders>().lambda()
-                    .eq(WithdrawalOrders::getOutBillNo,outBillNo).last("limit 1"));
-            if(Objects.isNull(withdrawalOrders)){
-                return;
-            }
-            Member member = memberMapper.selectById(withdrawalOrders.getMemberId());
-            if(Objects.isNull(member)){
-                return;
-            }
-            //鏇存柊鐢ㄦ埛浣欓
-            memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" AMOUNT = AMOUNT +  " + withdrawalOrders.getAmount() ).eq(Member::getId,withdrawalOrders.getMemberId()));
-
-            //瀛樺偍娴佹按璁板綍
-            MemberRevenue memberRevenue = new MemberRevenue();
-            memberRevenue.setCreateTime(new Date());
-            memberRevenue.setTransactionNo(withdrawalOrders.getOutBillNo());
-            memberRevenue.setDeleted(Constants.ZERO);
-            memberRevenue.setMemberId(withdrawalOrders.getMemberId());
-            memberRevenue.setType(Constants.FOUR);
-            memberRevenue.setOptType(Constants.ONE);
-            memberRevenue.setBeforeAmount(member.getAmount());
-            memberRevenue.setAmount(withdrawalOrders.getAmount());
-            memberRevenue.setAfterAmount(member.getAmount() + withdrawalOrders.getAmount());
-            memberRevenue.setObjId(withdrawalOrders.getId());
-            memberRevenue.setRemark(Constants.RevenueType.getInfo(memberRevenue.getType()));
-            memberRevenue.setObjType(Constants.ONE);
-            memberRevenue.setDeleted(Constants.ZERO);
-            memberRevenue.setStatus(Constants.ZERO);
-            memberRevenueMapper.insert(memberRevenue);
-
+        WithdrawalOrders withdrawalOrders = withdrawalOrdersMapper.selectOne(new QueryWrapper<WithdrawalOrders>().lambda()
+                .eq(WithdrawalOrders::getOutBillNo,outBillNo).last("limit 1"));
+        Member member = memberMapper.selectById(withdrawalOrders.getMemberId());
+        if(Objects.isNull(member)){
+            return;
         }
+        if(Objects.nonNull(withdrawalOrders)){
+            //杞处鎴愬姛
+            if(isSuccess){
+                withdrawalOrdersMapper.update(new UpdateWrapper<WithdrawalOrders>().lambda()
+                        .set(WithdrawalOrders::getStatus,Constants.ONE)
+                        .set(WithdrawalOrders::getUpdateTime, DateUtil.getCurrDateTime())
+                        .eq(WithdrawalOrders::getOutBillNo,outBillNo)
+                );
+                withdrawalOrders.setUpdateTime(new Date());
+                sendWxMessage.withdrawalMessage(member.getOpenid(),withdrawalOrders);
+            }else {
+                //鏇存柊鐢ㄦ埛浣欓
+                memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" AMOUNT = AMOUNT +  " + withdrawalOrders.getAmount() ).eq(Member::getId,withdrawalOrders.getMemberId()));
+                //瀛樺偍娴佹按璁板綍
+                MemberRevenue memberRevenue = new MemberRevenue();
+                memberRevenue.setCreateTime(new Date());
+                memberRevenue.setTransactionNo(withdrawalOrders.getOutBillNo());
+                memberRevenue.setDeleted(Constants.ZERO);
+                memberRevenue.setMemberId(withdrawalOrders.getMemberId());
+                memberRevenue.setType(Constants.FOUR);
+                memberRevenue.setOptType(Constants.ONE);
+                memberRevenue.setBeforeAmount(member.getAmount());
+                memberRevenue.setAmount(withdrawalOrders.getAmount());
+                memberRevenue.setAfterAmount(member.getAmount() + withdrawalOrders.getAmount());
+                memberRevenue.setObjId(withdrawalOrders.getId());
+                memberRevenue.setRemark(Constants.RevenueType.getInfo(memberRevenue.getType()));
+                memberRevenue.setObjType(Constants.ONE);
+                memberRevenue.setDeleted(Constants.ZERO);
+                memberRevenue.setStatus(Constants.ZERO);
+                memberRevenueMapper.insert(memberRevenue);
+            }
+        }
+
     }
 
     @Override
diff --git a/server/services/src/main/resources/application-dev.yml b/server/services/src/main/resources/application-dev.yml
index 4e2caa4..5c9d0fe 100644
--- a/server/services/src/main/resources/application-dev.yml
+++ b/server/services/src/main/resources/application-dev.yml
@@ -115,7 +115,7 @@
     subAppSecret: add86d6406f5c14501ac5bbb1a60e004 #灏忕▼搴忕閽�
     #瀛愬晢鎴�------------end----
     #      mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
-    typeId: gybike
+    typeId: jinkuai
 
 
 #wx:
diff --git a/server/services/src/main/resources/application-pro.yml b/server/services/src/main/resources/application-pro.yml
index 7982383..1ccdc4d 100644
--- a/server/services/src/main/resources/application-pro.yml
+++ b/server/services/src/main/resources/application-pro.yml
@@ -1,7 +1,7 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://aec60a91d1ff4f79844bdaa84c7bfe33in01.internal.cn-east-3.mysql.rds.myhuaweicloud.com:3306/jinkuai?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://b66cc1a382964a6a9d46a522f2dfe672in01.internal.cn-south-1.mysql.rds.myhuaweicloud.com:3306/jinkuai?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: root
     password: Jinkuai!@#$%^
     driver-class-name: com.mysql.cj.jdbc.Driver
@@ -48,37 +48,44 @@
   basic:
     enable: true
     username: admin
-    password:
+    password: doumee@168
 ########################寰俊鏀粯鐩稿叧閰嶇疆########################
 wx:
   pay:
-    #鏈嶅姟鍟�---------start-------
-    appId: wx48fd8faa35cc8277
-    mchId: 1661770902
-    apiV3Key: iF3kC8pL8dZ9iU3hN5fX9zI6eF4xQ6fT
-    serialNumer: 368B835A194384FD583B83B77977B84127D2F655
-    mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S
-    #    notifyUrl: http://xiaopiqiu3.natapp1.cc/api/wxPayNotify
-    #    refundNotifyUrl: http://xiaopiqiu3.natapp1.cc/api/wxRefundNotify
-    notifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxPayNotify
-    refundNotifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxRefundNotify
-    keyPath: /usr/local/aliConfig/bike/apiclient_cert.p12
-    privateCertPath: /usr/local/aliConfig/bike/apiclient_cert.pem
-    privateKeyPath: /usr/local/aliConfig/bike/apiclient_key.pem
-    #    keyPath: d://apiclient_cert.p12
-    #    privateCertPath: d://apiclient_cert.pem
-    #    privateKeyPath: d://apiclient_key.pem
+    #鏈嶅姟鍟�---------start------- 鍙傛暟璇﹁В鍦板潃 https://pay.weixin.qq.com/doc/v3/partner/4013080340
+    mchId: 1700071922    #鏈嶅姟鍟嗗湪寰俊鏀粯渚х殑鍞竴韬唤鏍囪瘑
+    appId: wx6cc1087ca79db7f6    #鏈嶅姟鍟嗗湪寰俊寮�鏀惧钩鍙帮紙绉诲姩搴旂敤锛夋垨鍏紬骞冲彴锛堝叕浼楀彿/灏忕▼搴忥級涓婄敵璇风殑涓�涓敮涓�鏍囪瘑
+    apiV3Key: 0a056faa107c2b2944b9d6a9aa6d4142 #7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB
+    serialNumer: 6696086F6EFB8D6A4F821BD47DDBAF75C3BC1209 #38495CE0137D90E4DC4F64F7ECDE035A35470BE3 #鏈嶅姟鍟嗚瘉涔﹀簭鍒楀彿
+    payPublicKeyId: PUB_KEY_ID_0117000719222024112700219100000508 #鍟嗘埛/骞冲彴鏀粯鍏挜id
+    #mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S
+    notifyUrl: https://jinkuai.832smartfarm.com/jinkuai_admin/web/wxPayNotify
+    refundNotifyUrl: https://jinkuai.832smartfarm.com/jinkuai_admin/web/wxRefundNotify
+    keyPath: /usr/local/jars/payFile/apiclient_cert.p12
+    privateCertPath: /usr/local/jars/payFile/apiclient_cert.pem
+    privateKeyPath: /usr/local/jars/payFile/apiclient_key.pem
+    pubKeyPath: /usr/local/jars/payFile/pub_key.pem #鍟嗘埛鏀粯鍏挜
+
     #鏈嶅姟鍟�-------------end---
+
+    #鍟嗘埛淇℃伅
+    wechatSerialNumer: 12C0F0DD0F3D2B565B45586D3FEA225EBF723BEC
+    wechatPayPublicKeyId: PUB_KEY_ID_0117233260692025072500181939000603 #鍟嗘埛/骞冲彴鏀粯鍏挜id
+    wechatPubKeyPath: /usr/local/jars/payFile/shanghu/pub_key.pem #鍟嗘埛鏀粯鍏挜
+    wechatPrivateKeyPath: /usr/local/jars/payFile/shanghu/apiclient_key.pem #鍟嗘埛绉侀挜
+    wechatNotifyUrl: https://jinkuai.832smartfarm.com/jinkuai_admin/web/wechat/transferNotify #鍟嗘埛杞处鍥炶皟鍦板潃
+    wechatApiV3Key: 7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB
+
+
     existsSub: 1
-    appSecret: 1ceb7c9dff3c4330d653adc3ca55ea24
+    appSecret:
     #瀛愬晢鎴�------------start----
-    subAppId: wxcd2b89fd2ff065f8 #wxcd2b89fd2ff065f8
-    subAppSecret: 3462fa186da7cb06c544df8d8664b63a #3336812504c830b1c3c5243f9ece407a
-    subMchId: 1661772003
-    subMchKey: EVM8E15TKXE0OEMJFC0V6UFVIOZ5CSQS
+    subMchId: 1723326069    #瀛愬晢鎴峰彿
+    subAppId: wx332441ae5b12be7d #灏忕▼搴廼d
+    subAppSecret: add86d6406f5c14501ac5bbb1a60e004 #灏忕▼搴忕閽�
     #瀛愬晢鎴�------------end----
     #      mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
-    typeId: gybike
+    typeId: jinkuai
 
 upload:
   type: blob
diff --git a/server/services/src/main/resources/application-test.yml b/server/services/src/main/resources/application-test.yml
index 8628d7d..c7019de 100644
--- a/server/services/src/main/resources/application-test.yml
+++ b/server/services/src/main/resources/application-test.yml
@@ -107,7 +107,7 @@
     subAppSecret: add86d6406f5c14501ac5bbb1a60e004 #灏忕▼搴忕閽�
     #瀛愬晢鎴�------------end----
     #      mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
-    typeId: gybike
+    typeId: jinkuai
 
 upload:
   type: blob
diff --git a/server/web/src/main/resources/application.yml b/server/web/src/main/resources/application.yml
index e21de66..28dea6f 100644
--- a/server/web/src/main/resources/application.yml
+++ b/server/web/src/main/resources/application.yml
@@ -12,7 +12,7 @@
 
 spring:
   profiles:
-    active: test
+    active: pro
   # JSON杩斿洖閰嶇疆
   jackson:
     # 榛樿鏃跺尯

--
Gitblit v1.9.3