From 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 16 五月 2025 10:27:41 +0800
Subject: [PATCH] 修改文档bug

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/SettlementRecordController.java |   55 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/SettlementRecordController.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/SettlementRecordController.java
index 5b31f26..1c8eb10 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/SettlementRecordController.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/SettlementRecordController.java
@@ -1,9 +1,14 @@
 package com.stylefeng.guns.modular.api;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.core.util.MD5Util;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.system.model.SettlementRecord;
 import com.stylefeng.guns.modular.system.service.IDriverService;
+import com.stylefeng.guns.modular.system.service.IIncomeService;
 import com.stylefeng.guns.modular.system.service.ISettlementRecordService;
+import com.stylefeng.guns.modular.system.util.RedisUtil;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackRequest;
 import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackResponse;
@@ -14,9 +19,11 @@
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Date;
 import java.util.List;
@@ -25,6 +32,7 @@
  * @author zhibing.pu
  * @Date 2023/8/17 9:39
  */
+@Slf4j
 @RestController
 @RequestMapping("")
 public class SettlementRecordController {
@@ -34,6 +42,15 @@
 
     @Autowired
     private IDriverService driverService;
+    
+    @Autowired
+    private RedisUtil redisUtil;
+    
+    @Resource
+    private IIncomeService incomeService;
+    
+    
+    
 
 
     @ResponseBody
@@ -72,6 +89,13 @@
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
+            String format = String.format("uid=%s&payType=%s&language=%s", uid, payType, language);
+            String key = MD5Util.encrypt(format);
+            String value = redisUtil.getValue(key);
+            if(ToolUtil.isNotEmpty(value) && (System.currentTimeMillis() - Long.valueOf(value)) <= 1000){
+                return ResultUtil.error(language == 1 ? "请勿重复操作" : language == 2 ? "Don't repeat the operation" : "Ne répétez pas l’opération");
+            }
+            redisUtil.setStrValue(key, System.currentTimeMillis() + "", 5);
             return settlementRecordService.paymentSettlementAmount(uid, payType, bankCardId, language);
         }catch (Exception e){
             e.printStackTrace();
@@ -83,19 +107,19 @@
 
     @ResponseBody
     @PostMapping("/api/settlementRecord/queryHistoricalSettlement")
-    @ApiOperation(value = "获取结算历史记录", tags = {"司机端-个人中心"}, notes = "")
+    @ApiOperation(value = "获取结算历史记录【2.0】", tags = {"司机端-个人中心"}, notes = "")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
             @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<List<QueryHistoricalSettlement>> queryHistoricalSettlement(Integer pageNum, Integer size, HttpServletRequest request){
+    public ResultUtil<List<QueryHistoricalSettlement>> queryHistoricalSettlement(Integer language, Integer pageNum, Integer size, HttpServletRequest request){
         try {
             Integer uid = driverService.getUserIdFormRedis(request);
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-            List<QueryHistoricalSettlement> queryHistoricalSettlements = settlementRecordService.queryHistoricalSettlement(uid, pageNum, size);
+            List<QueryHistoricalSettlement> queryHistoricalSettlements = settlementRecordService.queryHistoricalSettlement(language, uid, pageNum, size);
             return ResultUtil.success(queryHistoricalSettlements);
         }catch (Exception e){
             e.printStackTrace();
@@ -137,8 +161,9 @@
      * @return
      */
     @ResponseBody
-    @PostMapping("/base/settlementRecord/querySettlementAmount")
+    @PostMapping("/base/settlementRecord/paymentSettlementAmountCallback")
     public CallbackResponse paymentSettlementAmountCallback(@RequestBody CallbackRequest callbackRequest){
+        log.info("结算支付回调结果:{}", JSON.toJSONString(callbackRequest));
         CallbackResponse callbackResponse = new CallbackResponse();
         try {
             /**
@@ -158,13 +183,21 @@
                 String order_id = payments.getPayer_transaction_id();
                 if(ToolUtil.isNotEmpty(out_trade_no)){
                     Integer language = Integer.valueOf(out_trade_no.substring(17, 18));
-                    Integer id = Integer.valueOf(out_trade_no.substring(18));
+                    Integer payType = Integer.valueOf(out_trade_no.substring(18, 19));
+                    Integer id = Integer.valueOf(out_trade_no.substring(19));
 
-                    SettlementRecord settlementRecord = settlementRecordService.selectById(id);
-                    settlementRecord.setPaymentStatus(2);
-                    settlementRecord.setPayTime(new Date());
-                    settlementRecord.setCode(order_id);
-                    settlementRecordService.updateById(settlementRecord);
+                    List<SettlementRecord> settlementRecords = settlementRecordService.selectList(new EntityWrapper<SettlementRecord>().eq("driverId", id).eq("paymentStatus", 1));
+                    for (SettlementRecord settlementRecord : settlementRecords) {
+                        settlementRecord.setPayType(payType);
+                        settlementRecord.setPaymentStatus(2);
+                        settlementRecord.setPayTime(new Date());
+                        settlementRecord.setCode(order_id);
+                        settlementRecordService.updateById(settlementRecord);
+                    }
+                    //添加司机结算的平台收入记录
+                    if(settlementRecords.size() > 0){
+                        incomeService.saveData(1, 1, 8, id, null, payments.getAmount_paid());
+                    }
 
                     callbackResponse.setCheckout_request_id(order_id);
                     callbackResponse.setMerchant_transaction_id(out_trade_no);
@@ -182,6 +215,8 @@
         }catch (Exception e){
             e.printStackTrace();
         }
+    
+        log.info("结算支付回调结果处理结束:{}", JSON.toJSONString(callbackResponse));
         return callbackResponse;
     }
 }

--
Gitblit v1.7.1