From 46af9e53a6e76b6c0b8cc3291ac1d78e59370831 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 15 八月 2023 18:07:28 +0800
Subject: [PATCH] 更新管理页面
---
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java | 191 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 189 insertions(+), 2 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 acdb51d..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
@@ -1,12 +1,25 @@
package com.supersavedriving.driver.modular.system.service.impl;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+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.service.IAccountChangeDetailService;
+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;
+import com.supersavedriving.driver.modular.system.warpper.BalanceDetailWarpper;
+import com.supersavedriving.driver.modular.system.warpper.CommissionDetailListWarpper;
+import com.supersavedriving.driver.modular.system.warpper.CommissionDetailWarpper;
+import com.supersavedriving.driver.modular.system.warpper.IntegralIncomeAndExpensesWarpper;
+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;
/**
* 账户变动
@@ -15,6 +28,27 @@
*/
@Service
public class AccountChangeDetailServiceImpl extends ServiceImpl<AccountChangeDetailMapper, AccountChangeDetail> implements IAccountChangeDetailService {
+
+ @Autowired
+ private IDriverService driverService;
+
+ @Autowired
+ private ISystemConfigService systemConfigService;
+
+ @Autowired
+ private IRechargeRecordService rechargeRecordService;
+
+ @Autowired
+ private IOrderService orderService;
+
+ @Autowired
+ private IRevenueService revenueService;
+
+ @Autowired
+ private ICompanyFundFlowService companyFundFlowService;
+
+
+
/**
@@ -27,4 +61,157 @@
accountChangeDetail.setCreateTime(new Date());
this.baseMapper.insert(accountChangeDetail);
}
+
+
+ /**
+ * 获取积分收支明细
+ * @param driverId
+ * @param type
+ * @param pageNum
+ * @param pageSize
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public List<IntegralIncomeAndExpensesWarpper> queryDriverIntegralIncomeAndExpenses(Integer driverId, Integer type, Integer pageNum, Integer pageSize) throws Exception {
+ pageNum = (pageNum - 1) * pageSize;
+ return this.baseMapper.queryDriverIntegralIncomeAndExpenses(driverId, type, pageNum, pageSize);
+ }
+
+
+ /**
+ * 获取佣金明细列表
+ * @param driverId
+ * @param time
+ * @param pageNum
+ * @param pageSize
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public CommissionDetailListWarpper queryCommissionDetail(Integer driverId, String time, Integer pageNum, Integer pageSize) throws Exception {
+ pageNum = (pageNum - 1) * pageSize;
+ List<CommissionDetailWarpper> commissionDetailWarppers = this.baseMapper.queryCommissionDetail(driverId, time, pageNum, pageSize);
+ Double aDouble = this.baseMapper.queryCommissionDetailTotal(driverId, time);
+ CommissionDetailListWarpper commissionDetailListWarpper = new CommissionDetailListWarpper();
+ commissionDetailListWarpper.setList(commissionDetailWarppers);
+ commissionDetailListWarpper.setTotal(aDouble);
+ return commissionDetailListWarpper;
+ }
+
+ /**
+ * 获取账户余额明细
+ * @param driverId
+ * @param time
+ * @param type
+ * @param pageNum
+ * @param pageSize
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public List<BalanceDetailWarpper> queryBalanceDetail(Integer driverId, String time, Integer type, Integer pageNum, Integer pageSize) throws Exception {
+ pageNum = (pageNum - 1) * pageSize;
+ List<BalanceDetailWarpper> balanceDetailWarppers = this.baseMapper.queryBalanceDetail(driverId, time, type, pageNum, pageSize);
+ return balanceDetailWarppers;
+ }
+
+
+ /**
+ * 处理司机保险
+ */
+ @Override
+ public void deductionInsurance() {
+ SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 3));
+ if(null == systemConfig){
+ return;
+ }
+ JSONObject jsonObject = JSON.parseObject(systemConfig.getContent());
+ 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.compareTo(all) > 0){
+ continue;
+ }
+
+ double d = num1.doubleValue();
+ if(backgroundBalance > 0 && backgroundBalance < d){
+ d -= backgroundBalance;
+ driver.setBackgroundBalance(0D);
+ }else if(backgroundBalance >= d){
+ AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
+ accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5));
+ accountChangeDetail.setUserType(2);
+ accountChangeDetail.setUserId(driver.getId());
+ accountChangeDetail.setType(1);
+ accountChangeDetail.setChangeType(8);
+ accountChangeDetail.setOldData(new BigDecimal(driver.getBalance()).add(new BigDecimal(driver.getBackgroundBalance())).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
+ driver.setBackgroundBalance(driver.getBackgroundBalance() - d);
+ 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){
+ AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
+ accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5));
+ accountChangeDetail.setUserType(2);
+ accountChangeDetail.setUserId(driver.getId());
+ accountChangeDetail.setType(1);
+ accountChangeDetail.setChangeType(8);
+ 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);
+
+ 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", null, rechargeRecord.getId(), rechargeRecord.getOrderNumber(), d, 1);
+ if(fengzhang.getCode() == 10000){
+ 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", null, rechargeRecord.getId(), rechargeRecord.getOrderNumber(), surplusDividedAmount, 1);
+ if(fengzhang.getCode() == 10000){
+ rechargeRecord.setSurplusDividedAmount(0d);
+ rechargeRecordService.updateById(rechargeRecord);
+ d = new BigDecimal(d).subtract(new BigDecimal(surplusDividedAmount)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+ }else{
+ break;
+ }
+ }
+ }
+
+ }
+ }
+ 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