package com.supersavedriving.driver.modular.system.service.impl;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.mapper.Wrapper;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.supersavedriving.driver.core.util.ToolUtil;
|
import com.supersavedriving.driver.modular.system.dao.AccountChangeDetailMapper;
|
import com.supersavedriving.driver.modular.system.dao.RevenueMapper;
|
import com.supersavedriving.driver.modular.system.model.*;
|
import com.supersavedriving.driver.modular.system.service.IAppUserService;
|
import com.supersavedriving.driver.modular.system.service.IDriverService;
|
import com.supersavedriving.driver.modular.system.service.IOrderService;
|
import com.supersavedriving.driver.modular.system.service.IRevenueService;
|
import com.supersavedriving.driver.modular.system.warpper.CommissionListWarpper;
|
import com.supersavedriving.driver.modular.system.warpper.PerformanceRankingWarpper;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 收入记录
|
* @author pzb
|
* @Date 2023/2/25 16:12
|
*/
|
@Service
|
public class RevenueServiceImpl extends ServiceImpl<RevenueMapper, Revenue> implements IRevenueService {
|
|
@Autowired
|
private IOrderService orderService;
|
|
@Autowired
|
private IAppUserService appUserService;
|
|
@Autowired
|
private IDriverService driverService;
|
|
@Resource
|
private AccountChangeDetailMapper accountChangeDetailMapper;
|
|
|
|
|
|
|
/**
|
* 获取司机佣金记录
|
* @param driverId
|
* @param time
|
* @param pageNum
|
* @param pageSize
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public List<CommissionListWarpper> queryCommissionList(Integer driverId, String time, Integer pageNum, Integer pageSize,Integer type) throws Exception {
|
pageNum = (pageNum - 1) * pageSize;
|
ArrayList<Integer> objects = new ArrayList<>();
|
objects.add(1);
|
objects.add(4);
|
objects.add(5);
|
objects.add(7);
|
Wrapper<AccountChangeDetail> wrapper = new EntityWrapper<AccountChangeDetail>().eq("userType", 2)
|
.eq("userId", driverId).eq("type",1).in("changeType",objects);
|
if(ToolUtil.isNotEmpty(type)){
|
wrapper.eq("changeType",type);
|
}
|
if(ToolUtil.isNotEmpty(time)){
|
wrapper.eq("DATE_FORMAT(createTime, '%Y年%m月')", time);
|
}
|
List<AccountChangeDetail> revenues = accountChangeDetailMapper.selectList(wrapper.last(" order by createTime desc limit " + pageNum + ", " + pageSize));
|
List<CommissionListWarpper> list = new ArrayList<>();
|
for (AccountChangeDetail revenue : revenues) {
|
CommissionListWarpper commissionListWarpper = new CommissionListWarpper();
|
commissionListWarpper.setCreateTime(revenue.getCreateTime().getTime());
|
commissionListWarpper.setUserType(revenue.getChangeType());
|
commissionListWarpper.setMoney(revenue.getOldData());
|
if(revenue.getChangeType()!=4){
|
commissionListWarpper.setAmount(revenue.getNewData()-revenue.getOldData());
|
}else {
|
commissionListWarpper.setAmount(revenue.getOldData()-revenue.getNewData());
|
}
|
|
list.add(commissionListWarpper);
|
}
|
return list;
|
}
|
|
/**
|
* 获取司机总收入
|
* @param driverId
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public Double queryTotalAmount(Integer driverId) throws Exception {
|
return this.baseMapper.queryTotalAmount(driverId);
|
}
|
|
|
/**
|
* 获取司机佣金收入排行
|
* @param time
|
* @param dayType
|
* @return
|
*/
|
@Override
|
public List<PerformanceRankingWarpper> queryDriverRank(Integer type, String time, Integer dayType) {
|
return this.baseMapper.queryDriverRank(type, time, dayType);
|
}
|
|
|
/**
|
* 获取代理商账户余额
|
* @param companyId
|
* @return
|
*/
|
@Override
|
public Double queryAgentBalance(Integer companyId) {
|
return this.baseMapper.queryAgentBalance(companyId);
|
}
|
|
|
/**
|
* 获取平台账户余额
|
* @return
|
*/
|
@Override
|
public Double queryCompanyBalance() {
|
return this.baseMapper.queryCompanyBalance();
|
}
|
}
|