From d5b3e5a413bcfccba294793ee093722f31b2448a Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 16 八月 2023 17:02:13 +0800
Subject: [PATCH] 添加推单日志

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java |   41 ++++++++++++++++++++++++++++-------------
 1 files changed, 28 insertions(+), 13 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 b1182c1..86f53e9 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
@@ -3,7 +3,6 @@
 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;
@@ -26,6 +25,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.*;
 
@@ -33,6 +34,8 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -45,14 +48,13 @@
 @RequestMapping("")
 public class OrderController {
 
+    Logger logger = LoggerFactory.getLogger(OrderController.class);
+
     @Autowired
     private IOrderService orderService;
 
     @Autowired
     private IDriverService driverService;
-
-    @Autowired
-    private RongYunUtil rongYunUtil;
 
     @Autowired
     private IRechargeRecordService rechargeRecordService;
@@ -580,40 +582,53 @@
                     JSONObject jsonObject = JSON.parseObject(execute.getResult());
                     Integer status = jsonObject.getInteger("status");
                     if(2 == status){
-                        System.err.println("异步分账回调异常");
+                        logger.warn("异步分账回调异常");
                         return;
                     }
                     String merOrderId = jsonObject.getString("merOrderId");
                     String divisionRecordId = jsonObject.getString("parameter1");
+                    DivisionRecord divisionRecord = divisionRecordService.selectById(divisionRecordId);
+                    if(divisionRecord.getState() == 2){
+                        response.setStatus(200);
+                        PrintWriter out = response.getWriter();
+                        out.print("OK");
+                        out.flush();
+                        out.close();
+                        return;
+                    }
+                    divisionRecord.setMerOrderId(merOrderId);
+                    divisionRecord.setPayTime(new Date());
+                    divisionRecord.setState(2);
+                    divisionRecordService.updateById(divisionRecord);
+
                     //确认收货
                     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()));
+                            receive.setRcvAmount(new BigDecimal(divisionRecord.getAmount()).multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_EVEN).longValue() + "");
                             List<ReceiveUser> splitList = new ArrayList<>();
                             ReceiveUser receiveUser = new ReceiveUser();
                             receiveUser.setSplitUserId(divisionRecord.getMerchantNumber());
-                            receiveUser.setRcvSplitAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue()));
+                            receiveUser.setRcvSplitAmount(new BigDecimal(divisionRecord.getAmount()).multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_EVEN).longValue() + "");
                             splitList.add(receiveUser);
                             receive.setSplitList(splitList);
                             TrhRequest<Receive> request1 = new TrhRequest();
                             InterfaceResponse execute = request1.execute(receive, Receive.SERVICE_CODE);
                             if(!"0000".equals(execute.getCode())){
-                                System.err.println("确认收货" + execute.getMsg());
+                                logger.warn("确认收货" + execute.getMsg());
                             }
                             JSONObject jsonObject = JSON.parseObject(execute.getResult());
                             String status = jsonObject.getString("status");
                             if("2".equals(status)){
-                                System.err.println("确认收货失败");
+                                logger.warn("确认收货失败");
                             }
                             if("0".equals(status)){
-                                System.err.println("确认收货处理中");
+                                logger.warn("确认收货处理中");
                             }
                         }
-                    }, 15000);
+                    }, 60000);
                     response.setStatus(200);
                     PrintWriter out = response.getWriter();
                     out.print("OK");
@@ -621,7 +636,7 @@
                     out.close();
                 }
             } else {//验签失败业务处理逻辑
-                System.err.println("支付回调验签失败");
+                logger.warn("支付回调验签失败");
             }
         }catch (Exception e){
             e.printStackTrace();

--
Gitblit v1.7.1