From 4f8b61980b0db5995c16139d8eb9542b66da8a9f Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 27 六月 2023 11:58:21 +0800
Subject: [PATCH] 修改bug

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java |   81 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 78 insertions(+), 3 deletions(-)

diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java
index 2844803..ee7f73e 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java
@@ -2,11 +2,17 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.supersavedriving.driver.modular.system.model.DivisionRecord;
 import com.supersavedriving.driver.modular.system.model.Driver;
 import com.supersavedriving.driver.modular.system.model.Order;
 import com.supersavedriving.driver.modular.system.model.RechargeRecord;
+import com.supersavedriving.driver.modular.system.service.IDivisionRecordService;
 import com.supersavedriving.driver.modular.system.service.IRechargeRecordService;
 import com.supersavedriving.driver.modular.system.util.MallBook.model.InterfaceResponse;
+import com.supersavedriving.driver.modular.system.util.MallBook.model.Receive;
+import com.supersavedriving.driver.modular.system.util.MallBook.model.ReceiveUser;
+import com.supersavedriving.driver.modular.system.util.MallBook.util.RSASignature;
+import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest;
 import com.supersavedriving.driver.modular.system.util.rongyun.RongYunUtil;
 import com.supersavedriving.driver.modular.system.util.rongyun.model.CloudRecordingCallback;
 import com.supersavedriving.driver.modular.system.warpper.*;
@@ -20,6 +26,8 @@
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -28,9 +36,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
 * 订单控制器
@@ -40,6 +46,8 @@
 @RestController
 @RequestMapping("")
 public class OrderController {
+
+    Logger logger = LoggerFactory.getLogger(OrderController.class);
 
     @Autowired
     private IOrderService orderService;
@@ -52,6 +60,9 @@
 
     @Autowired
     private IRechargeRecordService rechargeRecordService;
+
+    @Autowired
+    private IDivisionRecordService divisionRecordService;
 
 
 
@@ -556,4 +567,68 @@
             return new ResponseWarpper(500, e.getMessage());
         }
     }
+
+
+
+    /**
+     * 异步分账回调
+     */
+    @ResponseBody
+    @PostMapping("/base/order/ledgerCallback")
+    public void ledgerCallback(@RequestBody InterfaceResponse execute, HttpServletResponse response){
+        try{
+            // 验签
+            boolean verify = RSASignature.validate(execute.content(), execute.getSign());
+            if (verify) {//验签成功业务处理逻辑
+                if("0000".equals(execute.getCode())){
+                    JSONObject jsonObject = JSON.parseObject(execute.getResult());
+                    Integer status = jsonObject.getInteger("status");
+                    if(2 == status){
+                        logger.warn("异步分账回调异常");
+                        return;
+                    }
+                    String merOrderId = jsonObject.getString("merOrderId");
+                    String divisionRecordId = jsonObject.getString("parameter1");
+                    //确认收货
+                    new Timer().schedule(new TimerTask() {
+                        @Override
+                        public void run() {
+                            DivisionRecord divisionRecord = divisionRecordService.selectById(divisionRecordId);
+                            Receive receive = new Receive();//确认收货
+                            receive.setOriginalMerOrderId(merOrderId);
+                            receive.setRcvAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue()));
+                            List<ReceiveUser> splitList = new ArrayList<>();
+                            ReceiveUser receiveUser = new ReceiveUser();
+                            receiveUser.setSplitUserId(divisionRecord.getMerchantNumber());
+                            receiveUser.setRcvSplitAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue()));
+                            splitList.add(receiveUser);
+                            receive.setSplitList(splitList);
+                            TrhRequest<Receive> request1 = new TrhRequest();
+                            InterfaceResponse execute = request1.execute(receive, Receive.SERVICE_CODE);
+                            if(!"0000".equals(execute.getCode())){
+                                logger.warn("确认收货" + execute.getMsg());
+                            }
+                            JSONObject jsonObject = JSON.parseObject(execute.getResult());
+                            String status = jsonObject.getString("status");
+                            if("2".equals(status)){
+                                logger.warn("确认收货失败");
+                            }
+                            if("0".equals(status)){
+                                logger.warn("确认收货处理中");
+                            }
+                        }
+                    }, 15000);
+                    response.setStatus(200);
+                    PrintWriter out = response.getWriter();
+                    out.print("OK");
+                    out.flush();
+                    out.close();
+                }
+            } else {//验签失败业务处理逻辑
+                logger.warn("支付回调验签失败");
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
 }

--
Gitblit v1.7.1