package com.supersavedriving.driver.modular.system.service.impl;
|
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.supersavedriving.driver.modular.system.dao.CashWithdrawalMapper;
|
import com.supersavedriving.driver.modular.system.model.CashWithdrawal;
|
import com.supersavedriving.driver.modular.system.model.Driver;
|
import com.supersavedriving.driver.modular.system.service.ICashWithdrawalService;
|
import com.supersavedriving.driver.modular.system.service.IDriverService;
|
import com.supersavedriving.driver.modular.system.util.ResultUtil;
|
import com.supersavedriving.driver.modular.system.util.UUIDUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Date;
|
|
/**
|
* @author zhibing.pu
|
* @date 2023/3/18 17:03
|
*/
|
@Service
|
public class CashWithdrawalServiceImpl extends ServiceImpl<CashWithdrawalMapper, CashWithdrawal> implements ICashWithdrawalService {
|
|
@Autowired
|
private IDriverService driverService;
|
|
|
|
@Override
|
public ResultUtil withdrawCash(Integer driverId, Integer type, Double money) throws Exception {
|
Driver driver = driverService.selectById(driverId);
|
if(type == 1 && (null == driver.getBalance() || driver.getBalance() < money)){
|
return ResultUtil.error("账户余额不足");
|
}
|
if(type == 2 && (null == driver.getCommission() || driver.getCommission() < money)){
|
return ResultUtil.error("佣金余额不足");
|
}
|
|
CashWithdrawal cashWithdrawal = new CashWithdrawal();
|
cashWithdrawal.setType(2);
|
cashWithdrawal.setUserDriverId(driverId);
|
cashWithdrawal.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
|
cashWithdrawal.setBusinessType(type == 1 ? 12 : 11);
|
cashWithdrawal.setAmount(money);
|
cashWithdrawal.setState(1);
|
cashWithdrawal.setCreateTime(new Date());
|
this.insert(cashWithdrawal);
|
if(type == 1){
|
driver.setBalance(driver.getBalance() - money);
|
}
|
if(type == 2){
|
driver.setCommission(driver.getCommission() - money);
|
}
|
driverService.updateById(driver);
|
return ResultUtil.success();
|
}
|
}
|