Pu Zhibing
7 天以前 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/PlatformController.java
@@ -2,9 +2,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
@@ -12,8 +10,6 @@
import com.stylefeng.guns.modular.system.vo.PlatformVO;
import com.stylefeng.guns.modular.system.vo.WaterMoneyVO;
import com.stylefeng.guns.modular.system.vo.WaterVO;
import io.swagger.models.auth.In;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -21,13 +17,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.*;
import java.util.stream.Collectors;
@@ -48,26 +41,28 @@
    private ITOrderPrivateCarService orderPrivateCarService;
    @Autowired
    private ITOrderLogisticsService orderLogisticsService;
    /**
     * 跳转到首页
     */
    @RequestMapping("/commission")
    public String index( Model model) {
        return PREFIX + "commission.html";
    }
    @RequestMapping("/water")
    public String watter( Model model) {
        return PREFIX + "watter.html";
    }
    @Autowired
    private IIncomeService incomeService;
    @Autowired
    private ISettlementRecordService settlementRecordService;
    @Autowired
    private ISettlementDetailService settlementDetailService;
    @Autowired
    private ITDriverService driverService;
    /**
     * 第三方流水统计获取列表
     */
    @Autowired
    private ITPubTransactionDetailsService pubTransactionDetailsService;
    @Autowired
    private ITPubWithdrawalService pubWithdrawalService;
    @Autowired
    private IPaymentRecordService paymentRecordService;
    @Autowired
    private ITUserService appUserService;
    @Autowired
    private IOrderCancelService orderCancelService;
    public static void main(String[] args) {
        // 获取今天的日期
@@ -99,7 +94,18 @@
    }
    /**
     * 跳转到首页
     */
    @RequestMapping("/commission")
    public String index( Model model) {
        return PREFIX + "commission.html";
    }
    @RequestMapping("/water")
    public String watter( Model model) {
        return PREFIX + "watter.html";
    }
    /**
     *
@@ -128,7 +134,7 @@
            LocalDate e = LocalDate.parse(endTime);
            start = s.atStartOfDay();
            end = e.atTime(LocalTime.MAX);
        }else if (time!=null) {
        }else{
            switch (time) {
                case 1:
                    // 获取当天的 00:00:00 和 23:59:59
@@ -172,43 +178,60 @@
        }
        List<Income> incomes = new ArrayList<>();
        List<SettlementDetail> settlementDetails = new ArrayList<>();
        if (time == null){
        if (time == 5 && !StringUtils.hasLength(insertTime)){
            incomes = tIncomeService.selectList(new EntityWrapper<Income>()
                    .eq("userType", 1)
                    .eq("objectId",1)
                    .ne("type", 1)
                    .isNotNull("orderType"));
        }else{
            if (time == 5 && !StringUtils.hasLength(insertTime)){
                incomes = tIncomeService.selectList(new EntityWrapper<Income>()
                        .eq("userType", 1)
                        .eq("objectId",1)
                        .ne("type", 1)
                        .isNotNull("orderType"));
            }else{
                incomes = tIncomeService.selectList(new EntityWrapper<Income>()
                        .eq("userType", 1)
                        .eq("objectId",1)
                        .ne("type", 1)
                        .isNotNull("orderType")
                        .between("insertTime", start, end));
            }
            incomes = tIncomeService.selectList(new EntityWrapper<Income>()
                    .eq("userType", 1)
                    .eq("objectId",1)
                    .ne("type", 1)
                    .isNotNull("orderType")
                    .between("insertTime", start, end));
        }
        EntityWrapper<SettlementDetail> settlementDetailEntityWrapper = new EntityWrapper<>();
        if (state!=null && state == 2){
            List<SettlementRecord> paymentStatus = settlementRecordService.selectList(new EntityWrapper<SettlementRecord>().eq("paymentStatus", 1));
            if(paymentStatus.size() > 0){
                settlementDetailEntityWrapper.in("settlementRecordId", paymentStatus.stream().map(SettlementRecord::getId).collect(Collectors.toList()));
            }else{
                settlementDetailEntityWrapper.eq("settlementRecordId", 0);
            }
        }else if (state!=null && state == 1){
            List<SettlementRecord> paymentStatus = settlementRecordService.selectList(new EntityWrapper<SettlementRecord>().eq("paymentStatus", 2));
            if(paymentStatus.size() > 0){
                settlementDetailEntityWrapper.in("settlementRecordId", paymentStatus.stream().map(SettlementRecord::getId).collect(Collectors.toList()));
            }else{
                settlementDetailEntityWrapper.eq("settlementRecordId", 0);
            }
        }
        if (time == 5 && !StringUtils.hasLength(insertTime)){
        }else{
            settlementDetailEntityWrapper.between("createTime", start, end);
        }
        settlementDetails = settlementDetailService.selectList(settlementDetailEntityWrapper);
        List<PlatformVO> res = new ArrayList<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Map<Integer, SettlementRecord> settlementRecordMap = settlementRecordService.selectList(new EntityWrapper<SettlementRecord>())
                .stream()
                .collect(Collectors.toMap(SettlementRecord::getId, user -> user));
        Map<Integer, TOrderPrivateCar> orderPrivateCarMap = orderPrivateCarService.selectList(new EntityWrapper<TOrderPrivateCar>())
                .stream()
                .collect(Collectors.toMap(TOrderPrivateCar::getId, user -> user));
        Map<Integer, TOrderLogistics> orderLogisticsRecordMap = orderLogisticsService.selectList(new EntityWrapper<TOrderLogistics>())
                .stream()
                .collect(Collectors.toMap(TOrderLogistics::getId, user -> user));
        // 已结算金额
        BigDecimal balance = new BigDecimal("0");
        // 未结算金额
        BigDecimal unBalance = new BigDecimal("0");
        // 查询订单是否已结算
        // 专车订单结算明细
        List<SettlementDetail> privateCar = settlementDetails.stream().filter(t -> t.getOrderType() == 1).collect(Collectors.toList());
        // 小件物流结算明细
        List<SettlementDetail> xjwl = settlementDetails.stream().filter(t -> t.getOrderType() == 4).collect(Collectors.toList());
        // 查询已结算的订单
        // 查询所有已结算的订单
        for (Income income : incomes) {
            PlatformVO platformVO = new PlatformVO();
            platformVO.setState(1);
@@ -218,42 +241,16 @@
                        continue;
                    }
                    // 查询订单信息
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(income.getIncomeId());
//                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(income.getIncomeId());
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarMap.get(income.getIncomeId());
                    if (tOrderPrivateCar==null){
                        continue;
                    }
                    platformVO.setCode(tOrderPrivateCar.getOrderNum());
                    TDriver tDriver = driverService.selectById(tOrderPrivateCar.getDriverId());
                    if (tDriver != null){
                        platformVO.setDriverName(tDriver.getFirstName()+tDriver.getLastName());
                        platformVO.setDriverPhone(tDriver.getPhone());
                    }
                    platformVO.setRemark(tOrderPrivateCar.getRemark());
                    if (income.getInsertTime()!=null){
                        platformVO.setEndTime(format.format(income.getInsertTime()));
                    }
                    platformVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
                    String string = income.getMoney().toString();
                    BigDecimal bigDecimal1 = new BigDecimal(string);
                    platformVO.setMoney(bigDecimal1);
                    if (tOrderPrivateCar.getPayType() == null){
                    platformVO.setMoney(new BigDecimal(income.getMoney()));
                    if (tOrderPrivateCar.getState()!=10 && tOrderPrivateCar.getPayType() == null){
                        continue;
                    }
                    switch (tOrderPrivateCar.getPayType()){
                        case 1:
                            platformVO.setPayType("手机支付");
                            break;
                        case 2:
                            platformVO.setPayType("银行卡支付");
                            break;
                        case 3:
                            platformVO.setPayType("余额支付");
                            break;
                        case 4:
                            platformVO.setPayType("现金支付");
                            break;
                    }
                    // 专车订单
                    balance = balance.add(new BigDecimal(income.getMoney()));
                    res.add(platformVO);
@@ -264,80 +261,43 @@
                    }
                    // 小件物流
                    // 查询订单信息
                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(income.getIncomeId());
//                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(income.getIncomeId());
                    TOrderLogistics tOrderLogistics = orderLogisticsRecordMap.get(income.getIncomeId());
                    if (tOrderLogistics==null){
                        continue;
                    }
                    platformVO.setCode(tOrderLogistics.getOrderNum());
                    TDriver tDriver1 = driverService.selectById(tOrderLogistics.getDriverId());
                    if (tDriver1!=null){
                        platformVO.setDriverName(tDriver1.getFirstName()+tDriver1.getLastName());
                        platformVO.setDriverPhone(tDriver1.getPhone());
                    }
                    platformVO.setRemark(tOrderLogistics.getRemark());
                    platformVO.setMoney(new BigDecimal(income.getMoney()));
                    if (income.getInsertTime()!=null){
                        platformVO.setEndTime(format.format(income.getInsertTime()));
                    }
                    platformVO.setInsertTime(format.format(tOrderLogistics.getInsertTime()));
                    if (tOrderLogistics.getPayType() == null){
                    if (tOrderLogistics.getState()!=10 && tOrderLogistics.getPayType() == null){
                        continue;
                    }
                    switch (tOrderLogistics.getPayType()){
                        case 1:
                            platformVO.setPayType("手机支付");
                            break;
                        case 2:
                            platformVO.setPayType("银行卡支付");
                            break;
                        case 3:
                            platformVO.setPayType("余额支付");
                            break;
                        case 4:
                            platformVO.setPayType("现金支付");
                            break;
                    }
                    // 专车订单
                    balance = balance.add(new BigDecimal(income.getMoney()));
                    res.add(platformVO);
                    break;
            }
        }
        EntityWrapper<SettlementDetail> settlementDetailEntityWrapper = new EntityWrapper<>();
        if (time == 5 && !StringUtils.hasLength(insertTime)){
        }else{
            settlementDetailEntityWrapper.between("createTime", start, end);
        }
        settlementDetails = settlementDetailService.selectList(settlementDetailEntityWrapper);
        // 查询所有现金支付的订单 再根据结算主表判断是否已结算
        // 查询所有现金支付的订单
        for (SettlementDetail settlementDetail : settlementDetails) {
            PlatformVO platformVO = new PlatformVO();
            switch (settlementDetail.getOrderType()){
                case 1:
                    // 专车订单
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(settlementDetail.getOrderId());
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarMap.get(settlementDetail.getOrderId());
                    if (tOrderPrivateCar==null){
                        continue;
                    }
                    platformVO.setCode(tOrderPrivateCar.getOrderNum());
                    TDriver tDriver = driverService.selectById(tOrderPrivateCar.getDriverId());
                    if (tDriver!=null){
                        platformVO.setDriverName(tDriver.getFirstName()+tDriver.getLastName());
                        platformVO.setDriverPhone(tDriver.getPhone());
                    }
                    platformVO.setRemark(tOrderPrivateCar.getRemark());
                    platformVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
                    String string = settlementDetail.getPrice().toString();
                    BigDecimal bigDecimal1 = new BigDecimal(string);
                    platformVO.setMoney(bigDecimal1);
                    platformVO.setPayType("现金支付");
                    if (settlementDetail.getSettlementRecordId()!=null){
                        SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
                        SettlementRecord settlementRecord = settlementRecordMap.get(settlementDetail.getSettlementRecordId());
                        if (settlementRecord.getPaymentStatus()!=null && settlementRecord.getPaymentStatus()==2){
                            if (state!=null && state!=1){
                                continue;
@@ -345,7 +305,7 @@
                            // 已结算
                            platformVO.setState(1);
                            balance = balance.add(new BigDecimal(settlementDetail.getPrice()));
                            platformVO.setEndTime(format.format(settlementRecord.getDay()));
                            platformVO.setEndTime(format.format(settlementRecord.getPayTime()));
                        }else{
                            // 未结算
                            if (state!=null && state!=2){
@@ -353,7 +313,6 @@
                            }
                            platformVO.setState(2);
                            unBalance = unBalance.add(new BigDecimal(settlementDetail.getPrice()));
                            platformVO.setEndTime(format.format(settlementRecord.getDay()));
                        }
                    }else{
                        // 未结算
@@ -362,30 +321,21 @@
                        }
                        unBalance = unBalance.add(new BigDecimal(settlementDetail.getPrice()));
                    }
                    res.add(platformVO);
                    break;
                case 4:
                    // 小件物流
                    // 查询订单信息
                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(settlementDetail.getOrderId());
                    TOrderLogistics tOrderLogistics = orderLogisticsRecordMap.get(settlementDetail.getOrderId());
                    if (tOrderLogistics==null){
                        continue;
                    }
                    platformVO.setCode(tOrderLogistics.getOrderNum());
                    TDriver tDriver1 = driverService.selectById(tOrderLogistics.getDriverId());
                    if (tDriver1!=null){
                        platformVO.setDriverName(tDriver1.getFirstName()+tDriver1.getLastName());
                        platformVO.setDriverPhone(tDriver1.getPhone());
                    }
                    platformVO.setRemark(tOrderLogistics.getRemark());
                    String string1 = settlementDetail.getPrice().toString();
                    BigDecimal bigDecimal2 = new BigDecimal(string1);
                    platformVO.setMoney(bigDecimal2);
                    platformVO.setInsertTime(format.format(tOrderLogistics.getInsertTime()));
                    platformVO.setPayType("现金支付");
                    if (settlementDetail.getSettlementRecordId()!=null){
                        SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
                        SettlementRecord settlementRecord = settlementRecordMap.get(settlementDetail.getSettlementRecordId());
                        if (settlementRecord.getPaymentStatus()!=null && settlementRecord.getPaymentStatus()==2){
                            if (state!=null && state!=1){
                                continue;
@@ -435,626 +385,7 @@
     */
    @RequestMapping(value = "/water/getCount")
    @ResponseBody
    public Object getCount1(Integer time,String insertTime,Integer payType,Integer type) {
        if (payType!=null){
            switch (payType){
                case 1:
                    payType = 2;
                    break;
                case 2:
                    payType = 1;
                    break;
            }
        }
        if (time == null){
            time = 1;
        }
        String beginTime = null;
        String endTime = null;
        LocalDateTime start =null;
        LocalDateTime end =null;
        // 获取当前日期
        LocalDate today = LocalDate.now();
        if (ToolUtil.isNotEmpty(insertTime)){
            beginTime = insertTime.split(" - ")[0];
            endTime = insertTime.split(" - ")[1];
            LocalDate s = LocalDate.parse(beginTime);
            LocalDate e = LocalDate.parse(endTime);
            start = s.atStartOfDay();
            end = e.atTime(LocalTime.MAX);
        }else if (time!=null) {
            switch (time) {
                case 1:
                    // 获取当天的 00:00:00 和 23:59:59
                    LocalDateTime startOfDay = today.atStartOfDay();
                    LocalDateTime endOfDay = today.atTime(LocalTime.MAX);
                    start = startOfDay;
                    end = endOfDay;
                    break;
                case 2:
                    // 获取本周第一天的日期和时间
                    LocalDate firstDayOfWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
                    LocalDateTime startOfWeek = firstDayOfWeek.atStartOfDay();
                    // 获取本周最后一天的日期和时间
                    LocalDate lastDayOfWeek = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
                    LocalDateTime endOfWeek = lastDayOfWeek.atTime(LocalTime.MAX);
                    start = startOfWeek;
                    end = endOfWeek;
                    break;
                case 3:
                    LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
                    LocalDateTime startOfMonth = firstDayOfMonth.atStartOfDay();
                    // 获取本月最后一天的日期和时间
                    LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());
                    LocalDateTime endOfMonth = lastDayOfMonth.atTime(LocalTime.MAX);
                    start = startOfMonth;
                    end = endOfMonth;
                    break;
                case 4:
                    // 获取本年第一天的日期和时间
                    LocalDate firstDayOfYear = LocalDate.of(today.getYear(), Month.JANUARY, 1);
                    LocalDateTime startOfYear = firstDayOfYear.atStartOfDay();
                    // 获取本年最后一天的日期和时间
                    LocalDate lastDayOfYear = LocalDate.of(today.getYear(), Month.DECEMBER, 31);
                    LocalDateTime endOfYear = lastDayOfYear.atTime(LocalTime.MAX);
                    start = startOfYear;
                    end = endOfYear;
                    break;
            }
        }
        // 用户小件物流订单记录
        List<TOrderPrivateCar> tOrderPrivateCars = new ArrayList<>();
        List<TOrderLogistics> tOrderLogistics = new ArrayList<>();
        // 用户充值
        List<TPubTransactionDetails> tPubTransactionDetails = new ArrayList<>();
        // 司机结算总额
       List<SettlementDetail> settlementDetails1 = new ArrayList<>();
        // 司机提现
        List<TPubWithdrawal> driver = new ArrayList<>();
        // 用户提现
        List<TPubWithdrawal> user = new ArrayList<>();
        // 余额充值wrapper
        Wrapper<TPubTransactionDetails> orderType = new EntityWrapper<TPubTransactionDetails>();
        // 用户提现wrapper
        Wrapper<TPubWithdrawal> userWrapper = new EntityWrapper<TPubWithdrawal>();
        // 司机提现wrapper
        Wrapper<TPubWithdrawal> between = new EntityWrapper<TPubWithdrawal>();
        // 用户专车订单wrapper
        EntityWrapper<TOrderPrivateCar> tOrderPrivateCarEntityWrapper = new EntityWrapper<>();
        // 用户小件物流订单wrapper
        EntityWrapper<TOrderLogistics> tOrderLogisticsEntityWrapper = new EntityWrapper<>();
        // 司机手动结算金额
        Wrapper<SettlementDetail> orderType1 = new EntityWrapper<SettlementDetail>();
        // 用户取消订单wrapper
        Wrapper<OrderCancel> orderCancelEntityWrapper = new EntityWrapper<>();
        // 用户取消订单记录
        List<OrderCancel> orderCancels = new ArrayList<>();
        List<Integer> integers = new ArrayList<>();
        integers.add(1);
        integers.add(2);
        if (time == 5 && !StringUtils.hasLength(insertTime)){
            // 余额充值wrapper
            orderType = new EntityWrapper<TPubTransactionDetails>()
                    .eq("userType",1)
                    .eq("orderType", 5)
                    ;
            // 用户提现wrapper
            userWrapper = new EntityWrapper<TPubWithdrawal>()
                    .eq("state", 2)
                    .eq("userType", 1)
                  ;
            // 司机提现wrapper
            between = new EntityWrapper<TPubWithdrawal>()
                    .eq("state", 2)
                    .eq("userType", 2);
            // 用户专车订单wrapper
            tOrderPrivateCarEntityWrapper
                    .isNotNull("payMoney")
                    .in("payType",Arrays.asList(1, 2));
            // 用户小件物流订单wrapper
            tOrderLogisticsEntityWrapper
                    .isNotNull("payMoney")
                    .in("payType",Arrays.asList(1, 2));
            // 司机手动结算金额
            orderType1 = new EntityWrapper<SettlementDetail>()
                    .in("orderType", Arrays.asList(1, 4));
            // 用户取消订单费用
            orderCancelEntityWrapper.eq("state", 2)
                    .eq("userType", 1).in("payType",integers)
                    ;
        }else{
            orderType = new EntityWrapper<TPubTransactionDetails>()
                    .eq("orderType", 5)
                    .eq("userType",1)
                    .between("insertTime",start,end);
            // 用户提现wrapper
            userWrapper = new EntityWrapper<TPubWithdrawal>()
                    .eq("state", 2)
                    .eq("userType", 1)
                    .between("handleTime", start, end);
            // 司机提现wrapper
            between = new EntityWrapper<TPubWithdrawal>()
                    .eq("state", 2)
                    .eq("userType", 2)
                    .between("handleTime", start, end);
            // 司机手动结算金额
           orderType1 = new EntityWrapper<SettlementDetail>()
                    .in("orderType", Arrays.asList(1, 4))
                    .between("createTime", start, end);
            // 用户专车订单wrapper
            tOrderPrivateCarEntityWrapper
                    .isNotNull("payMoney")
                    .in("payType",Arrays.asList(1, 2))
                    .between("insertTime", start, end);
            // 用户小件物流订单wrapper
            tOrderLogisticsEntityWrapper
                    .isNotNull("payMoney")
                    .in("payType",Arrays.asList(1, 2))
                    .between("insertTime", start, end);
            // 用户取消订单费用
            orderCancelEntityWrapper.eq("state", 2)
                    .eq("userType", 1)
                    .in("payType",integers)
                    .between("insertTime", start, end);
        }
        if (type != null){
            switch (type){
                case 1:
                    // 只查询用户订单
                    tOrderPrivateCars = orderPrivateCarService.selectList(tOrderPrivateCarEntityWrapper);
                    tOrderLogistics = orderLogisticsService.selectList(tOrderLogisticsEntityWrapper);
                    // 用户取消订单费用
                    orderCancelEntityWrapper.eq("state", 2)
                            .eq("userType", 1);
                    break;
                case 2:
                    // 只查询用户充值
                    tPubTransactionDetails = pubTransactionDetailsService.selectList(orderType);
                    break;
                case 3:
                    // 只查询司机手动结算的
                    settlementDetails1 = settlementDetailService.selectList(orderType1);
                    break;
                case 4:
                    driver = pubWithdrawalService.selectList(between);
                    // 只查询司机提现
                    break;
                case 5:
                    // 只查询用户提现
                    user = pubWithdrawalService.selectList(userWrapper);
                    break;
            }
        }else{
            // 只查询用户订单
            tOrderPrivateCars = orderPrivateCarService.selectList(tOrderPrivateCarEntityWrapper);
            tOrderLogistics = orderLogisticsService.selectList(tOrderLogisticsEntityWrapper);
            tPubTransactionDetails = pubTransactionDetailsService.selectList(orderType);
            // 只查询司机手动结算的
            settlementDetails1 = settlementDetailService.selectList(orderType1);
            driver = pubWithdrawalService.selectList(between);
            user = pubWithdrawalService.selectList(userWrapper);
            orderCancels = orderCancelService.selectList(orderCancelEntityWrapper);
        }
        List<WaterVO> res = new ArrayList<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 司机结算金额
        BigDecimal balance = new BigDecimal("0");
        // 用户消费金额
        BigDecimal userConsume = new BigDecimal("0");
        // 用户充值金额
        BigDecimal userRecharge = new BigDecimal("0");
        // 司机提现金额
        BigDecimal driverWithdrawal = new BigDecimal("0");
        // 用户提现金额
        BigDecimal userWithdrawal = new BigDecimal("0");
        // 用户订单消费
        for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
            if (payType!=null){
                if (tOrderPrivateCar.getPayType()!=payType){
                    continue;
                }
            }
            WaterVO waterVO = new WaterVO();
            waterVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
            waterVO.setType("用户订单消费");
            switch (tOrderPrivateCar.getPayType()){
                case 1:
                    waterVO.setPayType("手机支付");
                    break;
                case 2:
                    waterVO.setPayType("银行卡支付");
                    break;
            }
            // 专车
            if (tOrderPrivateCar != null){
                waterVO.setCode(tOrderPrivateCar.getOrderNum());
                String string = tOrderPrivateCar.getPayMoney().toString();
                waterVO.setMoney(new BigDecimal(string)+"");
            }else{
                waterVO.setMoney(new BigDecimal("0")+"");
            }
            TUser user1 = appUserService.selectById(tOrderPrivateCar.getUserId());
            if (user1!=null){
                waterVO.setName(user1.getNickName());
                waterVO.setPhone(user1.getPhone());
            }
            if (tOrderPrivateCar != null){
                waterVO.setRemark(tOrderPrivateCar.getRemark());
            }
            res.add(waterVO);
            userConsume = userConsume.add(new BigDecimal(tOrderPrivateCar.getPayMoney().toString()));
        }
        for (TOrderLogistics tOrderLogistic : tOrderLogistics) {
            if (payType!=null){
                if (tOrderLogistic.getPayType()!=payType){
                    continue;
                }
            }
            WaterVO waterVO = new WaterVO();
            waterVO.setInsertTime(format.format(tOrderLogistic.getInsertTime()));
            waterVO.setType("用户订单消费");
            // 小件物流
            waterVO.setCode(tOrderLogistic.getOrderNum());
            String string = tOrderLogistic.getPayMoney().toString();
            waterVO.setMoney(new BigDecimal(string)+"");
            waterVO.setMoney(new BigDecimal("0")+"");
            TUser user2 = appUserService.selectById(tOrderLogistic.getUserId());
            if (user2!=null){
                waterVO.setName(user2.getNickName());
                waterVO.setPhone(user2.getPhone());
            }
            waterVO.setType("用户订单消费");
            switch (tOrderLogistic.getPayType()){
                case 1:
                    waterVO.setPayType("手机支付");
                    break;
                case 2:
                    waterVO.setPayType("银行卡支付");
                    break;
            }
            if (tOrderLogistics != null){
                waterVO.setRemark(tOrderLogistic.getRemark());
            }
            res.add(waterVO);
            userConsume = userConsume.add(new BigDecimal(tOrderLogistic.getPayMoney().toString()));
            break;
        }
        for (OrderCancel orderCancel : orderCancels) {
            WaterVO waterVO = new WaterVO();
            switch (orderCancel.getOrderType()){
                case 1:
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(orderCancel.getOrderId());
                    if (tOrderPrivateCar == null){
                        continue;
                    }
                    waterVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
                    waterVO.setType("用户订单消费");
                    if (payType!=null){
                        if (!Objects.equals(tOrderPrivateCar.getPayType(), payType)){
                            continue;
                        }
                    }
                    switch (orderCancel.getPayType()){
                        case 1:
                            waterVO.setPayType("手机支付");
                            break;
                        case 2:
                            waterVO.setPayType("银行卡支付");
                            break;
                        case 3:
                            waterVO.setPayType("余额支付");
                            break;
                    }
                    // 专车
                    waterVO.setCode(tOrderPrivateCar.getOrderNum());
                    String string = orderCancel.getMoney().toString();
                    waterVO.setMoney(new BigDecimal(string)+"");
                    TUser user1 = appUserService.selectById(tOrderPrivateCar.getUserId());
                    if (user1!=null){
                        waterVO.setName(user1.getNickName());
                        waterVO.setPhone(user1.getPhone());
                    }
                    waterVO.setRemark(tOrderPrivateCar.getRemark());
                    res.add(waterVO);
                    userConsume = userConsume.add(new BigDecimal(orderCancel.getMoney().toString()));
                    break;
                case 4:
                    TOrderLogistics tOrderLogistics1 = orderLogisticsService.selectById(orderCancel.getOrderId());
                    if (payType!=null){
                        if (!Objects.equals(tOrderLogistics1.getPayType(), payType)){
                            continue;
                        }
                    }
                    WaterVO waterVO1 = new WaterVO();
                    waterVO1.setInsertTime(format.format(tOrderLogistics1.getInsertTime()));
                    waterVO1.setType("用户订单消费");
                    // 小件物流
                    waterVO1.setCode(tOrderLogistics1.getOrderNum());
                    String string1 = orderCancel.getMoney().toString();
                    waterVO1.setMoney(new BigDecimal(string1)+"");
                    TUser user2 = appUserService.selectById(tOrderLogistics1.getUserId());
                    if (user2!=null){
                        waterVO1.setName(user2.getNickName());
                        waterVO1.setPhone(user2.getPhone());
                    }
                    waterVO1.setType("用户订单消费");
                    switch (orderCancel.getPayType()){
                        case 1:
                            waterVO.setPayType("手机支付");
                            break;
                        case 2:
                            waterVO.setPayType("银行卡支付");
                            break;
                        case 3:
                            waterVO.setPayType("余额支付");
                            break;
                    }
                    waterVO1.setRemark(tOrderLogistics1.getRemark());
                    res.add(waterVO1);
                    userConsume = userConsume.add(new BigDecimal(orderCancel.getMoney().toString()));
                    break;
            }
        }
        // 司机提现
        for (TPubWithdrawal tPubWithdrawal : driver) {
            if(payType!=null && payType == 2){
                break;
            }
            WaterVO waterVO = new WaterVO();
            waterVO.setInsertTime(format.format(tPubWithdrawal.getHandleTime()));
            waterVO.setCode(tPubWithdrawal.getCode());
            TDriver tDriver = driverService.selectById(tPubWithdrawal.getUserId());
            if (tDriver!=null){
                waterVO.setName(tDriver.getFirstName()+tDriver.getLastName());
                waterVO.setPhone(tDriver.getPhone());
            }
            waterVO.setMoney("-"+tPubWithdrawal.getMoney());
            waterVO.setPayType("手机支付");
            waterVO.setType("司机提现");
            waterVO.setRemark(tPubWithdrawal.getRemark());
            res.add(waterVO);
            driverWithdrawal = driverWithdrawal.add(tPubWithdrawal.getMoney());
        }
        // 用户提现
        for (TPubWithdrawal tPubWithdrawal : user) {
            if(payType!=null && payType == 2){
                break;
            }
            WaterVO waterVO = new WaterVO();
            if (tPubWithdrawal.getHandleTime()!=null){
                waterVO.setInsertTime(format.format(tPubWithdrawal.getHandleTime()));
            }
            waterVO.setCode(tPubWithdrawal.getCode());
            TUser user2 = appUserService.selectById(tPubWithdrawal.getUserId());
            if (user2!=null){
                waterVO.setName(user2.getNickName());
                waterVO.setPhone(user2.getPhone());
            }
            waterVO.setMoney("-"+tPubWithdrawal.getMoney());
            waterVO.setPayType("手机支付");
            waterVO.setType("用户提现");
            waterVO.setRemark(tPubWithdrawal.getRemark());
            res.add(waterVO);
            userWithdrawal = userWithdrawal.add(tPubWithdrawal.getMoney());
        }
        // 查询用户充值
        for (TPubTransactionDetails tPubTransactionDetail : tPubTransactionDetails) {
            WaterVO waterVO = new WaterVO();
            Integer orderId = tPubTransactionDetail.getOrderId();
            PaymentRecord paymentRecord = paymentRecordService.selectById(orderId);
            if (paymentRecord!=null){
                if (paymentRecord.getState() == 1){
                    // 临时数据
                    continue;
                }
                waterVO.setInsertTime(format.format(paymentRecord.getInsertTime()));
                waterVO.setCode(paymentRecord.getCode());
                if (paymentRecord.getPayType()!=null){
                    switch (paymentRecord.getPayType()){
                        case 1:
                            if (payType!=null){
                                if (payType != 1){
                                    continue;
                                }
                            }
                            waterVO.setPayType("手机支付");
                            break;
                        case 2:
                            if (payType!=null){
                                if (payType != 2){
                                    continue;
                                }
                            }
                            waterVO.setPayType("银行卡支付");
                            break;
                    }
                }
                waterVO.setMoney(new BigDecimal(paymentRecord.getAmount().toString())+"");
            }else{
                continue;
            }
            if (paymentRecord.getUserId()!=null){
                TUser user2 = appUserService.selectById(paymentRecord.getUserId());
                if (user2!=null){
                    waterVO.setName(user2.getNickName());
                    waterVO.setPhone(user2.getPhone());
                }
            }
            waterVO.setType("用户充值");
            waterVO.setRemark(tPubTransactionDetail.getRemark());
            res.add(waterVO);
            userRecharge = userRecharge.add(new BigDecimal(paymentRecord.getAmount().toString()));
        }
        // 查询所有已结算的订单
        for (SettlementDetail income : settlementDetails1) {
            WaterVO platformVO = new WaterVO();
            platformVO.setType("司机结算");
            switch (income.getOrderType()){
                case 1:
                    SettlementRecord settlementRecord = settlementRecordService.selectById(income.getSettlementRecordId());
                    if (settlementRecord!=null){
                        if (settlementRecord.getPaymentStatus()!=null && settlementRecord.getPaymentStatus() == 2){
                            switch (settlementRecord.getPayType()){
                                case 1:
                                    if (payType!=null){
                                        if (payType != 1){
                                            continue;
                                        }
                                    }
                                    platformVO.setPayType("手机支付");
                                    break;
                                case 2:
                                    if (payType!=null){
                                        if (payType != 2){
                                            continue;
                                        }
                                    }
                                    platformVO.setPayType("银行卡支付");
                                    break;
                                case 3:
                                case 4:
                                    continue;
                            }
                        }else{
                            continue;
                        }
                    }else{
                        continue;
                    }
                    // 查询订单信息
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(income.getOrderId());
                    if (tOrderPrivateCar==null){
                        continue;
                    }
                    platformVO.setCode(tOrderPrivateCar.getOrderNum());
                    TDriver tDriver = driverService.selectById(tOrderPrivateCar.getDriverId());
                    if (tDriver != null){
                        platformVO.setName(tDriver.getFirstName()+tDriver.getLastName());
                        platformVO.setPhone(tDriver.getPhone());
                    }
                    platformVO.setRemark(tOrderPrivateCar.getRemark());
                    if (income.getCreateTime()!=null){
                        platformVO.setInsertTime(format.format(income.getCreateTime()));
                    }
                    platformVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
                    if (income.getOrderMoney() != null){
                        String string = income.getPrice().toString();
                        BigDecimal bigDecimal1 = new BigDecimal(string);
                        platformVO.setMoney(bigDecimal1+"");
                    }else{
                        continue;
                    }
                    if (tOrderPrivateCar.getPayType() == null){
                        continue;
                    }
                    // 专车订单
                    String string4 = income.getPrice().toString();
                    balance = balance.add(new BigDecimal(string4));
                    res.add(platformVO);
                    break;
                case 4:
                    SettlementRecord settlementRecord1 = settlementRecordService.selectById(income.getSettlementRecordId());
                    if (settlementRecord1!=null&& settlementRecord1.getPaymentStatus()!=null && settlementRecord1.getPaymentStatus() == 2){
                        if (settlementRecord1.getPayType()!=null){
                            switch (settlementRecord1.getPayType()){
                                case 1:
                                    if (payType!=null){
                                        if (payType != 1){
                                            continue;
                                        }
                                    }
                                    platformVO.setPayType("手机支付");
                                    break;
                                case 2:
                                    if (payType!=null){
                                        if (payType != 2){
                                            continue;
                                        }
                                    }
                                    platformVO.setPayType("银行卡支付");
                                    break;
                                case 3:
                                case 4:
                                    continue;
                            }
                        }
                    }else {
                        continue;
                    }
                    // 小件物流
                    // 查询订单信息
                    TOrderLogistics tOrderLogistics1 = orderLogisticsService.selectById(income.getOrderId());
                    if (tOrderLogistics1==null){
                        continue;
                    }
                    platformVO.setCode(tOrderLogistics1.getOrderNum());
                    TDriver tDriver1 = driverService.selectById(tOrderLogistics1.getDriverId());
                    if (tDriver1!=null){
                        platformVO.setName(tDriver1.getFirstName()+tDriver1.getLastName());
                        platformVO.setPhone(tDriver1.getPhone());
                    }
                    platformVO.setRemark(tOrderLogistics1.getRemark());
                    platformVO.setMoney(new BigDecimal(income.getPrice())+"");
                    if (income.getCreateTime()!=null){
                        platformVO.setInsertTime(format.format(income.getCreateTime()));
                    }
                    platformVO.setInsertTime(format.format(tOrderLogistics1.getInsertTime()));
                    if (tOrderLogistics1.getPayType() == null){
                        continue;
                    }
                    String string1 = income.getPrice().toString();
                    // 小件物流订单
                    balance = balance.add(new BigDecimal(string1));
                    res.add(platformVO);
                    break;
            }
        }
        // 过滤掉res中insertTime未空的数据
        res.removeIf(waterVO -> waterVO.getInsertTime() == null);
        Collections.sort(res, Comparator.comparing(WaterVO::getInsertTime).reversed());
        WaterMoneyVO waterMoneyVO = new WaterMoneyVO();
        BigDecimal add = userRecharge.add(userConsume).add(balance).subtract(driverWithdrawal).subtract(userWithdrawal);
        waterMoneyVO.setTotal(add);
        waterMoneyVO.setUserOrder(userConsume);
        waterMoneyVO.setUserCharge(userRecharge);
        waterMoneyVO.setBalance(balance);
        waterMoneyVO.setDriverWithdrawal(driverWithdrawal);
        waterMoneyVO.setUserWithdrawal(userWithdrawal);
        return waterMoneyVO;
    }
    /**
     * 第三方流水统计获取列表
     */
    @Autowired
    private ITPubTransactionDetailsService pubTransactionDetailsService;
    @Autowired
    private ITPubWithdrawalService pubWithdrawalService;
    @Autowired
    private IPaymentRecordService paymentRecordService;
    @Autowired
    private ITUserService appUserService;
    @Autowired
    private IOrderCancelService orderCancelService;
    @RequestMapping(value = "/water/list")
    @ResponseBody
    public Object list1(Integer time,String insertTime,Integer payType,Integer type) {
    public Object getCount1(Integer time,String insertTime,Integer payType,Integer type,String code) {
        if (payType!=null){
            switch (payType){
                case 1:
@@ -1181,8 +512,8 @@
                    .isNotNull("settlementRecordId")
                    .in("orderType", Arrays.asList(1, 4));
            // 用户取消订单费用
             orderCancelEntityWrapper.eq("state", 2)
                     .in("payType",integers)
            orderCancelEntityWrapper.eq("state", 2)
                    .in("payType",integers)
                    .eq("userType", 1);
        }else{
            orderType = new EntityWrapper<TPubTransactionDetails>()
@@ -1248,15 +579,23 @@
                    break;
            }
        }else{
            if(ToolUtil.isNotEmpty(code)){
                tOrderPrivateCarEntityWrapper.like("orderNum", code);
                tOrderLogisticsEntityWrapper.like("orderNum", code);
                orderType.like("", code);
            }
            // 只查询用户订单
            tOrderPrivateCars = orderPrivateCarService.selectList(tOrderPrivateCarEntityWrapper);
            tOrderLogistics = orderLogisticsService.selectList(tOrderLogisticsEntityWrapper);
            orderCancels = orderCancelService.selectList(orderCancelEntityWrapper);
            tPubTransactionDetails = pubTransactionDetailsService.selectList(orderType);
            // 只查询司机手动结算的
            settlementDetails1 = settlementDetailService.selectList(orderType1);
            driver = pubWithdrawalService.selectList(between);
            user = pubWithdrawalService.selectList(userWrapper);
            orderCancels = orderCancelService.selectList(orderCancelEntityWrapper);
        }
        List<WaterVO> res = new ArrayList<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -1271,13 +610,26 @@
        // 用户提现金额
        BigDecimal userWithdrawal = new BigDecimal("0");
        // 用户订单消费
        Map<Integer, TUser> userMap = appUserService.selectList(new EntityWrapper<TUser>())
                .stream()
                .collect(Collectors.toMap(TUser::getId, user1 -> user1));
        Map<Integer, TDriver> driverMap = driverService.selectList(new EntityWrapper<TDriver>())
                .stream()
                .collect(Collectors.toMap(TDriver::getId, user1 -> user1));
        Map<Integer, PaymentRecord> paymentRecordMap = paymentRecordService.selectList(new EntityWrapper<PaymentRecord>())
                .stream()
                .collect(Collectors.toMap(PaymentRecord::getId, user1 -> user1));
        Map<Integer, SettlementRecord> settlementRecordMap = settlementRecordService.selectList(new EntityWrapper<SettlementRecord>())
                .stream()
                .collect(Collectors.toMap(SettlementRecord::getId, user1 -> user1));
        // 用户订单消费
        for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
            if (payType!=null){
                if (tOrderPrivateCar.getPayType()!=payType){
                    continue;
                }
            }
            WaterVO waterVO = new WaterVO();
            waterVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
            waterVO.setType("用户订单消费");
@@ -1290,10 +642,10 @@
                    break;
            }
            // 专车
                waterVO.setCode(tOrderPrivateCar.getOrderNum());
                String string = tOrderPrivateCar.getPayMoney().toString();
                waterVO.setMoney(new BigDecimal(string)+"");
            TUser user1 = appUserService.selectById(tOrderPrivateCar.getUserId());
            waterVO.setCode(tOrderPrivateCar.getOrderNum());
            String string = tOrderPrivateCar.getPayMoney().toString();
            waterVO.setMoney(new BigDecimal(string)+"");
            TUser user1 = userMap.get(tOrderPrivateCar.getUserId());
            if (user1!=null){
                waterVO.setName(user1.getNickName());
                waterVO.setPhone(user1.getPhone());
@@ -1303,7 +655,7 @@
                waterVO.setRemark(tOrderPrivateCar.getRemark());
            }
            res.add(waterVO);
            userConsume = userConsume.add(new BigDecimal(tOrderPrivateCar.getPayMoney().toString()));
            userConsume = userConsume.add(new BigDecimal(waterVO.getMoney()));
        }
        for (TOrderLogistics tOrderLogistic : tOrderLogistics) {
            if (payType!=null){
@@ -1318,8 +670,7 @@
            waterVO.setCode(tOrderLogistic.getOrderNum());
            String string = tOrderLogistic.getPayMoney().toString();
            waterVO.setMoney(new BigDecimal(string)+"");
            waterVO.setMoney(new BigDecimal("0")+"");
            TUser user2 = appUserService.selectById(tOrderLogistic.getUserId());
            TUser user2 = userMap.get(tOrderLogistic.getUserId());
            if (user2!=null){
                waterVO.setName(user2.getNickName());
                waterVO.setPhone(user2.getPhone());
@@ -1337,8 +688,7 @@
                waterVO.setRemark(tOrderLogistic.getRemark());
            }
            res.add(waterVO);
            userConsume = userConsume.add(new BigDecimal(tOrderLogistic.getPayMoney().toString()));
            break;
            userConsume = userConsume.add(new BigDecimal(waterVO.getMoney()));
        }
        for (OrderCancel orderCancel : orderCancels) {
            WaterVO waterVO = new WaterVO();
@@ -1370,14 +720,14 @@
                    waterVO.setCode(tOrderPrivateCar.getOrderNum());
                    String string = orderCancel.getMoney().toString();
                    waterVO.setMoney(new BigDecimal(string)+"");
                    TUser user1 = appUserService.selectById(tOrderPrivateCar.getUserId());
                    TUser user1 = userMap.get(tOrderPrivateCar.getUserId());
                    if (user1!=null){
                        waterVO.setName(user1.getNickName());
                        waterVO.setPhone(user1.getPhone());
                    }
                    waterVO.setRemark(tOrderPrivateCar.getRemark());
                    res.add(waterVO);
                    userConsume = userConsume.add(new BigDecimal(orderCancel.getMoney().toString()));
                    userConsume = userConsume.add(new BigDecimal(waterVO.getMoney()));
                    break;
                case 4:
                    TOrderLogistics tOrderLogistics1 = orderLogisticsService.selectById(orderCancel.getOrderId());
@@ -1393,7 +743,7 @@
                    waterVO1.setCode(tOrderLogistics1.getOrderNum());
                    String string1 = orderCancel.getMoney().toString();
                    waterVO1.setMoney(new BigDecimal(string1)+"");
                    TUser user2 = appUserService.selectById(tOrderLogistics1.getUserId());
                    TUser user2 = userMap.get(tOrderLogistics1.getUserId());
                    if (user2!=null){
                        waterVO1.setName(user2.getNickName());
                        waterVO1.setPhone(user2.getPhone());
@@ -1401,19 +751,19 @@
                    waterVO1.setType("用户订单消费");
                    switch (orderCancel.getPayType()){
                        case 1:
                            waterVO.setPayType("手机支付");
                            waterVO1.setPayType("手机支付");
                            break;
                        case 2:
                            waterVO.setPayType("银行卡支付");
                            waterVO1.setPayType("银行卡支付");
                            break;
                        case 3:
                            waterVO.setPayType("余额支付");
                            waterVO1.setPayType("余额支付");
                            break;
                    }
                    waterVO1.setRemark(tOrderLogistics1.getRemark());
                    res.add(waterVO1);
                    userConsume = userConsume.add(new BigDecimal(orderCancel.getMoney().toString()));
                    userConsume = userConsume.add(new BigDecimal(waterVO1.getMoney()));
                    break;
            }
        }
@@ -1422,10 +772,14 @@
            if(payType!=null && payType == 2){
                break;
            }
            String code1 = tPubWithdrawal.getCode();
            if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){
                continue;
            }
            WaterVO waterVO = new WaterVO();
            waterVO.setInsertTime(format.format(tPubWithdrawal.getHandleTime()));
            waterVO.setCode(tPubWithdrawal.getCode());
            TDriver tDriver = driverService.selectById(tPubWithdrawal.getUserId());
            TDriver tDriver = driverMap.get(tPubWithdrawal.getUserId());
            if (tDriver!=null){
                waterVO.setName(tDriver.getFirstName()+tDriver.getLastName());
                waterVO.setPhone(tDriver.getPhone());
@@ -1443,10 +797,14 @@
            if(payType!=null && payType == 2){
                break;
            }
            String code1 = tPubWithdrawal.getCode();
            if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){
                continue;
            }
            WaterVO waterVO = new WaterVO();
            waterVO.setInsertTime(format.format(tPubWithdrawal.getHandleTime()));
            waterVO.setCode(tPubWithdrawal.getCode());
            TUser user2 = appUserService.selectById(tPubWithdrawal.getUserId());
            TUser user2 = userMap.get(tPubWithdrawal.getUserId());
            if (user2!=null){
                waterVO.setName(user2.getNickName());
                waterVO.setPhone(user2.getPhone());
@@ -1462,10 +820,15 @@
        for (TPubTransactionDetails tPubTransactionDetail : tPubTransactionDetails) {
            WaterVO waterVO = new WaterVO();
            Integer orderId = tPubTransactionDetail.getOrderId();
            PaymentRecord paymentRecord = paymentRecordService.selectById(orderId);
            PaymentRecord paymentRecord = paymentRecordMap.get(orderId);
            if (paymentRecord!=null){
                if (paymentRecord.getState() == 1){
                    // 临时数据
                    continue;
                }
                String code1 = paymentRecord.getCode();
                if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){
                    continue;
                }
                waterVO.setInsertTime(format.format(paymentRecord.getInsertTime()));
@@ -1500,7 +863,7 @@
                continue;
            }
            if (paymentRecord.getUserId()!=null){
                TUser user2 = appUserService.selectById(paymentRecord.getUserId());
                TUser user2 = userMap.get(paymentRecord.getUserId());
                if (user2!=null){
                    waterVO.setName(user2.getNickName());
                    waterVO.setPhone(user2.getPhone());
@@ -1518,7 +881,7 @@
            platformVO.setType("司机结算");
            switch (income.getOrderType()){
                case 1:
                    SettlementRecord settlementRecord = settlementRecordService.selectById(income.getSettlementRecordId());
                    SettlementRecord settlementRecord = settlementRecordMap.get(income.getSettlementRecordId());
                    if (settlementRecord!=null && settlementRecord.getPaymentStatus()!=null && settlementRecord.getPaymentStatus() == 2){
                        if (settlementRecord.getPayType()!=null){
                            switch (settlementRecord.getPayType()){
@@ -1552,8 +915,12 @@
                    if (tOrderPrivateCar==null){
                        continue;
                    }
                    String code1 = tOrderPrivateCar.getOrderNum();
                    if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){
                        continue;
                    }
                    platformVO.setCode(tOrderPrivateCar.getOrderNum());
                    TDriver tDriver = driverService.selectById(tOrderPrivateCar.getDriverId());
                    TDriver tDriver = driverMap.get(tOrderPrivateCar.getDriverId());
                    if (tDriver != null){
                        platformVO.setName(tDriver.getFirstName()+tDriver.getLastName());
                        platformVO.setPhone(tDriver.getPhone());
@@ -1583,7 +950,7 @@
                case 4:
                    // 小件物流
                    // 查询订单信息
                    SettlementRecord settlementRecord1 = settlementRecordService.selectById(income.getSettlementRecordId());
                    SettlementRecord settlementRecord1 = settlementRecordMap.get(income.getSettlementRecordId());
                    if (settlementRecord1!=null){
                        if (settlementRecord1.getPaymentStatus()!=null && settlementRecord1.getPaymentStatus() == 2){
                            switch (settlementRecord1.getPayType()){
@@ -1640,8 +1007,682 @@
                        case 4:
                            continue;
                    }
                    String code2 = tOrderLogistics1.getOrderNum();
                    if(ToolUtil.isNotEmpty(code) && !code2.contains(code)){
                        continue;
                    }
                    platformVO.setCode(tOrderLogistics1.getOrderNum());
                    TDriver tDriver1 = driverService.selectById(tOrderLogistics1.getDriverId());
                    TDriver tDriver1 = driverMap.get(tOrderLogistics1.getDriverId());
                    if (tDriver1!=null){
                        platformVO.setName(tDriver1.getFirstName()+tDriver1.getLastName());
                        platformVO.setPhone(tDriver1.getPhone());
                    }
                    platformVO.setRemark(tOrderLogistics1.getRemark());
                    platformVO.setMoney(BigDecimal.valueOf(income.getPrice())+"");
                    if (income.getCreateTime()!=null){
                        platformVO.setInsertTime(format.format(income.getCreateTime()));
                    }
                    platformVO.setInsertTime(format.format(tOrderLogistics1.getInsertTime()));
                    if (tOrderLogistics1.getPayType() == null){
                        continue;
                    }
                    String string1 = tOrderLogistics1.getOrderMoney().toString();
                    // 小件物流订单
                    balance = balance.add(new BigDecimal(string1));
                    res.add(platformVO);
                    break;
            }
        }
        // 过滤掉res中insertTime未空的数据
        res.removeIf(waterVO -> waterVO.getInsertTime() == null);
        Collections.sort(res, Comparator.comparing(WaterVO::getInsertTime).reversed());
        WaterMoneyVO waterMoneyVO = new WaterMoneyVO();
        BigDecimal add = userRecharge.add(userConsume).add(balance).subtract(driverWithdrawal).subtract(userWithdrawal);
        waterMoneyVO.setTotal(add);
        waterMoneyVO.setUserOrder(userConsume);
        waterMoneyVO.setUserCharge(userRecharge);
        waterMoneyVO.setBalance(balance);
        waterMoneyVO.setDriverWithdrawal(driverWithdrawal);
        waterMoneyVO.setUserWithdrawal(userWithdrawal);
        return waterMoneyVO;
    }
    @RequestMapping(value = "/water/list")
    @ResponseBody
    public Object list1(Integer time,String insertTime,Integer payType,Integer type, String code) {
        if (payType!=null){
            switch (payType){
                case 1:
                    payType = 2;
                    break;
                case 2:
                    payType = 1;
                    break;
            }
        }
        if (time == null){
            time = 1;
        }
        String beginTime = null;
        String endTime = null;
        LocalDateTime start =null;
        LocalDateTime end =null;
        // 获取当前日期
        LocalDate today = LocalDate.now();
        if (ToolUtil.isNotEmpty(insertTime)){
            beginTime = insertTime.split(" - ")[0];
            endTime = insertTime.split(" - ")[1];
            LocalDate s = LocalDate.parse(beginTime);
            LocalDate e = LocalDate.parse(endTime);
            start = s.atStartOfDay();
            end = e.atTime(LocalTime.MAX);
        }else if (time!=null) {
            switch (time) {
                case 1:
                    // 获取当天的 00:00:00 和 23:59:59
                    LocalDateTime startOfDay = today.atStartOfDay();
                    LocalDateTime endOfDay = today.atTime(LocalTime.MAX);
                    start = startOfDay;
                    end = endOfDay;
                    break;
                case 2:
                    // 获取本周第一天的日期和时间
                    LocalDate firstDayOfWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
                    LocalDateTime startOfWeek = firstDayOfWeek.atStartOfDay();
                    // 获取本周最后一天的日期和时间
                    LocalDate lastDayOfWeek = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
                    LocalDateTime endOfWeek = lastDayOfWeek.atTime(LocalTime.MAX);
                    start = startOfWeek;
                    end = endOfWeek;
                    break;
                case 3:
                    LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
                    LocalDateTime startOfMonth = firstDayOfMonth.atStartOfDay();
                    // 获取本月最后一天的日期和时间
                    LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());
                    LocalDateTime endOfMonth = lastDayOfMonth.atTime(LocalTime.MAX);
                    start = startOfMonth;
                    end = endOfMonth;
                    break;
                case 4:
                    // 获取本年第一天的日期和时间
                    LocalDate firstDayOfYear = LocalDate.of(today.getYear(), Month.JANUARY, 1);
                    LocalDateTime startOfYear = firstDayOfYear.atStartOfDay();
                    // 获取本年最后一天的日期和时间
                    LocalDate lastDayOfYear = LocalDate.of(today.getYear(), Month.DECEMBER, 31);
                    LocalDateTime endOfYear = lastDayOfYear.atTime(LocalTime.MAX);
                    start = startOfYear;
                    end = endOfYear;
                    break;
            }
        }
        // 用户小件物流订单记录
        List<TOrderPrivateCar> tOrderPrivateCars = new ArrayList<>();
        List<TOrderLogistics> tOrderLogistics = new ArrayList<>();
        // 用户取消订单记录
        List<OrderCancel> orderCancels = new ArrayList<>();
        // 用户充值
        List<TPubTransactionDetails> tPubTransactionDetails = new ArrayList<>();
        // 司机结算总额
        List<SettlementDetail> settlementDetails1 = new ArrayList<>();
        // 司机提现
        List<TPubWithdrawal> driver = new ArrayList<>();
        // 用户提现
        List<TPubWithdrawal> user = new ArrayList<>();
        // 余额充值wrapper
        Wrapper<TPubTransactionDetails> orderType = new EntityWrapper<TPubTransactionDetails>();
        // 用户提现wrapper
        Wrapper<TPubWithdrawal> userWrapper = new EntityWrapper<TPubWithdrawal>();
        // 司机提现wrapper
        Wrapper<TPubWithdrawal> between = new EntityWrapper<TPubWithdrawal>();
        // 用户专车订单wrapper
        EntityWrapper<TOrderPrivateCar> tOrderPrivateCarEntityWrapper = new EntityWrapper<>();
        // 用户小件物流订单wrapper
        EntityWrapper<TOrderLogistics> tOrderLogisticsEntityWrapper = new EntityWrapper<>();
        // 用户取消订单wrapper
        Wrapper<OrderCancel> orderCancelEntityWrapper = new EntityWrapper<>();
        // 司机手动结算金额
        Wrapper<SettlementDetail> orderType1 = new EntityWrapper<SettlementDetail>();
        List<Integer> integers = new ArrayList<>();
        integers.add(1);
        integers.add(2);
        if (time == 5 && !StringUtils.hasLength(insertTime)){
            // 余额充值wrapper
            orderType = new EntityWrapper<TPubTransactionDetails>()
                    .eq("userType",1)
                    .eq("orderType", 5)
            ;
            // 用户提现wrapper
            userWrapper = new EntityWrapper<TPubWithdrawal>()
                    .eq("state", 2)
                    .eq("userType", 1)
            ;
            // 司机提现wrapper
            between = new EntityWrapper<TPubWithdrawal>()
                    .eq("state", 2)
                    .eq("userType", 2);
            // 用户专车订单wrapper
            tOrderPrivateCarEntityWrapper
                    .isNotNull("payMoney")
                    .in("payType",Arrays.asList(1, 2));
            // 用户小件物流订单wrapper
            tOrderLogisticsEntityWrapper
                    .isNotNull("payMoney")
                    .in("payType",Arrays.asList(1, 2));
            // 司机手动结算金额
            orderType1 = new EntityWrapper<SettlementDetail>()
                    .isNotNull("settlementRecordId")
                    .in("orderType", Arrays.asList(1, 4));
            // 用户取消订单费用
             orderCancelEntityWrapper.eq("state", 2)
                     .in("payType",integers)
                    .eq("userType", 1)
                     ;
        }else{
            orderType = new EntityWrapper<TPubTransactionDetails>()
                    .eq("orderType", 5)
                    .eq("userType",1)
                    .between("insertTime",start,end);
            // 用户提现wrapper
            userWrapper = new EntityWrapper<TPubWithdrawal>()
                    .eq("state", 2)
                    .eq("userType", 1)
                    .between("handleTime", start, end);
            // 司机提现wrapper
            between = new EntityWrapper<TPubWithdrawal>()
                    .eq("state", 2)
                    .eq("userType", 2)
                    .between("handleTime", start, end);
            // 司机手动结算金额
            orderType1 = new EntityWrapper<SettlementDetail>()
                    .isNotNull("settlementRecordId")
                    .in("orderType", Arrays.asList(1, 4))
                    .between("createTime", start, end);
            // 用户专车订单wrapper
            tOrderPrivateCarEntityWrapper
                    .isNotNull("payMoney")
                    .in("payType",Arrays.asList(1, 2))
                    .between("insertTime", start, end);
            // 用户小件物流订单wrapper
            tOrderLogisticsEntityWrapper
                    .isNotNull("payMoney")
                    .in("payType",Arrays.asList(1, 2))
                    .between("insertTime", start, end);
            // 用户取消订单费用
            orderCancelEntityWrapper.eq("state", 2)
                    .eq("userType", 1)
                    .in("payType",integers)
                    .between("insertTime", start, end);
        }
        if (type != null){
            switch (type){
                case 1:
                    // 只查询用户订单
                    tOrderPrivateCars = orderPrivateCarService.selectList(tOrderPrivateCarEntityWrapper);
                    tOrderLogistics = orderLogisticsService.selectList(tOrderLogisticsEntityWrapper);
                    orderCancels = orderCancelService.selectList(orderCancelEntityWrapper);
                    break;
                case 2:
                    // 只查询用户充值
                    tPubTransactionDetails = pubTransactionDetailsService.selectList(orderType);
                    break;
                case 3:
                    // 只查询司机手动结算的
                    settlementDetails1 = settlementDetailService.selectList(orderType1);
                    break;
                case 4:
                    driver = pubWithdrawalService.selectList(between);
                    // 只查询司机提现
                    break;
                case 5:
                    // 只查询用户提现
                    user = pubWithdrawalService.selectList(userWrapper);
                    break;
            }
        }else{
            if(ToolUtil.isNotEmpty(code)){
                tOrderPrivateCarEntityWrapper.like("orderNum", code);
                tOrderLogisticsEntityWrapper.like("orderNum", code);
                orderType.like("", code);
            }
            // 只查询用户订单
            tOrderPrivateCars = orderPrivateCarService.selectList(tOrderPrivateCarEntityWrapper);
            tOrderLogistics = orderLogisticsService.selectList(tOrderLogisticsEntityWrapper);
            orderCancels = orderCancelService.selectList(orderCancelEntityWrapper);
            tPubTransactionDetails = pubTransactionDetailsService.selectList(orderType);
            // 只查询司机手动结算的
            settlementDetails1 = settlementDetailService.selectList(orderType1);
            driver = pubWithdrawalService.selectList(between);
            user = pubWithdrawalService.selectList(userWrapper);
        }
        List<WaterVO> res = new ArrayList<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 司机结算金额
        BigDecimal balance = new BigDecimal("0");
        // 用户消费金额
        BigDecimal userConsume = new BigDecimal("0");
        // 用户充值金额
        BigDecimal userRecharge = new BigDecimal("0");
        // 司机提现金额
        BigDecimal driverWithdrawal = new BigDecimal("0");
        // 用户提现金额
        BigDecimal userWithdrawal = new BigDecimal("0");
        // 用户订单消费
        Map<Integer, TUser> userMap = appUserService.selectList(new EntityWrapper<TUser>())
                .stream()
                .collect(Collectors.toMap(TUser::getId, user1 -> user1));
        Map<Integer, TDriver> driverMap = driverService.selectList(new EntityWrapper<TDriver>())
                .stream()
                .collect(Collectors.toMap(TDriver::getId, user1 -> user1));
        Map<Integer, PaymentRecord> paymentRecordMap = paymentRecordService.selectList(new EntityWrapper<PaymentRecord>())
                .stream()
                .collect(Collectors.toMap(PaymentRecord::getId, user1 -> user1));
        Map<Integer, SettlementRecord> settlementRecordMap = settlementRecordService.selectList(new EntityWrapper<SettlementRecord>())
                .stream()
                .collect(Collectors.toMap(SettlementRecord::getId, user1 -> user1));
        // 用户订单消费
        for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
            if (payType!=null){
                if (tOrderPrivateCar.getPayType()!=payType){
                    continue;
                }
            }
            WaterVO waterVO = new WaterVO();
            waterVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
            waterVO.setType("用户订单消费");
            switch (tOrderPrivateCar.getPayType()){
                case 1:
                    waterVO.setPayType("手机支付");
                    break;
                case 2:
                    waterVO.setPayType("银行卡支付");
                    break;
            }
            // 专车
            waterVO.setCode(tOrderPrivateCar.getOrderNum());
            String string = tOrderPrivateCar.getPayMoney().toString();
            waterVO.setMoney(new BigDecimal(string)+"");
            TUser user1 = userMap.get(tOrderPrivateCar.getUserId());
            if (user1!=null){
                waterVO.setName(user1.getNickName());
                waterVO.setPhone(user1.getPhone());
            }
            if (tOrderPrivateCar != null){
                waterVO.setRemark(tOrderPrivateCar.getRemark());
            }
            res.add(waterVO);
            userConsume = userConsume.add(new BigDecimal(waterVO.getMoney()));
        }
        for (TOrderLogistics tOrderLogistic : tOrderLogistics) {
            if (payType!=null){
                if (tOrderLogistic.getPayType()!=payType){
                    continue;
                }
            }
            WaterVO waterVO = new WaterVO();
            waterVO.setInsertTime(format.format(tOrderLogistic.getInsertTime()));
            waterVO.setType("用户订单消费");
            // 小件物流
            waterVO.setCode(tOrderLogistic.getOrderNum());
            String string = tOrderLogistic.getPayMoney().toString();
            waterVO.setMoney(new BigDecimal(string)+"");
            TUser user2 = userMap.get(tOrderLogistic.getUserId());
            if (user2!=null){
                waterVO.setName(user2.getNickName());
                waterVO.setPhone(user2.getPhone());
            }
            waterVO.setType("用户订单消费");
            switch (tOrderLogistic.getPayType()){
                case 1:
                    waterVO.setPayType("手机支付");
                    break;
                case 2:
                    waterVO.setPayType("银行卡支付");
                    break;
            }
            if (tOrderLogistics != null){
                waterVO.setRemark(tOrderLogistic.getRemark());
            }
            res.add(waterVO);
            userConsume = userConsume.add(new BigDecimal(waterVO.getMoney()));
        }
        for (OrderCancel orderCancel : orderCancels) {
            WaterVO waterVO = new WaterVO();
            switch (orderCancel.getOrderType()){
                case 1:
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(orderCancel.getOrderId());
                    if (tOrderPrivateCar == null){
                        continue;
                    }
                    waterVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
                    waterVO.setType("用户订单消费");
                    if (payType!=null){
                        if (!Objects.equals(tOrderPrivateCar.getPayType(), payType)){
                            continue;
                        }
                    }
                    switch (orderCancel.getPayType()){
                        case 1:
                            waterVO.setPayType("手机支付");
                            break;
                        case 2:
                            waterVO.setPayType("银行卡支付");
                            break;
                        case 3:
                            waterVO.setPayType("余额支付");
                            break;
                    }
                    // 专车
                    waterVO.setCode(tOrderPrivateCar.getOrderNum());
                    String string = orderCancel.getMoney().toString();
                    waterVO.setMoney(new BigDecimal(string)+"");
                    TUser user1 = userMap.get(orderCancel.getUserId());
                    if (user1!=null){
                        waterVO.setName(user1.getNickName());
                        waterVO.setPhone(user1.getPhone());
                    }
                    waterVO.setRemark(tOrderPrivateCar.getRemark());
                    res.add(waterVO);
                    userConsume = userConsume.add(new BigDecimal(waterVO.getMoney()));
                    break;
                case 4:
                    TOrderLogistics tOrderLogistics1 = orderLogisticsService.selectById(orderCancel.getOrderId());
                    if (payType!=null){
                        if (!Objects.equals(tOrderLogistics1.getPayType(), payType)){
                            continue;
                        }
                    }
                    WaterVO waterVO1 = new WaterVO();
                    waterVO1.setInsertTime(format.format(tOrderLogistics1.getInsertTime()));
                    waterVO1.setType("用户订单消费");
                    // 小件物流
                    waterVO1.setCode(tOrderLogistics1.getOrderNum());
                    String string1 = orderCancel.getMoney().toString();
                    waterVO1.setMoney(new BigDecimal(string1)+"");
                    TUser user2 = userMap.get(tOrderLogistics1.getUserId());
                    if (user2!=null){
                        waterVO1.setName(user2.getNickName());
                        waterVO1.setPhone(user2.getPhone());
                    }
                    waterVO1.setType("用户订单消费");
                    switch (orderCancel.getPayType()){
                        case 1:
                            waterVO1.setPayType("手机支付");
                            break;
                        case 2:
                            waterVO1.setPayType("银行卡支付");
                            break;
                        case 3:
                            waterVO1.setPayType("余额支付");
                            break;
                    }
                    waterVO1.setRemark(tOrderLogistics1.getRemark());
                    res.add(waterVO1);
                    userConsume = userConsume.add(new BigDecimal(waterVO1.getMoney()));
                    break;
            }
        }
        // 司机提现
        for (TPubWithdrawal tPubWithdrawal : driver) {
            if(payType!=null && payType == 2){
                break;
            }
            String code1 = tPubWithdrawal.getCode();
            if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){
                continue;
            }
            WaterVO waterVO = new WaterVO();
            waterVO.setInsertTime(format.format(tPubWithdrawal.getHandleTime()));
            waterVO.setCode(tPubWithdrawal.getCode());
            TDriver tDriver = driverMap.get(tPubWithdrawal.getUserId());
            if (tDriver!=null){
                waterVO.setName(tDriver.getFirstName()+tDriver.getLastName());
                waterVO.setPhone(tDriver.getPhone());
            }
            waterVO.setMoney("-"+tPubWithdrawal.getMoney());
            waterVO.setPayType("手机支付");
            waterVO.setType("司机提现");
            waterVO.setRemark(tPubWithdrawal.getRemark());
            res.add(waterVO);
            driverWithdrawal = driverWithdrawal.add(tPubWithdrawal.getMoney());
        }
        // 用户提现
        for (TPubWithdrawal tPubWithdrawal : user) {
            if(payType!=null && payType == 2){
                break;
            }
            String code1 = tPubWithdrawal.getCode();
            if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){
                continue;
            }
            WaterVO waterVO = new WaterVO();
            waterVO.setInsertTime(format.format(tPubWithdrawal.getHandleTime()));
            waterVO.setCode(tPubWithdrawal.getCode());
            TUser user2 = userMap.get(tPubWithdrawal.getUserId());
            if (user2!=null){
                waterVO.setName(user2.getNickName());
                waterVO.setPhone(user2.getPhone());
            }
            waterVO.setMoney("-"+tPubWithdrawal.getMoney());
            waterVO.setPayType("手机支付");
            waterVO.setType("用户提现");
            waterVO.setRemark(tPubWithdrawal.getRemark());
            res.add(waterVO);
            userWithdrawal = userWithdrawal.add(tPubWithdrawal.getMoney());
        }
        // 查询用户充值
        for (TPubTransactionDetails tPubTransactionDetail : tPubTransactionDetails) {
            WaterVO waterVO = new WaterVO();
            Integer orderId = tPubTransactionDetail.getOrderId();
            PaymentRecord paymentRecord = paymentRecordMap.get(orderId);
            if (paymentRecord!=null){
                if (paymentRecord.getState() == 1){
                    // 临时数据
                    continue;
                }
                String code1 = paymentRecord.getCode();
                if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){
                    continue;
                }
                waterVO.setInsertTime(format.format(paymentRecord.getInsertTime()));
                waterVO.setCode(paymentRecord.getCode());
                if (paymentRecord.getPayType()!=null){
                    switch (paymentRecord.getPayType()){
                        case 1:
                            if (payType!=null){
                                if (payType != 1){
                                    continue;
                                }
                            }
                            waterVO.setPayType("手机支付");
                            break;
                        case 2:
                            if (payType!=null){
                                if (payType != 2){
                                    continue;
                                }
                            }
                            waterVO.setPayType("银行卡支付");
                            break;
                        case 3:
                        case 4:
                            continue;
                    }
                }
                waterVO.setMoney(new BigDecimal(paymentRecord.getAmount().toString())+"");
            }else{
                continue;
            }
            if (paymentRecord.getUserId()!=null){
                TUser user2 = userMap.get(paymentRecord.getUserId());
                if (user2!=null){
                    waterVO.setName(user2.getNickName());
                    waterVO.setPhone(user2.getPhone());
                }
            }
            waterVO.setType("用户充值");
            waterVO.setRemark(tPubTransactionDetail.getRemark());
            res.add(waterVO);
            userRecharge = userRecharge.add(new BigDecimal(paymentRecord.getAmount().toString()));
        }
        // 查询所有已结算的订单
        for (SettlementDetail income : settlementDetails1) {
            WaterVO platformVO = new WaterVO();
            platformVO.setType("司机结算");
            switch (income.getOrderType()){
                case 1:
                    SettlementRecord settlementRecord = settlementRecordMap.get(income.getSettlementRecordId());
                    if (settlementRecord!=null && settlementRecord.getPaymentStatus()!=null && settlementRecord.getPaymentStatus() == 2){
                        if (settlementRecord.getPayType()!=null){
                            switch (settlementRecord.getPayType()){
                                case 1:
                                    if (payType!=null){
                                        if (payType != 1){
                                            continue;
                                        }
                                    }
                                    platformVO.setPayType("手机支付");
                                    break;
                                case 2:
                                    if (payType!=null){
                                        if (payType != 2){
                                            continue;
                                        }
                                    }
                                    platformVO.setPayType("银行卡支付");
                                    break;
                                case 3:
                                case 4:
                                    continue;
                            }
                        }
                    }else{
                        continue;
                    }
                    // 查询订单信息
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(income.getOrderId());
                    if (tOrderPrivateCar==null){
                        continue;
                    }
                    String code1 = tOrderPrivateCar.getOrderNum();
                    if(ToolUtil.isNotEmpty(code) && !code1.contains(code)){
                        continue;
                    }
                    platformVO.setCode(tOrderPrivateCar.getOrderNum());
                    TDriver tDriver = driverMap.get(tOrderPrivateCar.getDriverId());
                    if (tDriver != null){
                        platformVO.setName(tDriver.getFirstName()+tDriver.getLastName());
                        platformVO.setPhone(tDriver.getPhone());
                    }
                    platformVO.setRemark(tOrderPrivateCar.getRemark());
                    if (income.getCreateTime()!=null){
                        platformVO.setInsertTime(format.format(income.getCreateTime()));
                    }
                    platformVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
                    if (income.getPrice() != null){
                        String string = income.getPrice().toString();
                        BigDecimal bigDecimal1 = new BigDecimal(string);
                        platformVO.setMoney(bigDecimal1+"");
                    }else{
                        continue;
                    }
                    if (tOrderPrivateCar.getPayType() == null){
                        continue;
                    }
                    // 专车订单
                    String string4 = tOrderPrivateCar.getOrderMoney().toString();
                    balance = balance.add(new BigDecimal(string4));
                    res.add(platformVO);
                    break;
                case 4:
                    // 小件物流
                    // 查询订单信息
                    SettlementRecord settlementRecord1 = settlementRecordMap.get(income.getSettlementRecordId());
                    if (settlementRecord1!=null){
                        if (settlementRecord1.getPaymentStatus()!=null && settlementRecord1.getPaymentStatus() == 2){
                            switch (settlementRecord1.getPayType()){
                                case 1:
                                    if (payType!=null){
                                        if (payType != 1){
                                            continue;
                                        }
                                    }
                                    platformVO.setPayType("手机支付");
                                    break;
                                case 2:
                                    if (payType!=null){
                                        if (payType != 2){
                                            continue;
                                        }
                                    }
                                    platformVO.setPayType("银行卡支付");
                                    break;
                                case 3:
                                case 4:
                                    continue;
                            }
                        }else{
                            continue;
                        }
                    }else{
                        continue;
                    }
                    TOrderLogistics tOrderLogistics1 = orderLogisticsService.selectById(income.getOrderId());
                    if (tOrderLogistics1==null){
                        continue;
                    }
                    switch (tOrderLogistics1.getPayType()){
                        case 1:
                            if (payType!=null){
                                if (payType != 1){
                                    continue;
                                }
                            }
                            platformVO.setPayType("手机支付");
                            break;
                        case 2:
                            if (payType!=null){
                                if (payType != 2){
                                    continue;
                                }
                            }
                            platformVO.setPayType("银行卡支付");
                            break;
                        case 3:
                        case 4:
                            ;
                    }
                    String code2 = tOrderLogistics1.getOrderNum();
                    if(ToolUtil.isNotEmpty(code) && !code2.contains(code)){
                        continue;
                    }
                    platformVO.setCode(tOrderLogistics1.getOrderNum());
                    TDriver tDriver1 = driverMap.get(tOrderLogistics1.getDriverId());
                    if (tDriver1!=null){
                        platformVO.setName(tDriver1.getFirstName()+tDriver1.getLastName());
                        platformVO.setPhone(tDriver1.getPhone());
@@ -1735,42 +1776,84 @@
                    break;
            }
        }
        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
        List<Income> incomes = new ArrayList<>();
        List<SettlementDetail> settlementDetails = new ArrayList<>();
        if (time == null){
        if (time == 5 && !StringUtils.hasLength(insertTime)){
            incomes = tIncomeService.selectList(new EntityWrapper<Income>()
                    .eq("userType", 1)
                    .eq("objectId",1)
                    .ne("type", 1)
                    .isNotNull("orderType"));
        }else{
            if (time == 5 && !StringUtils.hasLength(insertTime)){
                incomes = tIncomeService.selectList(new EntityWrapper<Income>()
                        .eq("userType", 1)
                        .eq("objectId",1)
                        .ne("type", 1)
                        .isNotNull("orderType"));
            }else{
                incomes = tIncomeService.selectList(new EntityWrapper<Income>()
                        .eq("userType", 1)
                        .eq("objectId",1)
                        .ne("type", 1)
                        .isNotNull("orderType")
                        .between("insertTime", start, end));
            }
            incomes = tIncomeService.selectList(new EntityWrapper<Income>()
                    .eq("userType", 1)
                    .eq("objectId",1)
                    .ne("type", 1)
                    .isNotNull("orderType")
                    .between("insertTime", start, end));
        }
        EntityWrapper<SettlementDetail> settlementDetailEntityWrapper = new EntityWrapper<>();
        if (time == 5 && !StringUtils.hasLength(insertTime)){
        }else{
            settlementDetailEntityWrapper.between("createTime", start, end);
        }
        if (state!=null && state == 2){
            List<SettlementRecord> paymentStatus = settlementRecordService.selectList(new EntityWrapper<SettlementRecord>().eq("paymentStatus", 1));
            if(paymentStatus.size() > 0){
                settlementDetailEntityWrapper.in("settlementRecordId", paymentStatus.stream().map(SettlementRecord::getId).collect(Collectors.toList()))
                        .or().isNull("settlementRecordId");
            }else{
                settlementDetailEntityWrapper.eq("settlementRecordId", 0);
            }
        }else if (state!=null && state == 1){
            List<SettlementRecord> paymentStatus = settlementRecordService.selectList(new EntityWrapper<SettlementRecord>().eq("paymentStatus", 2));
            if(paymentStatus.size() > 0){
                settlementDetailEntityWrapper.in("settlementRecordId", paymentStatus.stream().map(SettlementRecord::getId).collect(Collectors.toList()));
            }else{
                settlementDetailEntityWrapper.eq("settlementRecordId", 0);
            }
        }
        settlementDetails = settlementDetailService.selectList(settlementDetailEntityWrapper);
        List<PlatformVO> res = new ArrayList<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Map<Integer, TUser> userMap = appUserService.selectList(new EntityWrapper<TUser>())
                .stream()
                .collect(Collectors.toMap(TUser::getId, user -> user));
        Map<Integer, TDriver> driverMap = driverService.selectList(new EntityWrapper<TDriver>())
                .stream()
                .collect(Collectors.toMap(TDriver::getId, user -> user));
        Map<Integer, SettlementRecord> settlementRecordMap = settlementRecordService.selectList(new EntityWrapper<SettlementRecord>())
                .stream()
                .collect(Collectors.toMap(SettlementRecord::getId, user -> user));
        Map<Integer, SettlementDetail> settlementDetailMap = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>())
                .stream()
                .collect(Collectors.toMap(SettlementDetail::getId, user -> user));
        Map<Integer, TOrderPrivateCar> orderPrivateCarMap = orderPrivateCarService.selectList(new EntityWrapper<TOrderPrivateCar>())
                .stream()
                .collect(Collectors.toMap(TOrderPrivateCar::getId, user -> user));
        Map<Integer, TOrderLogistics> orderLogisticsRecordMap = orderLogisticsService.selectList(new EntityWrapper<TOrderLogistics>())
                .stream()
                .collect(Collectors.toMap(TOrderLogistics::getId, user -> user));
        // 专车取消订单
        Map<Integer, OrderCancel> orderCancelRecordMap1 = orderCancelService.selectList(new EntityWrapper<OrderCancel>()
                        .eq("orderType",1)
                        .eq("state",2)
                        .isNotNull("payType")
                        .isNotNull("money")
                )
                .stream()
                .collect(Collectors.toMap(OrderCancel::getOrderId, user -> user));
        // 小件物流取消
        Map<Integer, OrderCancel> orderCancelRecordMap2 = orderCancelService.selectList(new EntityWrapper<OrderCancel>()
                        .eq("state",2)
                        .isNotNull("payType")
                        .isNotNull("money")
                        .eq("orderType",4)
                )
                .stream()
                .collect(Collectors.toMap(OrderCancel::getOrderId, user -> user));
        // 已结算金额
        BigDecimal balance = new BigDecimal("0");
        // 未结算金额
@@ -1785,12 +1868,13 @@
                        continue;
                    }
                    // 查询订单信息
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(income.getIncomeId());
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarMap.get(income.getIncomeId());
                    if (tOrderPrivateCar==null){
                        continue;
                    }
                    platformVO.setCode(tOrderPrivateCar.getOrderNum());
                    TDriver tDriver = driverService.selectById(tOrderPrivateCar.getDriverId());
                    TDriver tDriver = driverMap.get(tOrderPrivateCar.getDriverId());
                    if (tDriver != null){
                        platformVO.setDriverName(tDriver.getFirstName()+tDriver.getLastName());
                        platformVO.setDriverPhone(tDriver.getPhone());
@@ -1801,23 +1885,47 @@
                    }
                    platformVO.setMoney(new BigDecimal(income.getMoney()));
                    platformVO.setInsertTime(format.format(income.getInsertTime()));
                    if (tOrderPrivateCar.getPayType() == null){
                    if (tOrderPrivateCar.getState()!=10 && tOrderPrivateCar.getPayType() == null){
                        continue;
                    }
                    switch (tOrderPrivateCar.getPayType()){
                        case 1:
                            platformVO.setPayType("手机支付");
                            break;
                        case 2:
                            platformVO.setPayType("银行卡支付");
                            break;
                        case 3:
                            platformVO.setPayType("余额支付");
                            break;
                        case 4:
                            platformVO.setPayType("现金支付");
                            break;
                    if (tOrderPrivateCar.getState() == 10){
                        // 查询取消订单 用户支付方式
                        OrderCancel orderCancel = orderCancelRecordMap1.get(tOrderPrivateCar.getId());
                        if (orderCancel!=null &&orderCancel.getPayType()!=null){
                            switch (orderCancel.getPayType()){
                                case 1:
                                    platformVO.setPayType("手机支付");
                                    break;
                                case 2:
                                    platformVO.setPayType("银行卡支付");
                                    break;
                                case 3:
                                    platformVO.setPayType("余额支付");
                                    break;
                            }
                        }
                    }else{
                        if (tOrderPrivateCar.getPayType()!=null){
                            switch (tOrderPrivateCar.getPayType()){
                                case 1:
                                    platformVO.setPayType("手机支付");
                                    break;
                                case 2:
                                    platformVO.setPayType("银行卡支付");
                                    break;
                                case 3:
                                    platformVO.setPayType("余额支付");
                                    break;
                                case 4:
                                    platformVO.setPayType("现金支付");
                                case 5:
                                    platformVO.setPayType("平台支付");
                                    break;
                            }
                        }
                    }
                    // 专车订单
                    balance = balance.add(new BigDecimal(income.getMoney()));
@@ -1829,12 +1937,14 @@
                    }
                    // 小件物流
                    // 查询订单信息
                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(income.getIncomeId());
//
                    TOrderLogistics tOrderLogistics = orderLogisticsRecordMap.get(income.getIncomeId());
                    if (tOrderLogistics==null){
                        continue;
                    }
                    platformVO.setCode(tOrderLogistics.getOrderNum());
                    TDriver tDriver1 = driverService.selectById(tOrderLogistics.getDriverId());
                    TDriver tDriver1 = driverMap.get(tOrderLogistics.getDriverId());
                    if (tDriver1!=null){
                        platformVO.setDriverName(tDriver1.getFirstName()+tDriver1.getLastName());
                        platformVO.setDriverPhone(tDriver1.getPhone());
@@ -1845,22 +1955,44 @@
                        platformVO.setEndTime(format.format(income.getInsertTime()));
                    }
                    platformVO.setInsertTime(format.format(tOrderLogistics.getInsertTime()));
                    if (tOrderLogistics.getPayType() == null){
                    if (tOrderLogistics.getState()!=10 && tOrderLogistics.getPayType() == null){
                        continue;
                    }
                    switch (tOrderLogistics.getPayType()){
                        case 1:
                            platformVO.setPayType("手机支付");
                            break;
                        case 2:
                            platformVO.setPayType("银行卡支付");
                            break;
                        case 3:
                            platformVO.setPayType("余额支付");
                            break;
                        case 4:
                            platformVO.setPayType("现金支付");
                            break;
                    if (tOrderLogistics.getState() == 10){
                        // 查询取消订单 用户支付方式
                        OrderCancel orderCancel = orderCancelRecordMap2.get(tOrderLogistics.getId());
                        if (orderCancel!=null &&orderCancel.getPayType()!=null){
                            switch (orderCancel.getPayType()){
                                case 1:
                                    platformVO.setPayType("手机支付");
                                    break;
                                case 2:
                                    platformVO.setPayType("银行卡支付");
                                    break;
                                case 3:
                                    platformVO.setPayType("余额支付");
                                    break;
                            }
                        }
                    }else{
                        if (tOrderLogistics.getPayType()!=null){
                            switch (tOrderLogistics.getPayType()){
                                case 1:
                                    platformVO.setPayType("手机支付");
                                    break;
                                case 2:
                                    platformVO.setPayType("银行卡支付");
                                    break;
                                case 3:
                                    platformVO.setPayType("余额支付");
                                    break;
                                case 4:
                                    platformVO.setPayType("现金支付");
                                    break;
                            }
                        }
                    }
                    // 专车订单
@@ -1875,12 +2007,13 @@
            switch (settlementDetail.getOrderType()){
                case 1:
                    // 专车订单
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(settlementDetail.getOrderId());
                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarMap.get(settlementDetail.getOrderId());
                    if (tOrderPrivateCar==null){
                        continue;
                    }
                    platformVO.setCode(tOrderPrivateCar.getOrderNum());
                    TDriver tDriver = driverService.selectById(tOrderPrivateCar.getDriverId());
                    TDriver tDriver = driverMap.get(tOrderPrivateCar.getDriverId());
                    if (tDriver!=null){
                        platformVO.setDriverName(tDriver.getFirstName()+tDriver.getLastName());
                        platformVO.setDriverPhone(tDriver.getPhone());
@@ -1892,7 +2025,7 @@
                    platformVO.setMoney(bigDecimal1);
                    platformVO.setPayType("现金支付");
                    if (settlementDetail.getSettlementRecordId()!=null){
                        SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
                        SettlementRecord settlementRecord = settlementRecordMap.get(settlementDetail.getSettlementRecordId());
                        if (settlementRecord.getPaymentStatus()!=null && settlementRecord.getPaymentStatus()==2){
                            if (state!=null && state!=1){
                                continue;
@@ -1900,7 +2033,7 @@
                            // 已结算
                            platformVO.setState(1);
                            balance = balance.add(new BigDecimal(settlementDetail.getPrice()));
                            platformVO.setEndTime(format.format(settlementRecord.getPayTime()));
                            platformVO.setEndTime(format.format(settlementDetail.getCreateTime()));
                        }else{
                            // 未结算
                            if (state!=null && state!=2){
@@ -1921,12 +2054,12 @@
                case 4:
                    // 小件物流
                    // 查询订单信息
                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(settlementDetail.getOrderId());
                    TOrderLogistics tOrderLogistics = orderLogisticsRecordMap.get(settlementDetail.getOrderId());
                    if (tOrderLogistics==null){
                        continue;
                    }
                    platformVO.setCode(tOrderLogistics.getOrderNum());
                    TDriver tDriver1 = driverService.selectById(tOrderLogistics.getDriverId());
                    TDriver tDriver1 = driverMap.get(tOrderLogistics.getDriverId());
                    if (tDriver1!=null){
                        platformVO.setDriverName(tDriver1.getFirstName()+tDriver1.getLastName());
                        platformVO.setDriverPhone(tDriver1.getPhone());
@@ -1938,7 +2071,7 @@
                    platformVO.setInsertTime(format.format(tOrderLogistics.getInsertTime()));
                    platformVO.setPayType("现金支付");
                    if (settlementDetail.getSettlementRecordId()!=null){
                        SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
                        SettlementRecord settlementRecord = settlementRecordMap.get(settlementDetail.getSettlementRecordId());
                        if (settlementRecord.getPaymentStatus()!=null && settlementRecord.getPaymentStatus()==2){
                            if (state!=null && state!=1){
                                continue;
@@ -1946,7 +2079,7 @@
                            // 已结算
                            platformVO.setState(1);
                            balance = balance.add(new BigDecimal(settlementDetail.getPrice()));
                            platformVO.setEndTime(format.format(settlementRecord.getDay()));
                            platformVO.setEndTime(format.format(settlementDetail.getCreateTime()));
                        }else{
                            // 未结算
                            if (state!=null && state!=2){