package com.stylefeng.guns.modular.system.service.impl; import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.modular.system.dao.DriverActivityEachReturnMapper; import com.stylefeng.guns.modular.system.dao.DriverActivityHistoryMapper; import com.stylefeng.guns.modular.system.dao.TDriverMapper; import com.stylefeng.guns.modular.system.dao.TOrderPrivateCarMapper; import com.stylefeng.guns.modular.system.model.DriverActivityEachReturn; import com.stylefeng.guns.modular.system.model.DriverActivityHistory; import com.stylefeng.guns.modular.system.service.IDriverActivityEachReturnService; import com.stylefeng.guns.modular.system.service.IIncomeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Map; /** *

* 司机活动-单单返 服务实现类 *

* * @author stylefeng * @since 2021-04-29 */ @Service public class DriverActivityEachReturnServiceImpl extends ServiceImpl implements IDriverActivityEachReturnService { @Autowired private TOrderPrivateCarMapper tOrderPrivateCarMapper; @Autowired private DriverActivityHistoryMapper driverActivityHistoryMapper; @Autowired private IIncomeService incomeService; @Autowired private TDriverMapper driverMapper; @Override public List> findPage(Page> page, String name) { return this.baseMapper.findPage(page,name); } @Override public void startActivity(Integer driverActivityEachReturnId,Integer state) { this.baseMapper.updateStateById(driverActivityEachReturnId,state); } @Override public void settlement() { Calendar cal=Calendar.getInstance(); cal.add(Calendar.DATE,-1); Date yesterday=cal.getTime(); SimpleDateFormat sp=new SimpleDateFormat("yyyy-MM-dd"); String yesterdayStr=sp.format(yesterday); //查询要结算的单单返活动 List list=this.baseMapper.selectSettlementActivity(); for (DriverActivityEachReturn driverActivityEachReturn : list) { //活动结束时间 Date endTime = driverActivityEachReturn.getEndTime(); //要查询的订单起始时间 String orderBeginTimeStr=yesterdayStr+" "+driverActivityEachReturn.getStart(); //要查询得订单结束时间 String orderEndTimeStr=yesterdayStr+" "+driverActivityEachReturn.getEnd(); //查询昨天满足活动的司机信息 订单状态8:待评价9:已完成 且 未删除 //开始服务时间 between [orderBeginTimeStr,orderEndTimeStr] List> drivers = tOrderPrivateCarMapper.selectDriverOrderNumByTime(orderBeginTimeStr, orderEndTimeStr); if(null!=drivers && drivers.size()>0){ for (Map driver : drivers) { Integer driverId=(Integer) driver.get("driverId"); Integer orderNum=((Number) driver.get("orderNum")).intValue(); Double money=new BigDecimal(orderNum).multiply(new BigDecimal(driverActivityEachReturn.getMoney())).setScale(1, BigDecimal.ROUND_HALF_DOWN).doubleValue(); DriverActivityHistory driverActivityHistory=new DriverActivityHistory(); driverActivityHistory.setInsertTime(new Date()); driverActivityHistory.setDay(yesterday); driverActivityHistory.setDriverId(driverId); driverActivityHistory.setType(5); driverActivityHistory.setCarryOut(2); driverActivityHistory.setMoney(money); driverActivityHistoryMapper.insert(driverActivityHistory); //添加司机收入明细 incomeService.saveData(2,driverId,1,driverActivityEachReturn.getId(),null,money); //修改司机活动收入 BigDecimal changeMoney=new BigDecimal(money); driverMapper.updateBalanceAndActivityMoney(driverId,changeMoney); } } //如果是最后一次结算,修改活动状态为已结束 if(DateUtil.getDay(new Date()).equals(DateUtil.getDay(endTime))){ this.baseMapper.updateStateById(driverActivityEachReturn.getId(),2); } } } }