From dc0579496b9c858806a606523397cd43ee6217ba Mon Sep 17 00:00:00 2001
From: wzp <2040239371@qq.com>
Date: 星期二, 06 五月 2025 11:42:42 +0800
Subject: [PATCH] feat: 新增回调记录表和优化订单记录表

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                           |   37 +
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TbOrders.java                       |   11 
 ruoyi-ui/src/api/system/callbacklog.js                                                 |   44 ++
 ruoyi-ui/src/views/system/callbacklog/index.vue                                        |  334 ++++++++++++++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbCallbackLogMapper.java            |   59 +++
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TbCallbackLog.java                  |   61 +++
 ruoyi-system/src/main/java/com/ruoyi/system/service/ITbCallbackLogService.java         |   59 +++
 ruoyi-system/src/main/resources/mapper/system/TbCallbackLogMapper.xml                  |  103 ++++++
 ruoyi-system/src/main/resources/mapper/system/TbOrdersMapper.xml                       |    7 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbCallbackLogController.java |  104 ++++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbCallbackLogServiceImpl.java |   91 +++++
 ruoyi-ui/src/views/system/payInfoTest/index.vue                                        |   30 
 12 files changed, 918 insertions(+), 22 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbCallbackLogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbCallbackLogController.java
new file mode 100644
index 0000000..77886ba
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbCallbackLogController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.TbCallbackLog;
+import com.ruoyi.system.service.ITbCallbackLogService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 鍥炶皟璁板綍Controller
+ * 
+ * @author ruoyi
+ * @date 2025-05-06
+ */
+@RestController
+@RequestMapping("/system/callbacklog")
+public class TbCallbackLogController extends BaseController
+{
+    @Autowired
+    private ITbCallbackLogService tbCallbackLogService;
+
+    /**
+     * 鏌ヨ鍥炶皟璁板綍鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:callbacklog:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TbCallbackLog tbCallbackLog)
+    {
+        startPage();
+        List<TbCallbackLog> list = tbCallbackLogService.selectTbCallbackLogList(tbCallbackLog);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鍥炶皟璁板綍鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:callbacklog:export')")
+    @Log(title = "鍥炶皟璁板綍", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TbCallbackLog tbCallbackLog)
+    {
+        List<TbCallbackLog> list = tbCallbackLogService.selectTbCallbackLogList(tbCallbackLog);
+        ExcelUtil<TbCallbackLog> util = new ExcelUtil<TbCallbackLog>(TbCallbackLog.class);
+        util.exportExcel(response, list, "鍥炶皟璁板綍鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇鍥炶皟璁板綍璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('system:callbacklog:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(tbCallbackLogService.selectTbCallbackLogById(id));
+    }
+
+    /**
+     * 鏂板鍥炶皟璁板綍
+     */
+    @PreAuthorize("@ss.hasPermi('system:callbacklog:add')")
+    @Log(title = "鍥炶皟璁板綍", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TbCallbackLog tbCallbackLog)
+    {
+        return toAjax(tbCallbackLogService.insertTbCallbackLog(tbCallbackLog));
+    }
+
+    /**
+     * 淇敼鍥炶皟璁板綍
+     */
+    @PreAuthorize("@ss.hasPermi('system:callbacklog:edit')")
+    @Log(title = "鍥炶皟璁板綍", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TbCallbackLog tbCallbackLog)
+    {
+        return toAjax(tbCallbackLogService.updateTbCallbackLog(tbCallbackLog));
+    }
+
+    /**
+     * 鍒犻櫎鍥炶皟璁板綍
+     */
+    @PreAuthorize("@ss.hasPermi('system:callbacklog:remove')")
+    @Log(title = "鍥炶皟璁板綍", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tbCallbackLogService.deleteTbCallbackLogByIds(ids));
+    }
+}
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..d4cfcca 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;
@@ -37,6 +36,9 @@
 
     @Autowired
     private ISysClientAppService sysClientAppService;
+
+    @Autowired
+    private ITbCallbackLogService tbCallbackLogService;
 
     public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
     {
@@ -66,7 +68,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 +113,7 @@
                         log.error("鑾峰彇璋冨害鍗曞紓甯革細"+e.getMessage());
                     }
 
