| | |
| | | package com.supersavedriving.driver.modular.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.supersavedriving.driver.modular.system.dao.YouTuiDriverMapper; |
| | | import com.supersavedriving.driver.modular.system.model.AccountChangeDetail; |
| | | import com.supersavedriving.driver.modular.system.model.Driver; |
| | | import com.supersavedriving.driver.modular.system.model.YouTui; |
| | | import com.supersavedriving.driver.modular.system.model.YouTuiDriver; |
| | | import com.supersavedriving.driver.modular.system.dao.YouTuiDriverMapper; |
| | | import com.supersavedriving.driver.modular.system.service.IAccountChangeDetailService; |
| | | import com.supersavedriving.driver.modular.system.service.IDriverService; |
| | | import com.supersavedriving.driver.modular.system.service.IYouTuiDriverService; |
| | | import com.supersavedriving.driver.modular.system.service.IYouTuiService; |
| | | import com.supersavedriving.driver.modular.system.util.ResultUtil; |
| | | import com.supersavedriving.driver.modular.system.util.UUIDUtil; |
| | | import com.supersavedriving.driver.modular.system.warpper.DriverYouTuiListWarpper; |
| | | import com.supersavedriving.driver.modular.system.warpper.DriverYouTuiWarpper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 用户优推数据 |
| | |
| | | */ |
| | | @Service |
| | | public class YouTuiDriverServiceImpl extends ServiceImpl<YouTuiDriverMapper, YouTuiDriver> implements IYouTuiDriverService { |
| | | |
| | | @Autowired |
| | | private IYouTuiService youTuiService; |
| | | |
| | | @Autowired |
| | | private IDriverService driverService; |
| | | |
| | | @Autowired |
| | | private IAccountChangeDetailService accountChangeDetailService; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取司机兑换优推记录 |
| | | * @param driverId |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public List<DriverYouTuiListWarpper> queryDriverYouTuiList(Integer driverId) throws Exception { |
| | | List<Map<String, String>> list = this.baseMapper.queryRedemptionDate(driverId); |
| | | List<DriverYouTuiListWarpper> driverYouTuiListWarppers = new ArrayList<>(); |
| | | for (Map<String, String> map : list) { |
| | | String createTime = map.get("createTime"); |
| | | List<DriverYouTuiWarpper> driverYouTuiWarppers = this.baseMapper.queryYouTuiDriverList(driverId, createTime); |
| | | DriverYouTuiListWarpper driverYouTuiListWarpper = new DriverYouTuiListWarpper(); |
| | | driverYouTuiListWarpper.setMonth(createTime); |
| | | driverYouTuiListWarpper.setList(driverYouTuiWarppers); |
| | | driverYouTuiListWarppers.add(driverYouTuiListWarpper); |
| | | } |
| | | return driverYouTuiListWarppers; |
| | | } |
| | | |
| | | /** |
| | | * 获取司机兑换优推记录 |
| | | * @param driverId |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public List<DriverYouTuiWarpper> queryDriverYouTuiList1(Integer driverId) throws Exception { |
| | | return this.baseMapper.queryYouTuiDriverList(driverId, null); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取司机优推数据 |
| | | * @param driverId |
| | | * @param pageNum |
| | | * @param pageSize |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public List<DriverYouTuiWarpper> queryDriverYouTui(Integer driverId, Integer pageNum, Integer pageSize) throws Exception { |
| | | pageNum = (pageNum - 1) * pageSize; |
| | | return this.baseMapper.queryDriverYouTui(driverId, pageNum, pageSize); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取待兑换的优推数据 |
| | | * @param pageNum |
| | | * @param pageSize |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public List<DriverYouTuiWarpper> queryAllYouTui(Integer pageNum, Integer pageSize) throws Exception { |
| | | pageNum = (pageNum - 1) * pageSize; |
| | | return this.baseMapper.queryAllYouTui(pageNum, pageSize); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 司机兑换优推数据 |
| | | * @param driverId |
| | | * @param id |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public ResultUtil redeemBenefits(Integer driverId, Integer id) throws Exception { |
| | | YouTui youTui = youTuiService.selectById(id); |
| | | if(youTui.getStatus() != 1){ |
| | | return ResultUtil.error("优推已下架"); |
| | | } |
| | | Driver driver = driverService.selectById(driverId); |
| | | if(null == driver.getIntegral() || youTui.getIntegral() > driver.getIntegral()){ |
| | | return ResultUtil.error("积分不足"); |
| | | } |
| | | |
| | | AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); |
| | | accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5)); |
| | | accountChangeDetail.setUserType(2); |
| | | accountChangeDetail.setUserId(driverId); |
| | | accountChangeDetail.setType(2); |
| | | accountChangeDetail.setOldData(driver.getIntegral().doubleValue()); |
| | | accountChangeDetail.setExplain("兑换优推"); |
| | | accountChangeDetail.setCreateTime(new Date()); |
| | | driver.setIntegral(driver.getIntegral() - youTui.getIntegral()); |
| | | accountChangeDetail.setNewData(driver.getIntegral().doubleValue()); |
| | | driverService.updateById(driver); |
| | | accountChangeDetailService.insert(accountChangeDetail); |
| | | |
| | | YouTuiDriver youTuiDriver = new YouTuiDriver(); |
| | | youTuiDriver.setDriverId(driverId); |
| | | youTuiDriver.setYouTuiId(id); |
| | | youTuiDriver.setIntegral(youTui.getIntegral()); |
| | | youTuiDriver.setType(youTui.getType()); |
| | | if(youTui.getType() == 1){//次数 |
| | | youTuiDriver.setSurplusQuantity(youTui.getNumber()); |
| | | } |
| | | if(youTui.getType() == 2){//小时 |
| | | youTuiDriver.setEndTime(new Date(System.currentTimeMillis() + (youTui.getNumber() * 60 * 60 * 1000))); |
| | | } |
| | | youTuiDriver.setState(1); |
| | | youTuiDriver.setFailureTime(new Date(System.currentTimeMillis() + (youTui.getEffectiveTime() * 24 * 60 * 60 * 1000))); |
| | | youTuiDriver.setCreateTime(new Date()); |
| | | this.insert(youTuiDriver); |
| | | return ResultUtil.success(); |
| | | } |
| | | |
| | | @Override |
| | | public void editState() throws Exception { |
| | | this.baseMapper.editState(); |
| | | } |
| | | } |