From 5d5a187689e51a8a74f16b91d23d32a74b39e803 Mon Sep 17 00:00:00 2001
From: wzp <2040239371@qq.com>
Date: 星期二, 06 五月 2025 18:48:51 +0800
Subject: [PATCH] feat: 新增回调手动重推

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java |   70 +++++++++++++++++++++++++++++++---
 1 files changed, 63 insertions(+), 7 deletions(-)

diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index e187354..2f76290 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -1,17 +1,16 @@
 package com.ruoyi.quartz.task;
 
+import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.utils.HttpUtil;
 import com.ruoyi.system.domain.*;
-import com.ruoyi.system.service.IAOrderStatusService;
-import com.ruoyi.system.service.IDispatchOrdService;
-import com.ruoyi.system.service.ISysClientAppService;
-import com.ruoyi.system.service.ITbOrdersService;
+import com.ruoyi.system.service.*;
 import com.ruoyi.system.service.impl.SysUserServiceImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import com.ruoyi.common.utils.StringUtils;
+import java.util.Date;
 
 import java.util.HashMap;
 import java.util.List;
@@ -26,6 +25,29 @@
 public class RyTask
 {
     private static final Logger log = LoggerFactory.getLogger(RyTask.class);
+    
+    // 娣诲姞鐘舵�佹槧灏勫瓧鍏�
+    private static final Map<String, String> ORDER_STATUS_MAP = new HashMap<String, String>() {{
+        put("-1", "鏃犳晥鍙栨秷");
+        put("1", "鏈姤浠�");
+        put("2", "宸叉姤浠�");
+        put("3", "1 - 瀹屽叏鏈‘璁�");
+        put("4", "2 - 閮ㄥ垎宸茬‘璁�");
+        put("5", "鏈嚭杞�");
+        put("6", "3 - 宸插嚭杞︼紙鍘绘帴鎮h�呴�斾腑锛�");
+        put("7", "宸插嚭杞︼紙绛夊緟鎮h�咃級");
+        put("8", "4 - 宸插嚭杞︼紙鏈嶅姟涓級");
+        put("9", "5 - 宸查�佽揪锛堝洖绋嬩腑锛�");
+        put("10", "宸茶繑鍥�");
+        put("11", "璺戠┖鍗曪紝宸茶繑鍥�");
+        put("12", "鍙栨秷");
+        put("13", "0 - 鏂拌皟搴﹀崟锛堟湭涓嬪彂锛�");
+        put("14", "宸叉彁浜わ紝绛夊緟瀹℃牳");
+        put("15", "瀹℃牳瀹屾垚");
+        put("16", "瀹℃牳涓嶉�氳繃");
+        put("17", "宸茬珯鐐�");
+    }};
+
     @Autowired
     private IAOrderStatusService orderStatusService;
 
@@ -37,6 +59,9 @@
 
     @Autowired
     private ISysClientAppService sysClientAppService;
+
+    @Autowired
+    private ITbCallbackLogService tbCallbackLogService;
 
     public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
     {
@@ -53,6 +78,9 @@
         System.out.println("鎵ц鏃犲弬鏂规硶");
     }
 
+
+    
+
     /**
      * 鍥炶皟鎺ㄩ�佺姸鎬�
      */
@@ -66,7 +94,7 @@
             for (AOrderStatus orderStatus : orderStatusList) {
                 int count = tbOrdersService.checkServiceOrdIDExists(orderStatus.getServiceOrdID());
                 if (count > 0) {
-                    System.out.println("鏈嶅姟璁㈠崟ID瀛樺湪锛�" + orderStatus.getServiceOrdID());
+                    log.info("鏈嶅姟璁㈠崟ID瀛樺湪锛�" + orderStatus.getServiceOrdID());
 
                     TbOrders tbOrders = tbOrdersService.selectTbOrdersByServiceOrdID(orderStatus.getServiceOrdID());
 
@@ -111,7 +139,7 @@
                         log.error("鑾峰彇璋冨害鍗曞紓甯革細"+e.getMessage());
                     }
 
-                    SysClientApp clientApp = sysClientAppService.selectSysClientAppByAppKey("appId1");
+                    SysClientApp clientApp = sysClientAppService.selectSysClientAppByAppKey(tbOrders.getAppId());
                     if(clientApp==null){
                         log.error("鍥炶皟鍦板潃涓嶅瓨鍦�");
                         return;
@@ -123,11 +151,17 @@
                         Map<String, String> map = new HashMap<>();
                         map.put("orderID", tbOrders.getOrderID().toString());
                         map.put("thirdOrderNo", orderStatus.getServiceOrdID());
-                        map.put("orderStatus","1");
+                        map.put("orderStatus", ORDER_STATUS_MAP.entrySet()
+                            .stream()
+                            .filter(entry -> entry.getValue().equals(orderStatus.getMsg()))
+                            .map(Map.Entry::getKey)
+                            .findFirst()
+                            .orElse("0"));
                         map.put("orderRemark", orderStatus.getMsg());
                         map.put("plateNo",carLicense);
                         map.put("driverMobile",driverMobiles.toString());
                         map.put("driverName", driverNames.toString());
+                        map.put("appId", tbOrders.getAppId());
 
                         // 绗竴娆″皾璇�
                         String response = sendCallback(callbackUrl, map);
@@ -144,6 +178,9 @@
                             log.info("鍥炶皟鎺ㄩ�佹垚鍔燂紝鍙傛暟濡備笅锛�");
                             map.forEach((key, value) -> log.info("    {} : {}", key, value));
                             orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
+
+
+                            
                         } else {
                             log.error("鍥炶皟璇锋眰閲嶈瘯鍚庝粛鐒跺け璐�");
                             orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
@@ -166,6 +203,16 @@
 
     // 鏂板鍙戦�佸洖璋冪殑鏂规硶
     private String sendCallback(String callbackUrl, Map<String, String> params) {
+        TbCallbackLog callbackLog = new TbCallbackLog();
+        callbackLog.setCallbackUrl(callbackUrl);
+        callbackLog.setRequestParams(JSON.toJSONString(params));
+        callbackLog.setCreateTime(new Date());
+        callbackLog.setStatus("0");  // 榛樿澶辫触
+        callbackLog.setRetryCount(0);
+        callbackLog.setServiceOrdId(params.get("thirdOrderNo"));
+        callbackLog.setOrderId(Long.valueOf(params.get("orderID")));
+        callbackLog.setAppId(params.get("appId"));
+
         try {
             // 鎵撳嵃璇锋眰鍙傛暟
             log.info("鍙戦�佸洖璋冭姹傦紝URL: " + callbackUrl);
@@ -177,9 +224,18 @@
             // 鎵撳嵃鍝嶅簲缁撴灉
             log.info("鍥炶皟鍝嶅簲缁撴灉: " + response);
             
+            // 鏇存柊鏃ュ織鐘舵��
+            callbackLog.setResponseResult(response);
+            callbackLog.setStatus("1");  // 鎴愬姛
+            
+            tbCallbackLogService.insertTbCallbackLog(callbackLog);
             return response;
         } catch (Exception e) {
             log.error("鍥炶皟璇锋眰寮傚父: " + e.getMessage());
+            // 璁板綍閿欒淇℃伅
+            callbackLog.setErrorMsg(e.getMessage());
+            callbackLog.setRetryCount(1);  // 濡傛灉鏄噸璇曠殑鎯呭喌涓嬮渶瑕�+1
+            tbCallbackLogService.insertTbCallbackLog(callbackLog);
             return null;
         }
     }

--
Gitblit v1.9.1