From db7fa6a91b9534ac90e219b6f554c54c43c83a5a Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期三, 16 八月 2023 09:28:15 +0800
Subject: [PATCH] update

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java |   72 +++++++++++++++++++-----------------
 1 files changed, 38 insertions(+), 34 deletions(-)

diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java
index c6679c0..2fb86c8 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java
@@ -5,10 +5,7 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.supersavedriving.driver.modular.system.dao.AccountChangeDetailMapper;
-import com.supersavedriving.driver.modular.system.model.AccountChangeDetail;
-import com.supersavedriving.driver.modular.system.model.Driver;
-import com.supersavedriving.driver.modular.system.model.RechargeRecord;
-import com.supersavedriving.driver.modular.system.model.SystemConfig;
+import com.supersavedriving.driver.modular.system.model.*;
 import com.supersavedriving.driver.modular.system.service.*;
 import com.supersavedriving.driver.modular.system.util.ResultUtil;
 import com.supersavedriving.driver.modular.system.util.UUIDUtil;
@@ -19,6 +16,8 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.List;
 
@@ -41,6 +40,12 @@
 
     @Autowired
     private IOrderService orderService;
+
+    @Autowired
+    private IRevenueService revenueService;
+
+    @Autowired
+    private ICompanyFundFlowService companyFundFlowService;
 
 
 
@@ -125,79 +130,71 @@
         Double num1 = jsonObject.getDouble("num1");
         List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("approvalStatus", 2).eq("status", 1));
         for (Driver driver : drivers) {
+            Double balance1 = revenueService.queryCompanyBalance();
             Double backgroundBalance = driver.getBackgroundBalance();
             Double balance = driver.getBalance();
             double all = backgroundBalance + balance;
-            if(num1 > all){
+            if(num1.compareTo(all) > 0){
                 continue;
             }
 
             double d = num1.doubleValue();
             if(backgroundBalance > 0 && backgroundBalance < d){
-                AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
-                accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
-                accountChangeDetail.setUserType(2);
-                accountChangeDetail.setUserId(driver.getId());
-                accountChangeDetail.setType(1);
-                accountChangeDetail.setChangeType(8);
-                accountChangeDetail.setOldData(driver.getBackgroundBalance());
-                accountChangeDetail.setNewData(0D);
-                accountChangeDetail.setExplain("收取保险费");
-                accountChangeDetail.setCreateTime(new Date());
-                this.insert(accountChangeDetail);
                 d -= backgroundBalance;
                 driver.setBackgroundBalance(0D);
-            }
-            if(backgroundBalance > 0 && backgroundBalance >= d){
+            }else if(backgroundBalance >= d){
                 AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
-                accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+                accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5));
                 accountChangeDetail.setUserType(2);
                 accountChangeDetail.setUserId(driver.getId());
                 accountChangeDetail.setType(1);
                 accountChangeDetail.setChangeType(8);
-                accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
+                accountChangeDetail.setOldData(new BigDecimal(driver.getBalance()).add(new BigDecimal(driver.getBackgroundBalance())).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
                 driver.setBackgroundBalance(driver.getBackgroundBalance() - d);
-                accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
+                accountChangeDetail.setNewData(new BigDecimal(driver.getBalance()).add(new BigDecimal(driver.getBackgroundBalance())).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
                 accountChangeDetail.setExplain("收取保险费");
                 accountChangeDetail.setCreateTime(new Date());
                 this.insert(accountChangeDetail);
                 d = 0;
             }
             if(d > 0){
-                if(balance > 0 && balance < d){
-                    continue;
-                }
                 if(balance > 0 && balance >= d){
                     AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
-                    accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+                    accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5));
                     accountChangeDetail.setUserType(2);
                     accountChangeDetail.setUserId(driver.getId());
                     accountChangeDetail.setType(1);
                     accountChangeDetail.setChangeType(8);
-                    accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
-                    driver.setBalance(driver.getBalance() - d);
-                    accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
+                    accountChangeDetail.setOldData(new BigDecimal(driver.getBalance()).add(new BigDecimal(driver.getBackgroundBalance())).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
+                    driver.setBalance(new BigDecimal(driver.getBalance()).subtract(new BigDecimal(d)).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
+                    accountChangeDetail.setNewData(new BigDecimal(driver.getBalance()).add(new BigDecimal(driver.getBackgroundBalance())).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
                     accountChangeDetail.setExplain("收取保险费");
                     accountChangeDetail.setCreateTime(new Date());
                     this.insert(accountChangeDetail);
-                    d = 0;
+
+                    Revenue revenue = new Revenue();
+                    revenue.setType(3);
+                    revenue.setUserType(4);
+                    revenue.setAmount(d);
+                    revenue.setCreateTime(new Date());
+                    revenueService.insert(revenue);
 
                     List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 2).eq("userId", driver.getId()).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime"));
                     for (RechargeRecord rechargeRecord : rechargeRecords) {
                         Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount();
                         if(surplusDividedAmount.compareTo(d) >= 0){
-                            ResultUtil fengzhang = orderService.fengzhang(3, null, "553021440975", rechargeRecord.getId().longValue(), rechargeRecord.getOrderNumber(), d, 1);
+                            ResultUtil fengzhang = orderService.fengzhang(3, null, "553021440975", null, rechargeRecord.getId(), rechargeRecord.getOrderNumber(), d, 1);
                             if(fengzhang.getCode() == 10000){
-                                rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - d);
+                                rechargeRecord.setSurplusDividedAmount(new BigDecimal(rechargeRecord.getSurplusDividedAmount()).subtract(new BigDecimal(d)).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
                                 rechargeRecordService.updateById(rechargeRecord);
                             }
                             break;
                         }else{
-                            ResultUtil fengzhang = orderService.fengzhang(3, null, "553021440975", rechargeRecord.getId().longValue(), rechargeRecord.getOrderNumber(), surplusDividedAmount, 1);
+                            ResultUtil fengzhang = orderService.fengzhang(3, null, "553021440975", null, rechargeRecord.getId(), rechargeRecord.getOrderNumber(), surplusDividedAmount, 1);
                             if(fengzhang.getCode() == 10000){
                                 rechargeRecord.setSurplusDividedAmount(0d);
                                 rechargeRecordService.updateById(rechargeRecord);
-                                d -= surplusDividedAmount;
+                                d = new BigDecimal(d).subtract(new BigDecimal(surplusDividedAmount)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                             }else{
                                 break;
                             }
@@ -206,8 +203,15 @@
 
                 }
             }
-
             driverService.updateById(driver);
+
+            CompanyFundFlow companyFundFlow = new CompanyFundFlow();
+            companyFundFlow.setType(4);
+            companyFundFlow.setObjectType(1);
+            companyFundFlow.setBalance(new BigDecimal(balance1));
+            companyFundFlow.setMoney(new BigDecimal(num1));
+            companyFundFlow.setCreateTime(new Date());
+            companyFundFlowService.insert(companyFundFlow);
         }
     }
 }

--
Gitblit v1.7.1