puzhibing
2023-08-16 d5b3e5a413bcfccba294793ee093722f31b2448a
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java
@@ -19,6 +19,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;
@@ -128,7 +130,7 @@
            Double backgroundBalance = driver.getBackgroundBalance();
            Double balance = driver.getBalance();
            double all = backgroundBalance + balance;
            if(num1 > all){
            if(num1.compareTo(all) > 0){
                continue;
            }
@@ -136,17 +138,16 @@
            if(backgroundBalance > 0 && backgroundBalance < d){
                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());
                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());
                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);
@@ -155,35 +156,34 @@
            if(d > 0){
                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(all);
                    driver.setBalance(driver.getBalance() - d);
                    accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance());
                    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;
                    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;
                            }