-                    SysClientApp clientApp = sysClientAppService.selectSysClientAppByAppKey("appId1");
+                    SysClientApp clientApp = sysClientAppService.selectSysClientAppByAppKey(tbOrders.getAppId());
                     if(clientApp==null){
                         log.error("鍥炶皟鍦板潃涓嶅瓨鍦�");
                         return;
@@ -128,6 +130,7 @@
                         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 +147,9 @@
                             log.info("鍥炶皟鎺ㄩ�佹垚鍔燂紝鍙傛暟濡備笅锛�");
                             map.forEach((key, value) -> log.info("    {} : {}", key, value));
                             orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
+
+
+                            
                         } else {
                             log.error("鍥炶皟璇锋眰閲嶈瘯鍚庝粛鐒跺け璐�");
                             orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
@@ -166,6 +172,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 +193,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;
         }
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbCallbackLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbCallbackLog.java
new file mode 100644
index 0000000..61fff75
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbCallbackLog.java
@@ -0,0 +1,61 @@
+package com.ruoyi.system.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 鍥炶皟璁板綍瀵硅薄 tb_callback_log
+ * 
+ */
+@Data
+public class TbCallbackLog extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 涓婚敭ID */
+    private Long id;
+
+    /** 鏈嶅姟璁㈠崟ID */
+    @Excel(name = "鏈嶅姟璁㈠崟ID")
+    private String serviceOrdId;
+
+    /** 璁㈠崟ID */
+    @Excel(name = "璁㈠崟ID")
+    private Long orderId;
+
+    /** 鍥炶皟鍦板潃 */
+    @Excel(name = "鍥炶皟鍦板潃")
+    private String callbackUrl;
+
+    /** 璇锋眰鍙傛暟 */
+    @Excel(name = "璇锋眰鍙傛暟")
+    private String requestParams;
+
+    /** 鍝嶅簲缁撴灉 */
+    @Excel(name = "鍝嶅簲缁撴灉")
+    private String responseResult;
+
+    /** 鐘舵�侊紙0澶辫触 1鎴愬姛锛� */
+    @Excel(name = "鐘舵��", readConverterExp = "0=澶辫触,1=鎴愬姛")
+    private String status;
+
+    /** 閲嶈瘯娆℃暟 */
+    @Excel(name = "閲嶈瘯娆℃暟")
+    private Integer retryCount;
+
+    /** 閿欒淇℃伅 */
+    @Excel(name = "閿欒淇℃伅")
+    private String errorMsg;
+
+    /** 鍒涘缓鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍒涘缓鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /** 搴旂敤ID */
+    @Excel(name = "搴旂敤ID")
+    private String appId;
+} 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbOrders.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbOrders.java
index 2b3c4f9..14d01d2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbOrders.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TbOrders.java
@@ -207,6 +207,13 @@
     @JsonProperty("OrderStatus")
     private Integer OrderStatus;
 
