From 79d97c39f1d118824f91467feb9f4a55717fd0c0 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 26 七月 2024 14:03:41 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/IgoTravel into 2.0

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java |   27 ++++++++++++++++++++++-----
 1 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
index dc8cfd9..7d4bfa7 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
@@ -22,6 +22,7 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -156,9 +157,10 @@
 
             Double laveActivityMoney = driver1.getLaveActivityMoney();
             Double laveBusinessMoney = driver1.getLaveBusinessMoney();
-            if(laveActivityMoney.compareTo(payMoney) < 0){
+            //活动余额小于结算金额
+            if(null != laveActivityMoney && 0 < laveActivityMoney && laveActivityMoney.compareTo(payMoney) < 0){
                 driver1.setLaveActivityMoney(0D);
-                BigDecimal m = new BigDecimal(payMoney).subtract(new BigDecimal(laveActivityMoney));
+                BigDecimal m = new BigDecimal(payMoney).subtract(new BigDecimal(laveActivityMoney)).setScale(2, RoundingMode.HALF_EVEN);
                 driver1.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(m).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                 settlementRecord.setPayMoney(laveActivityMoney);
                 settlementRecord.setPaymentStatus(2);
@@ -175,8 +177,9 @@
                 settlementRecord1.setPayMoney(m.doubleValue());
                 settlementRecord1.setBalanceType(2);
                 this.insert(settlementRecord1);
-                
-            }else{
+            }
+            //活动余额大于结算金额
+            if(null != laveActivityMoney && 0 < laveActivityMoney && laveActivityMoney.compareTo(payMoney) >= 0){
                 driver1.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                 settlementRecord.setPaymentStatus(2);
                 settlementRecord.setPayType(payType);
@@ -185,6 +188,17 @@
                 this.updateById(settlementRecord);
                 balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, payMoney, settlementRecord.getType() + 2);
             }
+            if(null == laveActivityMoney || 0 == laveActivityMoney){
+                driver1.setLaveActivityMoney(0D);
+                driver1.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                settlementRecord.setPaymentStatus(2);
+                settlementRecord.setPayType(payType);
+                settlementRecord.setBalanceType(1);
+                settlementRecord.setPayTime(new Date());
+                this.updateById(settlementRecord);
+                balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, payMoney, settlementRecord.getType() + 2);
+            }
+            
             driver1.setBalance(new BigDecimal(driver1.getBalance()).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
 
             //添加交易明细
@@ -205,6 +219,7 @@
     public List<QueryHistoricalSettlement> queryHistoricalSettlement(Integer language, Integer driverId, Integer pageNum, Integer size) {
         pageNum = (pageNum - 1) * size;
         List<Map<String, Object>> list = this.baseMapper.queryHistoricalSettlement(driverId, pageNum, size);
+        Double aDouble = this.baseMapper.queryHistoricalSettlementTotal(driverId);
         List<QueryHistoricalSettlement> datas = new ArrayList<>();
         for (Map<String, Object> map : list) {
             QueryHistoricalSettlement queryHistoricalSettlement = new QueryHistoricalSettlement();
@@ -231,6 +246,7 @@
                         break;
                 }
             }
+            queryHistoricalSettlement.setTotalPrice(aDouble);
             datas.add(queryHistoricalSettlement);
         }
         return datas;
@@ -261,11 +277,11 @@
         w = w == 1 ? 7 : w - 1;
         int d = today.get(Calendar.DAY_OF_MONTH);
         if(null != settlementAllocation){
-            List<Map<String, Object>> list = settlementDetailService.queryGroupDriver();
             JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent());
             Integer type = jsonObject.getInteger("type");
             Integer day = jsonObject.getInteger("day");
             if(type == 2 && w == day){//周结算
+                List<Map<String, Object>> list = settlementDetailService.queryGroupDriver();
                 for (Map<String, Object> map : list) {
                     Integer driverId = Integer.valueOf(map.get("driverId").toString());
                     Double price = Double.valueOf(map.get("price").toString());
@@ -289,6 +305,7 @@
                 }
             }
             if(type == 3 && d == day){//月结算
+                List<Map<String, Object>> list = settlementDetailService.queryGroupDriver();
                 for (Map<String, Object> map : list) {
                     Integer driverId = Integer.valueOf(map.get("driverId").toString());
                     Double price = Double.valueOf(map.get("price").toString());

--
Gitblit v1.7.1