| | |
| | | |
| | | import com.agentdriving.driver.modular.system.dao.AccountChangeDetailMapper; |
| | | import com.agentdriving.driver.modular.system.model.AccountChangeDetail; |
| | | import com.agentdriving.driver.modular.system.model.Order; |
| | | import com.agentdriving.driver.modular.system.util.UUIDUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | |
| | | * 处理司机保险 |
| | | */ |
| | | @Override |
| | | public void deductionInsurance() { |
| | | public void deductionInsurance(Integer driverId) { |
| | | 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 couponBalance = driver.getCouponBalance(); |
| | | Double backgroundBalance = driver.getBackgroundBalance(); |
| | | Double balance = driver.getBalance(); |
| | | Double commission = driver.getCommission(); |
| | | double all = couponBalance + backgroundBalance + balance + commission; |
| | | if(num1 > all){ |
| | | continue; |
| | | } |
| | | Driver driver = driverService.selectById(driverId); |
| | | Double couponBalance = driver.getCouponBalance(); |
| | | Double backgroundBalance = driver.getBackgroundBalance(); |
| | | Double balance = driver.getBalance(); |
| | | Double commission = driver.getCommission(); |
| | | double all = couponBalance + backgroundBalance + balance + commission; |
| | | if(num1.compareTo(all) > 0){ |
| | | return; |
| | | } |
| | | |
| | | 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); |
| | | double d = num1.doubleValue(); |
| | | Double old = driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission(); |
| | | if(backgroundBalance > 0 && backgroundBalance < d){ |
| | | d -= backgroundBalance; |
| | | driver.setBackgroundBalance(0D); |
| | | } |
| | | if(backgroundBalance > 0 && backgroundBalance >= d){ |
| | | driver.setBackgroundBalance(driver.getBackgroundBalance() - d); |
| | | d = 0; |
| | | } |
| | | |
| | | if(d > 0){ |
| | | if(couponBalance > 0 && couponBalance < d){ |
| | | d -= couponBalance; |
| | | driver.setCouponBalance(0D); |
| | | } |
| | | 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.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); |
| | | driver.setBackgroundBalance(driver.getBackgroundBalance() - d); |
| | | accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); |
| | | accountChangeDetail.setExplain("收取保险费"); |
| | | accountChangeDetail.setCreateTime(new Date()); |
| | | this.insert(accountChangeDetail); |
| | | if(couponBalance > 0 && couponBalance >= d){ |
| | | driver.setCouponBalance(driver.getCouponBalance() - d); |
| | | d = 0; |
| | | } |
| | | |
| | | if(d > 0){ |
| | | if(couponBalance > 0 && couponBalance < 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.getCouponBalance()); |
| | | accountChangeDetail.setNewData(0D); |
| | | accountChangeDetail.setExplain("收取保险费"); |
| | | accountChangeDetail.setCreateTime(new Date()); |
| | | this.insert(accountChangeDetail); |
| | | d -= couponBalance; |
| | | driver.setCouponBalance(0D); |
| | | } |
| | | if(couponBalance > 0 && couponBalance >= 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.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); |
| | | driver.setCouponBalance(driver.getCouponBalance() - d); |
| | | accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); |
| | | accountChangeDetail.setExplain("收取保险费"); |
| | | accountChangeDetail.setCreateTime(new Date()); |
| | | this.insert(accountChangeDetail); |
| | | d = 0; |
| | | } |
| | | } |
| | | if(d > 0){ |
| | | if(commission > 0 && commission < 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.getCommission()); |
| | | accountChangeDetail.setNewData(0D); |
| | | accountChangeDetail.setExplain("收取保险费"); |
| | | accountChangeDetail.setCreateTime(new Date()); |
| | | this.insert(accountChangeDetail); |
| | | d -= commission; |
| | | driver.setCommission(0D); |
| | | } |
| | | if(commission > 0 && commission >= 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.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); |
| | | driver.setCommission(driver.getCommission() - d); |
| | | accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); |
| | | 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.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.setExplain("收取保险费"); |
| | | accountChangeDetail.setCreateTime(new Date()); |
| | | this.insert(accountChangeDetail); |
| | | d = 0; |
| | | } |
| | | } |
| | | |
| | | driverService.updateById(driver); |
| | | } |
| | | if(d > 0){ |
| | | if(commission > 0 && commission < d){ |
| | | d -= commission; |
| | | driver.setCommission(0D); |
| | | } |
| | | if(commission > 0 && commission >= d){ |
| | | driver.setCommission(driver.getCommission() - d); |
| | | d = 0; |
| | | } |
| | | } |
| | | if(d > 0){ |
| | | if(balance > 0 && balance < d){ |
| | | d -= commission; |
| | | driver.setBalance(0D); |
| | | return; |
| | | } |
| | | if(balance > 0 && balance >= d){ |
| | | driver.setBalance(driver.getBalance() - d); |
| | | d = 0; |
| | | } |
| | | } |
| | | |
| | | 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(old); |
| | | accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); |
| | | accountChangeDetail.setExplain("收取保险费"); |
| | | accountChangeDetail.setCreateTime(new Date()); |
| | | this.insert(accountChangeDetail); |
| | | driverService.updateById(driver); |
| | | } |
| | | } |