+
+    /** 鍟嗘埛ID */
+    @Excel(name = "鍟嗘埛ID")
+    @JsonProperty("AppId")
+    private String AppId;
+
+
     public void setOrderID(Long OrderID) 
     {
         this.OrderID = OrderID;
@@ -387,6 +394,10 @@
 
     public Integer getOrderStatus(){return this.OrderStatus;}
 
+    public void setAppId(String AppId){this.AppId = AppId;}
+
+    public String getAppId(){return this.AppId;}
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbCallbackLogMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbCallbackLogMapper.java
new file mode 100644
index 0000000..d1133e7
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbCallbackLogMapper.java
@@ -0,0 +1,59 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.TbCallbackLog;
+
+/**
+ * 鍥炶皟璁板綍Mapper鎺ュ彛
+ * 
+ */
+public interface TbCallbackLogMapper 
+{
+    /**
+     * 鏌ヨ鍥炶皟璁板綍
+     * 
+     * @param id 鍥炶皟璁板綍涓婚敭
+     * @return 鍥炶皟璁板綍
+     */
+    public TbCallbackLog selectTbCallbackLogById(Long id);
+
+    /**
+     * 鏌ヨ鍥炶皟璁板綍鍒楄〃
+     * 
+     * @param tbCallbackLog 鍥炶皟璁板綍
+     * @return 鍥炶皟璁板綍闆嗗悎
+     */
+    public List<TbCallbackLog> selectTbCallbackLogList(TbCallbackLog tbCallbackLog);
+
+    /**
+     * 鏂板鍥炶皟璁板綍
+     * 
+     * @param tbCallbackLog 鍥炶皟璁板綍
+     * @return 缁撴灉
+     */
+    public int insertTbCallbackLog(TbCallbackLog tbCallbackLog);
+
+    /**
+     * 淇敼鍥炶皟璁板綍
+     * 
+     * @param tbCallbackLog 鍥炶皟璁板綍
+     * @return 缁撴灉
+     */
+    public int updateTbCallbackLog(TbCallbackLog tbCallbackLog);
+
+    /**
+     * 鍒犻櫎鍥炶皟璁板綍
+     * 
+     * @param id 鍥炶皟璁板綍涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteTbCallbackLogById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎鍥炶皟璁板綍
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteTbCallbackLogByIds(Long[] ids);
+} 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ITbCallbackLogService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ITbCallbackLogService.java
new file mode 100644
index 0000000..465bc20
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ITbCallbackLogService.java
@@ -0,0 +1,59 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.TbCallbackLog;
+
+/**
+ * 鍥炶皟璁板綍Service鎺ュ彛
+ * 
+ */
+public interface ITbCallbackLogService 
+{
+    /**
+     * 鏌ヨ鍥炶皟璁板綍
+     * 
+     * @param id 鍥炶皟璁板綍涓婚敭
+     * @return 鍥炶皟璁板綍
+     */
+    public TbCallbackLog selectTbCallbackLogById(Long id);
+
+    /**
+     * 鏌ヨ鍥炶皟璁板綍鍒楄〃
+     * 
+     * @param tbCallbackLog 鍥炶皟璁板綍
+     * @return 鍥炶皟璁板綍闆嗗悎
+     */
+    public List<TbCallbackLog> selectTbCallbackLogList(TbCallbackLog tbCallbackLog);
+
+    /**
+     * 鏂板鍥炶皟璁板綍
+     * 
+     * @param tbCallbackLog 鍥炶皟璁板綍
+     * @return 缁撴灉
+     */
+    public int insertTbCallbackLog(TbCallbackLog tbCallbackLog);
+
+    /**
+     * 淇敼鍥炶皟璁板綍
+     * 
+     * @param tbCallbackLog 鍥炶皟璁板綍
+     * @return 缁撴灉
+     */
+    public int updateTbCallbackLog(TbCallbackLog tbCallbackLog);
+
+    /**
+     * 鎵归噺鍒犻櫎鍥炶皟璁板綍
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鍥炶皟璁板綍涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteTbCallbackLogByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎鍥炶皟璁板綍淇℃伅
+     * 
+     * @param id 鍥炶皟璁板綍涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteTbCallbackLogById(Long id);
+} 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbCallbackLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbCallbackLogServiceImpl.java
new file mode 100644
index 0000000..82e079a
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbCallbackLogServiceImpl.java
@@ -0,0 +1,91 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.TbCallbackLogMapper;
+import com.ruoyi.system.domain.TbCallbackLog;
+import com.ruoyi.system.service.ITbCallbackLogService;
+
+/**
+ * 鍥炶皟璁板綍Service涓氬姟灞傚鐞�
+ * 
+ */
+@Service
+public class TbCallbackLogServiceImpl implements ITbCallbackLogService 
+{
+    @Autowired
+    private TbCallbackLogMapper tbCallbackLogMapper;
+
+    /**
+     * 鏌ヨ鍥炶皟璁板綍
+     * 
+     * @param id 鍥炶皟璁板綍涓婚敭
+     * @return 鍥炶皟璁板綍
+     */
+    @Override
+    public TbCallbackLog selectTbCallbackLogById(Long id)
+    {
+        return tbCallbackLogMapper.selectTbCallbackLogById(id);
+    }
+
+    /**
+     * 鏌ヨ鍥炶皟璁板綍鍒楄〃
+     * 
+     * @param tbCallbackLog 鍥炶皟璁板綍
+     * @return 鍥炶皟璁板綍
+     */
+    @Override
+    public List<TbCallbackLog> selectTbCallbackLogList(TbCallbackLog tbCallbackLog)
+    {
+        return tbCallbackLogMapper.selectTbCallbackLogList(tbCallbackLog);
+    }
+
+    /**
+     * 鏂板鍥炶皟璁板綍
+     * 
+     * @param tbCallbackLog 鍥炶皟璁板綍
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertTbCallbackLog(TbCallbackLog tbCallbackLog)
+    {
+        return tbCallbackLogMapper.insertTbCallbackLog(tbCallbackLog);
+    }
+
+    /**
+     * 淇敼鍥炶皟璁板綍
+     * 
+     * @param tbCallbackLog 鍥炶皟璁板綍
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateTbCallbackLog(TbCallbackLog tbCallbackLog)
+    {
+        return tbCallbackLogMapper.updateTbCallbackLog(tbCallbackLog);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鍥炶皟璁板綍
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鍥炶皟璁板綍涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteTbCallbackLogByIds(Long[] ids)
+    {
+        return tbCallbackLogMapper.deleteTbCallbackLogByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎鍥炶皟璁板綍淇℃伅
+     * 
+     * @param id 鍥炶皟璁板綍涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteTbCallbackLogById(Long id)
+    {
+        return tbCallbackLogMapper.deleteTbCallbackLogById(id);
+    }
+} 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/TbCallbackLogMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TbCallbackLogMapper.xml
new file mode 100644
index 0000000..24be3d7
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/TbCallbackLogMapper.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.TbCallbackLogMapper">
+    
+    <resultMap type="TbCallbackLog" id="TbCallbackLogResult">
+        <result property="id"             column="id"              />
+        <result property="serviceOrdId"   column="service_ord_id"  />
+        <result property="orderId"        column="order_id"        />
+        <result property="callbackUrl"    column="callback_url"    />
+        <result property="requestParams"  column="request_params"  />
+        <result property="responseResult" column="response_result" />
+        <result property="status"         column="status"          />
+        <result property="retryCount"     column="retry_count"     />
+        <result property="errorMsg"       column="error_msg"       />
+        <result property="createTime"     column="create_time"     />
+        <result property="appId"          column="app_id"          />
+    </resultMap>
+
+    <sql id="selectTbCallbackLogVo">
+        select id, service_ord_id, order_id, callback_url, request_params, response_result, status, retry_count, error_msg, create_time, app_id
+        from tb_callback_log
+    </sql>
+
+    <select id="selectTbCallbackLogList" parameterType="TbCallbackLog" resultMap="TbCallbackLogResult">
+        <include refid="selectTbCallbackLogVo"/>
+        <where>  
+            <if test="serviceOrdId != null  and serviceOrdId != ''"> and service_ord_id = #{serviceOrdId}</if>
+            <if test="orderId != null "> and order_id = #{orderId}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+            <if test="appId != null  and appId != ''"> and app_id = #{appId}</if>
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
+                AND date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
+            </if>
+            <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
+                AND date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
+            </if>
+        </where>
+        order by create_time,id desc
+    </select>
+    
+    <select id="selectTbCallbackLogById" parameterType="Long" resultMap="TbCallbackLogResult">
+        <include refid="selectTbCallbackLogVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTbCallbackLog" parameterType="TbCallbackLog" useGeneratedKeys="true" keyProperty="id">
+        insert into tb_callback_log
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="serviceOrdId != null">service_ord_id,</if>
+            <if test="orderId != null">order_id,</if>
+            <if test="callbackUrl != null">callback_url,</if>
+            <if test="requestParams != null">request_params,</if>
+            <if test="responseResult != null">response_result,</if>
+            <if test="status != null">status,</if>
+            <if test="retryCount != null">retry_count,</if>
+            <if test="errorMsg != null">error_msg,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="appId != null">app_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="serviceOrdId != null">#{serviceOrdId},</if>
+            <if test="orderId != null">#{orderId},</if>
+            <if test="callbackUrl != null">#{callbackUrl},</if>
+            <if test="requestParams != null">#{requestParams},</if>
+            <if test="responseResult != null">#{responseResult},</if>
+            <if test="status != null">#{status},</if>
+            <if test="retryCount != null">#{retryCount},</if>
+            <if test="errorMsg != null">#{errorMsg},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="appId != null">#{appId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTbCallbackLog" parameterType="TbCallbackLog">
+        update tb_callback_log
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="serviceOrdId != null">service_ord_id = #{serviceOrdId},</if>
+            <if test="orderId != null">order_id = #{orderId},</if>
+            <if test="callbackUrl != null">callback_url = #{callbackUrl},</if>
+            <if test="requestParams != null">request_params = #{requestParams},</if>
+            <if test="responseResult != null">response_result = #{responseResult},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="retryCount != null">retry_count = #{retryCount},</if>
+            <if test="errorMsg != null">error_msg = #{errorMsg},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="appId != null">app_id = #{appId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTbCallbackLogById" parameterType="Long">
+        delete from tb_callback_log where id = #{id}
+    </delete>
+
+    <delete id="deleteTbCallbackLogByIds" parameterType="String">
+        delete from tb_callback_log where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper> 
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/TbOrdersMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TbOrdersMapper.xml
index 5160bce..5301a16 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TbOrdersMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TbOrdersMapper.xml
@@ -43,10 +43,11 @@
         <result property="CreateTime"    column="CreateTime"    />
         <result property="UpdateTime"    column="UpdateTime"    />
         <result property="OrderStatus"    column="OrderStatus"    />
+        <result property="AppId"    column="AppId"    />
     </resultMap>
 
     <sql id="selectTbOrdersVo">
-        select OrderID, LinkPerson, LinkTel, AlarmTel, PatientName, Sex, Age, Kg, Sense, LocalAddress, LocalLongitude, LocalLatitude, LocalProvince, LocalCity, LocalDistrict, SendAddress, SendLongitude, SendLatitude, SendProvince, SendCity, SendDistrict, BookingPrice, BookingDate, Remark, Complaint, PatientCount, BookingKM, EscortCode, LiftingCode, LiftingFloor, RequirementCode, TypeCode, ThirdPartyResult, ServiceOrdID, ServiceOrdNo, CreateTime, UpdateTime, OrderStatus from tb_orders
+        select OrderID, LinkPerson, LinkTel, AlarmTel, PatientName, Sex, Age, Kg, Sense, LocalAddress, LocalLongitude, LocalLatitude, LocalProvince, LocalCity, LocalDistrict, SendAddress, SendLongitude, SendLatitude, SendProvince, SendCity, SendDistrict, BookingPrice, BookingDate, Remark, Complaint, PatientCount, BookingKM, EscortCode, LiftingCode, LiftingFloor, RequirementCode, TypeCode, ThirdPartyResult, ServiceOrdID, ServiceOrdNo, CreateTime, UpdateTime, OrderStatus, AppId from tb_orders
     </sql>
 
     <select id="selectTbOrdersList" parameterType="TbOrders" resultMap="TbOrdersResult">
@@ -89,6 +90,7 @@
             <if test="CreateTime != null "> and CreateTime = #{CreateTime}</if>
             <if test="UpdateTime != null "> and UpdateTime = #{UpdateTime}</if>
             <if test="OrderStatus != null "> and OrderStatus = #{OrderStatus}</if>
+            <if test="AppId != null  and AppId != ''"> and AppId = #{AppId}</if>
         </where>
         ORDER BY CreateTime DESC
     </select>
@@ -140,6 +142,7 @@
             <if test="CreateTime != null">CreateTime,</if>
             <if test="UpdateTime != null">UpdateTime,</if>
             <if test="OrderStatus != null">OrderStatus,</if>
+            <if test="AppId != null">AppId,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="OrderID != null">#{OrderID},</if>
@@ -180,6 +183,7 @@
             <if test="CreateTime != null">#{CreateTime},</if>
             <if test="UpdateTime != null">#{UpdateTime},</if>
             <if test="OrderStatus != null">#{OrderStatus},</if>
+            <if test="AppId != null">#{AppId},</if>
          </trim>
     </insert>
 
@@ -223,6 +227,7 @@
             <if test="CreateTime != null">CreateTime = #{CreateTime},</if>
             <if test="UpdateTime != null">UpdateTime = #{UpdateTime},</if>
             <if test="OrderStatus != null">OrderStatus = #{OrderStatus},</if>
+            <if test="AppId != null">AppId = #{AppId},</if>
         </trim>
         where OrderID = #{OrderID}
     </update>
diff --git a/ruoyi-ui/src/api/system/callbacklog.js b/ruoyi-ui/src/api/system/callbacklog.js
new file mode 100644
index 0000000..97e4921
--- /dev/null
+++ b/ruoyi-ui/src/api/system/callbacklog.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ鍥炶皟璁板綍鍒楄〃
+export function listCallbacklog(query) {
+  return request({
+    url: '/system/callbacklog/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ鍥炶皟璁板綍璇︾粏
+export function getCallbacklog(id) {
+  return request({
+    url: '/system/callbacklog/' + id,
+    method: 'get'
+  })
+}
+
+// 鏂板鍥炶皟璁板綍
+export function addCallbacklog(data) {
+  return request({
+    url: '/system/callbacklog',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼鍥炶皟璁板綍
+export function updateCallbacklog(data) {
+  return request({
+    url: '/system/callbacklog',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎鍥炶皟璁板綍
+export function delCallbacklog(id) {
+  return request({
+    url: '/system/callbacklog/' + id,
+    method: 'delete'
+  })
+}
diff --git a/ruoyi-ui/src/views/system/callbacklog/index.vue b/ruoyi-ui/src/views/system/callbacklog/index.vue
new file mode 100644
index 0000000..2e45a89
--- /dev/null
+++ b/ruoyi-ui/src/views/system/callbacklog/index.vue
@@ -0,0 +1,334 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="鏈嶅姟璁㈠崟ID" prop="serviceOrdId">
+        <el-input
+          v-model="queryParams.serviceOrdId"
+          placeholder="璇疯緭鍏ユ湇鍔¤鍗旾D"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="璁㈠崟ID" prop="orderId">
+        <el-input
+          v-model="queryParams.orderId"
+          placeholder="璇疯緭鍏ヨ鍗旾D"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <!-- <el-form-item label="鍥炶皟鍦板潃" prop="callbackUrl">
+        <el-input
+          v-model="queryParams.callbackUrl"
+          placeholder="璇疯緭鍏ュ洖璋冨湴鍧�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="閲嶈瘯娆℃暟" prop="retryCount">
+        <el-input
+          v-model="queryParams.retryCount"
+          placeholder="璇疯緭鍏ラ噸璇曟鏁�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item> -->
+      <el-form-item label="搴旂敤ID" prop="appId">
+        <el-input
+          v-model="queryParams.appId"
+          placeholder="璇疯緭鍏ュ簲鐢↖D"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:callbacklog:add']"
+        >鏂板</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:callbacklog:edit']"
+        >淇敼</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:callbacklog:remove']"
+        >鍒犻櫎</el-button>
+      </el-col> -->
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:callbacklog:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="callbacklogList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="ID" align="center" prop="id" />
+      <el-table-column label="姘戣埅鏈嶅姟璁㈠崟ID" align="center" prop="serviceOrdId" />
+      <el-table-column label="璁㈠崟ID" align="center" prop="orderId" />
+      <el-table-column label="鍥炶皟鍦板潃" align="center" prop="callbackUrl" />
+      <el-table-column label="璇锋眰鍙傛暟" align="center" prop="requestParams" />
+      <el-table-column label="鍝嶅簲缁撴灉" align="center" prop="responseResult" />
+      <el-table-column label="鐘舵��" align="center" prop="status">
+        <template slot-scope="scope">
+          <el-tag :type="scope.row.status === '1' ? 'success' : 'danger'">
+            {{ scope.row.status === '1' ? '鎴愬姛' : '澶辫触' }}
+          </el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="閲嶈瘯娆℃暟" align="center" prop="retryCount" />
+      <el-table-column label="閿欒淇℃伅" align="center" prop="errorMsg" />
+      <el-table-column label="搴旂敤ID" align="center" prop="appId" />
+      <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:callbacklog:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:callbacklog:remove']"
+          >鍒犻櫎</el-button>
+        </template>
+      </el-table-column> -->
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 娣诲姞鎴栦慨鏀瑰洖璋冭褰曞璇濇 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="鏈嶅姟璁㈠崟ID" prop="serviceOrdId">
+          <el-input v-model="form.serviceOrdId" placeholder="璇疯緭鍏ユ湇鍔¤鍗旾D" />
+        </el-form-item>
+        <el-form-item label="璁㈠崟ID" prop="orderId">
+          <el-input v-model="form.orderId" placeholder="璇疯緭鍏ヨ鍗旾D" />
+        </el-form-item>
+        <el-form-item label="鍥炶皟鍦板潃" prop="callbackUrl">
+          <el-input v-model="form.callbackUrl" placeholder="璇疯緭鍏ュ洖璋冨湴鍧�" />
+        </el-form-item>
+        <el-form-item label="璇锋眰鍙傛暟" prop="requestParams">
+          <el-input v-model="form.requestParams" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="鍝嶅簲缁撴灉" prop="responseResult">
+          <el-input v-model="form.responseResult" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="閲嶈瘯娆℃暟" prop="retryCount">
+          <el-input v-model="form.retryCount" placeholder="璇疯緭鍏ラ噸璇曟鏁�" />
+        </el-form-item>
+        <el-form-item label="閿欒淇℃伅" prop="errorMsg">
+          <el-input v-model="form.errorMsg" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
+        </el-form-item>
+        <el-form-item label="搴旂敤ID" prop="appId">
+          <el-input v-model="form.appId" placeholder="璇疯緭鍏ュ簲鐢↖D" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listCallbacklog, getCallbacklog, delCallbacklog, addCallbacklog, updateCallbacklog } from "@/api/system/callbacklog";
+
+export default {
+  name: "Callbacklog",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鍥炶皟璁板綍琛ㄦ牸鏁版嵁
+      callbacklogList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        serviceOrdId: null,
+        orderId: null,
+        callbackUrl: null,
+        requestParams: null,
+        responseResult: null,
+        status: null,
+        retryCount: null,
+        errorMsg: null,
+        appId: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ鍥炶皟璁板綍鍒楄〃 */
+    getList() {
+      this.loading = true;
+      listCallbacklog(this.queryParams).then(response => {
+        this.callbacklogList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        serviceOrdId: null,
+        orderId: null,
+        callbackUrl: null,
+        requestParams: null,
+        responseResult: null,
+        status: null,
+        retryCount: null,
+        errorMsg: null,
+        createTime: null,
+        appId: null
+      };
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞鍥炶皟璁板綍";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getCallbacklog(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼鍥炶皟璁板綍";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateCallbacklog(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addCallbacklog(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎鍥炶皟璁板綍缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() {
+        return delCallbacklog(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('system/callbacklog/export', {
+        ...this.queryParams
+      }, `callbacklog_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/ruoyi-ui/src/views/system/payInfoTest/index.vue b/ruoyi-ui/src/views/system/payInfoTest/index.vue
index 8bbcb4d..1ff528c 100644
--- a/ruoyi-ui/src/views/system/payInfoTest/index.vue
+++ b/ruoyi-ui/src/views/system/payInfoTest/index.vue
@@ -23,6 +23,9 @@
           <el-descriptions-item label="浜ゆ槗娴佹按鍙�">
             {{ transactionNo }}
           </el-descriptions-item>
+          <el-descriptions-item label="鏀粯鏂瑰紡">
+            {{ payType }}
+          </el-descriptions-item>
         </el-descriptions>
       </el-card>
     </div>
@@ -38,7 +41,8 @@
       errorMessage: '',
       payAmount: '',
       orderNo: '',
-      transactionNo: ''
+      transactionNo: '',
+      payType: ''
     }
   },
   created() {
@@ -48,20 +52,16 @@
     initData() {
       // 浠嶶RL鍙傛暟涓幏鍙栨暟鎹�
       const query = this.$route.query;
-      if (!query.payAmount || !query.orderNo || !query.transactionNo) {
-        this.errorMessage = '缂哄皯蹇呰鐨勫弬鏁颁俊鎭�';
-        return;
-      }
-
-      // 璁剧疆鏁版嵁
-      this.payAmount = query.payAmount;
-      this.orderNo = query.orderNo;
-      this.transactionNo = query.transactionNo;
-
-      // 妯℃嫙鍔犺浇寤惰繜
-      setTimeout(() => {
-        this.validated = true;
-      }, 500);
+      
+      // 璁剧疆鏁版嵁锛屼娇鐢ㄧ┖瀛楃涓蹭綔涓洪粯璁ゅ��
+      this.payAmount = query.PayMoney || '0';
+      this.orderNo = query.ServiceOrdID || '--';
+      this.transactionNo = query.DispatchOrdID || '--';
+      this.payType = query.payType === '寰俊' ? '寰俊' : 
+                     query.payType === '鏀粯瀹�' ? '鏀粯瀹�' : '--';
+      
+      // 鐩存帴鏄剧ず鏁版嵁锛屼笉鍋氬繀濉牎楠�
+      this.validated = true;
     }
   }
 }

--
Gitblit v1.9.1