From 4a4e6780ce6e930beb067323c7c3f232d36e75cb Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期五, 17 五月 2024 17:40:44 +0800
Subject: [PATCH] 车型、司机活动、平台佣金统计

---
 ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/platform/watter.html                                        |  147 +
 ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/grant.html                                          |  134 +
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSysOverTimeMapper.xml              |    7 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISettlementDetailService.java           |   20 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/GrantMoneyVO.java                            |   24 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISysRedSetService.java                  |   25 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITSysOverTimeService.java               |   17 
 ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/subsidy/use.js                                            |  256 ++
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSysOverTimeMapper.java                     |   16 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysRedSet.java                           |   62 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementDetailServiceImpl.java   |   28 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java |  203 ++
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SettlementDetailMapper.java                 |   21 
 ManagementIGOTravel/guns-admin/src/main/webapp/static/img/-.png                                                                |    0 
 ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/subsidy/grant.js                                          |  258 ++
 ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tSysReformist/tRedSetInfo.js                              |   66 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java                     |    3 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/GrantVO.java                                 |   22 
 ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/platform/commission.html                                    |    5 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java                     |    5 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SettlementDetailMapper.xml          |   22 
 ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html                            |  151 +
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java             |    3 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserRedPacketRecord.java                  |   26 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IncomeMapper.java                           |    4 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysOverTime.java                         |   57 
 ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSetEdit.html                              |   40 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/WaterMoneyVO.java                            |   26 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/WaterVO.java                                 |   28 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSysRedSetServiceImpl.java         |   34 
 ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/use.html                                            |  146 +
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/PlatformController.java              | 1860 +++++++++++++++++++
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/PlatformVO.java                              |   34 
 ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSetAdd.html                               |   42 
 ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/platform.js                                      |   87 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSysRedSetMapper.xml                |   12 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/PlatformMoneyVO.java                         |   22 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/UseMoneyVO.java                              |   27 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSysOverTimeServiceImpl.java       |   23 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSysRedSetMapper.java                       |   23 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TSubsidyController.java              | 1166 ++++++++++++
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml                    |    1 
 ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/water.js                                         |  271 ++
 ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tSysReformist/tRedSet.js                                  |  125 +
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SettlementDetail.java                     |   58 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysCancleOrder.java                      |   19 
 ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSet.html                                  |   36 
 47 files changed, 5,573 insertions(+), 89 deletions(-)

diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/PlatformController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/PlatformController.java
index 2d976f0..68cf310 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/PlatformController.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/PlatformController.java
@@ -1,12 +1,20 @@
 package com.stylefeng.guns.modular.system.controller;
 
+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.DateUtil;
 import com.stylefeng.guns.core.util.ExcelExportUtil;
 import com.stylefeng.guns.core.util.SinataUtil;
-import com.stylefeng.guns.modular.system.service.IIncomeService;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.vo.PlatformMoneyVO;
+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 org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -15,10 +23,13 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+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.*;
 
 /**
  * 控制器
@@ -27,40 +38,1847 @@
  * @Date 2021-04-22 10:53:34
  */
 @Controller
-@RequestMapping("/platform/commission")
+@RequestMapping("/platform")
 public class PlatformController extends BaseController {
-
     private String PREFIX = "/system/platform/";
-
     @Autowired
     private IIncomeService tIncomeService;
-
+    @Autowired
+    private ITOrderPrivateCarService orderPrivateCarService;
+    @Autowired
+    private ITOrderLogisticsService orderLogisticsService;
     /**
      * 跳转到首页
      */
-    @RequestMapping("")
+    @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;
+
+    public static void main(String[] args) {
+        // 获取今天的日期
+        LocalDate today = LocalDate.now();
+        // 获取本周第一天的日期和时间
+        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);
+
+        // 获取本月第一天的日期和时间
+        LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
+        LocalDateTime startOfMonth = firstDayOfMonth.atStartOfDay();
+
+        // 获取本月最后一天的日期和时间
+        LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());
+        LocalDateTime endOfMonth = lastDayOfMonth.atTime(LocalTime.MAX);
+
+        // 获取本年第一天的日期和时间
+        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);
+
+
+    }
+
+
+
+    /**
+     *
+     * 计算金额
+     * @param time
+     * @param insertTime
+     * @param state
+     * @return
+     */
+    @RequestMapping(value = "/commission/getCount")
+    @ResponseBody
+    public Object getCount(Integer time,String insertTime,Integer state) {
+        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<Income> incomes = new ArrayList<>();
+        List<SettlementDetail> settlementDetails = new ArrayList<>();
+        if (state!=null){
+            switch (state){
+                case 1:
+                    // 已结算
+                    // 查询已结算的
+                    incomes = tIncomeService.selectList(new EntityWrapper<Income>()
+                            .eq("userType", 2)
+                            .ne("type", 1)
+                            .isNotNull("orderType")
+                            .between("insertTime", start, end));
+
+
+                    break;
+                case 2:
+                    // 未结算
+
+                    break;
+            }
+        }else{
+            incomes = tIncomeService.selectList(new EntityWrapper<Income>()
+                    .eq("userType", 2)
+                    .ne("type", 1)
+                    .isNotNull("orderType")
+                    .between("insertTime", start, end));
+        }
+
+
+        List<PlatformVO> res = new ArrayList<>();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        // 已结算金额
+        BigDecimal balance = new BigDecimal("0");
+        // 未结算金额
+        BigDecimal unBalance = new BigDecimal("0");
+        // 查询所有已结算的订单
+        for (Income income : incomes) {
+            PlatformVO platformVO = new PlatformVO();
+            platformVO.setState(1);
+            switch (income.getOrderType()){
+                case 1:
+                    // 查询订单信息
+                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(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){
+                        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);
+                    break;
+                case 4:
+                    // 小件物流
+                    // 查询订单信息
+                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(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){
+                        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<>();
+        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());
+                    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("现金支付");
+
+                    // 查询是否结算
+                    SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+                    if (state!=null){
+                        if (state == 1){
+                            // 查询已结算的
+                            if (settlementRecord.getPaymentStatus() == 1){
+                                continue;
+                            }
+                        }
+                        if (state == 2){
+                            // 查询未结算的
+                            if (settlementRecord.getPaymentStatus() == 2){
+                                continue;
+                            }
+                        }
+                    }
+                    if (settlementRecord.getPaymentStatus() == 2){
+                        // 已结算
+                        platformVO.setState(1);
+                        balance = balance.add(new BigDecimal(settlementDetail.getPrice()));
+                        if (settlementRecord.getDay()!=null){
+                            platformVO.setEndTime(format.format(settlementRecord.getDay()));
+                        }
+                    }else{
+                        // 未结算
+                        platformVO.setState(2);
+                        unBalance = unBalance.add(new BigDecimal(settlementDetail.getPrice()));
+                    }
+                    res.add(platformVO);
+                    break;
+                case 4:
+                    // 小件物流
+                    // 查询订单信息
+                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(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("现金支付");
+                    // 查询是否结算
+                    SettlementRecord settlementRecord1 = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+                    if (state!=null){
+                        if (state == 1){
+                            // 查询已结算的
+                            if (settlementRecord1.getPaymentStatus() == 1){
+                                continue;
+                            }
+                        }
+                        if (state == 2){
+                            // 查询未结算的
+                            if (settlementRecord1.getPaymentStatus() == 2){
+                                continue;
+                            }
+                        }
+                    }
+                    if (settlementRecord1.getPaymentStatus() == 2){
+                        // 已结算
+                        platformVO.setState(1);
+                        balance = balance.add(new BigDecimal(settlementDetail.getPrice()));
+                        if (settlementRecord1.getDay()!=null){
+                            platformVO.setEndTime(format.format(settlementRecord1.getDay()));
+                        }
+                    }else{
+                        // 未结算
+                        platformVO.setState(2);
+                        unBalance = unBalance.add(new BigDecimal(settlementDetail.getPrice()));
+                    }
+                    res.add(platformVO);
+                    break;
+            }
+        }
+        PlatformMoneyVO platformMoneyVO = new PlatformMoneyVO();
+        // 计算佣金总额
+        BigDecimal add = unBalance.add(balance);
+        BigDecimal bigDecimal = add.setScale(2, RoundingMode.HALF_UP);
+        BigDecimal bigDecimal1 = unBalance.setScale(2, RoundingMode.HALF_UP);
+        BigDecimal bigDecimal2 = balance.setScale(2, RoundingMode.HALF_UP);
+        platformMoneyVO.setTotal(bigDecimal);
+        platformMoneyVO.setBalance(bigDecimal2);
+        platformMoneyVO.setUnBalance(bigDecimal1);
+        return platformMoneyVO;
+    }
+
+    /**
+     * 第三方流水统计 获取金额
+     * @param time
+     * @param insertTime
+     * @param
+     * @return
+     */
+    @RequestMapping(value = "/water/getCount")
+    @ResponseBody
+    public Object getCount1(Integer time,String insertTime,Integer payType,Integer type) {
+        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<Income> incomes = new ArrayList<>();
+        List<SettlementDetail> settlementDetails = new ArrayList<>();
+        // 用户订单记录
+        List<TPubTransactionDetails> tOrderPrivateCars = new ArrayList<>();
+        // 用户充值
+        List<TPubTransactionDetails> tPubTransactionDetails = new ArrayList<>();
+        // 司机提现
+        List<TPubWithdrawal> driver = new ArrayList<>();
+        // 用户提现
+        List<TPubWithdrawal> user = new ArrayList<>();
+        // 余额充值wrapper
+        Wrapper<TPubTransactionDetails> orderType = new EntityWrapper<TPubTransactionDetails>()
+                .eq("orderType", 5)
+                .between("insertTime",start,end);
+        // 用户提现wrapper
+        Wrapper<TPubWithdrawal> userWrapper = new EntityWrapper<TPubWithdrawal>()
+                .eq("state", 2)
+                .eq("userType", 1)
+                .between("handleTime", start, end);
+        // 司机提现wrapper
+        Wrapper<TPubWithdrawal> between = new EntityWrapper<TPubWithdrawal>()
+                .eq("state", 2)
+                .eq("userType", 2)
+                .between("handleTime", start, end);
+        // 用户订单wrapper
+//        Wrapper<PaymentRecord> between1 = new EntityWrapper<PaymentRecord>()
+//                .eq("type", 1)
+//                .eq("category", 1)
+//                .ne("orderType", 3)
+//                .ne("orderType", 5)
+//                .ne("orderType", 6)
+//                .between("insertTime", start, end);
+        // 用户订单wrapper
+        Wrapper<TPubTransactionDetails> between1 = new EntityWrapper<TPubTransactionDetails>()
+                .in("orderType", Arrays.asList(1, 4))
+                .between("insertTime", start, end);
+
+        if (type != null){
+            switch (type){
+                case 1:
+                    // 只查询用户订单
+                    tOrderPrivateCars = pubTransactionDetailsService.selectList(between1);
+                    break;
+                case 2:
+                    // 只查询用户充值
+                    tPubTransactionDetails = pubTransactionDetailsService.selectList(orderType);
+                    break;
+                case 3:
+                    // 只查询司机已结算的
+                    incomes = tIncomeService.selectList(new EntityWrapper<Income>()
+                            .eq("userType", 2)
+                            .ne("type", 1)
+                            .isNotNull("orderType")
+                            .between("insertTime", start, end));
+                    break;
+                case 4:
+                    if(payType!=null && payType == 2){
+                        break;
+                    }
+                    driver = pubWithdrawalService.selectList(between);
+                    // 只查询司机提现
+                    break;
+                case 5:
+                    if(payType!=null && payType == 2){
+                        break;
+                    }
+                    // 只查询用户提现
+                    user = pubWithdrawalService.selectList(userWrapper);
+                    break;
+            }
+        }else{
+            tOrderPrivateCars = pubTransactionDetailsService.selectList(between1);
+            tPubTransactionDetails = pubTransactionDetailsService.selectList(orderType);
+            incomes = tIncomeService.selectList(new EntityWrapper<Income>()
+                    .eq("userType", 2)
+                    .ne("type", 1)
+                    .isNotNull("orderType")
+                    .between("insertTime", start, end));
+            driver = pubWithdrawalService.selectList(between);
+            user = pubWithdrawalService.selectList(userWrapper);
+        }
+        List<WaterVO> res = new ArrayList<>();
+//        List<PlatformVO> 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 (TPubTransactionDetails tOrderPrivateCar : tOrderPrivateCars) {
+            WaterVO waterVO = new WaterVO();
+            waterVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+            waterVO.setType("用户订单消费");
+            switch (tOrderPrivateCar.getOrderType()){
+                case 1:
+                    // 专车
+                    TOrderPrivateCar tOrderPrivateCar1 = orderPrivateCarService.selectById(tOrderPrivateCar.getOrderId());
+                    if (tOrderPrivateCar1 != null){
+                        waterVO.setCode(tOrderPrivateCar1.getOrderNum());
+                        String string = tOrderPrivateCar.getMoney().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 (tOrderPrivateCar1 != null){
+                        if (tOrderPrivateCar1.getPayType()!=null){
+                            switch (tOrderPrivateCar1.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;
+                            }
+                        }else{
+                            continue;
+                        }
+                    }else{
+                        continue;
+                    }
+                    if (tOrderPrivateCar1 != null){
+                        waterVO.setRemark(tOrderPrivateCar1.getRemark());
+                    }
+                    res.add(waterVO);
+                    userConsume = userConsume.add(new BigDecimal(tOrderPrivateCar.getMoney().toString()));
+                    break;
+                case 4:
+                    // 小件物流
+                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(tOrderPrivateCar.getOrderId());
+                    if (tOrderLogistics != null){
+                        waterVO.setCode(tOrderLogistics.getOrderNum());
+                        String string = tOrderPrivateCar.getMoney().toString();
+                        waterVO.setMoney(new BigDecimal(string));
+                    }else{
+                        waterVO.setMoney(new BigDecimal("0"));
+                    }
+                    TUser user2 = appUserService.selectById(tOrderPrivateCar.getUserId());
+                    if (user2!=null){
+                        waterVO.setName(user2.getNickName());
+                        waterVO.setPhone(user2.getPhone());
+                    }
+                    waterVO.setType("用户订单消费");
+                    if (tOrderLogistics != null){
+                        if (tOrderLogistics.getPayType()!=null){
+                            switch (tOrderLogistics.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;
+                            }
+                        }else{
+                            continue;
+                        }
+                    }else{
+                        continue;
+                    }
+                    if (tOrderLogistics != null){
+                        waterVO.setRemark(tOrderLogistics.getRemark());
+                    }
+                    res.add(waterVO);
+                    userConsume = userConsume.add(new BigDecimal(tOrderPrivateCar.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();
+            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){
+                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 (Income income : incomes) {
+            WaterVO platformVO = new WaterVO();
+            platformVO.setType("司机结算");
+            switch (income.getOrderType()){
+                case 1:
+                    // 查询订单信息
+                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(income.getIncomeId());
+                    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.getInsertTime()!=null){
+                        platformVO.setInsertTime(format.format(income.getInsertTime()));
+                    }
+                    platformVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+                    if (tOrderPrivateCar.getOrderMoney() != null){
+                        String string = tOrderPrivateCar.getOrderMoney().toString();
+                        BigDecimal bigDecimal1 = new BigDecimal(string);
+                        platformVO.setMoney(bigDecimal1);
+                    }else{
+                        continue;
+                    }
+
+                    if (tOrderPrivateCar.getPayType() == null){
+                        continue;
+                    }
+                    switch (tOrderPrivateCar.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;
+                    }
+
+                    // 专车订单
+                    String string4 = tOrderPrivateCar.getOrderMoney().toString();
+                    balance = balance.add(new BigDecimal(string4));
+                    res.add(platformVO);
+                    break;
+                case 4:
+                    // 小件物流
+                    // 查询订单信息
+                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(income.getIncomeId());
+                    if (tOrderLogistics==null){
+                        continue;
+                    }
+                    platformVO.setCode(tOrderLogistics.getOrderNum());
+                    TDriver tDriver1 = driverService.selectById(tOrderLogistics.getDriverId());
+                    if (tDriver1!=null){
+                        platformVO.setName(tDriver1.getFirstName()+tDriver1.getLastName());
+                        platformVO.setPhone(tDriver1.getPhone());
+                    }
+
+                    platformVO.setRemark(tOrderLogistics.getRemark());
+                    platformVO.setMoney(new BigDecimal(income.getMoney()));
+                    if (income.getInsertTime()!=null){
+                        platformVO.setInsertTime(format.format(income.getInsertTime()));
+                    }
+                    platformVO.setInsertTime(format.format(tOrderLogistics.getInsertTime()));
+                    if (tOrderLogistics.getPayType() == null){
+                        continue;
+                    }
+                    switch (tOrderLogistics.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;
+                    }
+                    String string1 = tOrderLogistics.getOrderMoney().toString();
+                    // 小件物流订单
+                    balance = balance.add(new BigDecimal(string1));
+                    res.add(platformVO);
+                    break;
+            }
+        }
+//        EntityWrapper<SettlementDetail> settlementDetailEntityWrapper = new EntityWrapper<>();
+//        settlementDetailEntityWrapper.between("createTime", start, end);
+//        settlementDetails = settlementDetailService.selectList(settlementDetailEntityWrapper);
+//        // 查询所有现金支付的订单
+//        for (SettlementDetail settlementDetail : settlementDetails) {
+//            WaterVO platformVO = new WaterVO();
+//            switch (settlementDetail.getOrderType()){
+//                case 1:
+//                    // 专车订单
+//                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(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("现金支付");
+//                    // 查询是否结算
+//                    SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+//
+//                    if (settlementRecord.getPaymentStatus() == 1){
+//                        continue;
+//                    }
+//
+//                    // 已结算
+//                    platformVO.setState(1);
+//                    balance = balance.add(new BigDecimal(settlementDetail.getPrice()));
+//                    if (settlementRecord.getDay()!=null){
+//                        platformVO.setInsertTime(format.format(settlementRecord.getDay()));
+//                    }
+//
+//                    res.add(platformVO);
+//                    break;
+//                case 4:
+//                    // 小件物流
+//                    // 查询订单信息
+//                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(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("现金支付");
+//                    // 查询是否结算
+//                    SettlementRecord settlementRecord1 = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+//                    if (payType!=null){
+//                        if (payType == 1){
+//                            // 查询已结算的
+//                            if (settlementRecord1.getPaymentStatus() == 1){
+//                                continue;
+//                            }
+//                        }
+//                        if (payType == 2){
+//                            // 查询未结算的
+//                            if (settlementRecord1.getPaymentStatus() == 2){
+//                                continue;
+//                            }
+//                        }
+//                    }
+//                    if (settlementRecord1.getPaymentStatus() == 2){
+//                        // 已结算
+//                        platformVO.setState(1);
+//                        balance = balance.add(new BigDecimal(settlementDetail.getPrice()));
+//                        if (settlementRecord1.getDay()!=null){
+//                            platformVO.setInsertTime(format.format(settlementRecord1.getDay()));
+//                        }
+//                    }else{
+//                        // 未结算
+//                        platformVO.setState(2);
+//                        unBalance = unBalance.add(new BigDecimal(settlementDetail.getPrice()));
+//                    }
+//                    res.add(platformVO);
+//                    break;
+//            }
+//        }
+        // 计算佣金总额
+//        BigDecimal add = unBalance.add(balance);
+        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;
+    @RequestMapping(value = "/water/list")
+    @ResponseBody
+    public Object list1(Integer time,String insertTime,Integer payType,Integer type) {
+        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<Income> incomes = new ArrayList<>();
+        List<SettlementDetail> settlementDetails = new ArrayList<>();
+        // 用户订单记录
+        List<TPubTransactionDetails> tOrderPrivateCars = new ArrayList<>();
+        // 用户充值
+        List<TPubTransactionDetails> tPubTransactionDetails = new ArrayList<>();
+        // 司机提现
+        List<TPubWithdrawal> driver = new ArrayList<>();
+        // 用户提现
+        List<TPubWithdrawal> user = new ArrayList<>();
+        // 余额充值wrapper
+        Wrapper<TPubTransactionDetails> orderType = new EntityWrapper<TPubTransactionDetails>()
+                .eq("orderType", 5)
+                .between("insertTime",start,end);
+        // 用户提现wrapper
+        Wrapper<TPubWithdrawal> userWrapper = new EntityWrapper<TPubWithdrawal>()
+                .eq("state", 2)
+                .eq("userType", 1)
+                .between("handleTime", start, end);
+        // 司机提现wrapper
+        Wrapper<TPubWithdrawal> between = new EntityWrapper<TPubWithdrawal>()
+                .eq("state", 2)
+                .eq("userType", 2)
+                .between("handleTime", start, end);
+        // 用户订单wrapper
+//        Wrapper<PaymentRecord> between1 = new EntityWrapper<PaymentRecord>()
+//                .eq("type", 1)
+//                .eq("category", 1)
+//                .ne("orderType", 3)
+//                .ne("orderType", 5)
+//                .ne("orderType", 6)
+//                .between("insertTime", start, end);
+        // 用户订单wrapper
+        Wrapper<TPubTransactionDetails> between1 = new EntityWrapper<TPubTransactionDetails>()
+                .in("orderType", Arrays.asList(1, 4))
+                .between("insertTime", start, end);
+
+        if (type != null){
+            switch (type){
+                case 1:
+                    // 只查询用户订单
+                    tOrderPrivateCars = pubTransactionDetailsService.selectList(between1);
+                    break;
+                case 2:
+                    // 只查询用户充值
+                    tPubTransactionDetails = pubTransactionDetailsService.selectList(orderType);
+                    break;
+                case 3:
+                    // 只查询司机已结算的
+                    incomes = tIncomeService.selectList(new EntityWrapper<Income>()
+                            .eq("userType", 2)
+                            .ne("type", 1)
+                            .isNotNull("orderType")
+                            .between("insertTime", start, end));
+                    break;
+                case 4:
+                    if(payType!=null && payType == 2){
+                        break;
+                    }
+                    driver = pubWithdrawalService.selectList(between);
+                    // 只查询司机提现
+                    break;
+                case 5:
+                    if(payType!=null && payType == 2){
+                        break;
+                    }
+                    // 只查询用户提现
+                    user = pubWithdrawalService.selectList(userWrapper);
+                    break;
+            }
+        }else{
+            tOrderPrivateCars = pubTransactionDetailsService.selectList(between1);
+            tPubTransactionDetails = pubTransactionDetailsService.selectList(orderType);
+            incomes = tIncomeService.selectList(new EntityWrapper<Income>()
+                    .eq("userType", 2)
+                    .ne("type", 1)
+                    .isNotNull("orderType")
+                    .between("insertTime", start, end));
+            driver = pubWithdrawalService.selectList(between);
+            user = pubWithdrawalService.selectList(userWrapper);
+        }
+        List<WaterVO> res = new ArrayList<>();
+//        List<PlatformVO> 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 (TPubTransactionDetails tOrderPrivateCar : tOrderPrivateCars) {
+            WaterVO waterVO = new WaterVO();
+            waterVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+            waterVO.setType("用户订单消费");
+            switch (tOrderPrivateCar.getOrderType()){
+                case 1:
+                    // 专车
+                    TOrderPrivateCar tOrderPrivateCar1 = orderPrivateCarService.selectById(tOrderPrivateCar.getOrderId());
+                    if (tOrderPrivateCar1 != null){
+                        waterVO.setCode(tOrderPrivateCar1.getOrderNum());
+                        String string = tOrderPrivateCar.getMoney().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 (tOrderPrivateCar1 != null){
+                        if (tOrderPrivateCar1.getPayType()!=null){
+                            switch (tOrderPrivateCar1.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;
+                            }
+                        }else{
+                            continue;
+                        }
+                    }else{
+                        continue;
+                    }
+                    if (tOrderPrivateCar1 != null){
+                        waterVO.setRemark(tOrderPrivateCar1.getRemark());
+                    }
+                    res.add(waterVO);
+                    userConsume = userConsume.add(new BigDecimal(tOrderPrivateCar.getMoney().toString()));
+                    break;
+                case 4:
+                    // 小件物流
+                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(tOrderPrivateCar.getOrderId());
+                    if (tOrderLogistics != null){
+                        waterVO.setCode(tOrderLogistics.getOrderNum());
+                        String string = tOrderPrivateCar.getMoney().toString();
+                        waterVO.setMoney(new BigDecimal(string));
+                    }else{
+                        waterVO.setMoney(new BigDecimal("0"));
+                    }
+                    TUser user2 = appUserService.selectById(tOrderPrivateCar.getUserId());
+                    if (user2!=null){
+                        waterVO.setName(user2.getNickName());
+                        waterVO.setPhone(user2.getPhone());
+                    }
+                    waterVO.setType("用户订单消费");
+                    if (tOrderLogistics != null){
+                        if (tOrderLogistics.getPayType()!=null){
+                            switch (tOrderLogistics.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;
+                            }
+                        }else{
+                            continue;
+                        }
+                    }else{
+                        continue;
+                    }
+                    if (tOrderLogistics != null){
+                        waterVO.setRemark(tOrderLogistics.getRemark());
+                    }
+                    res.add(waterVO);
+                    userConsume = userConsume.add(new BigDecimal(tOrderPrivateCar.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();
+            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){
+                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 (Income income : incomes) {
+            WaterVO platformVO = new WaterVO();
+            platformVO.setType("司机结算");
+            switch (income.getOrderType()){
+                case 1:
+                    // 查询订单信息
+                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(income.getIncomeId());
+                    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.getInsertTime()!=null){
+                        platformVO.setInsertTime(format.format(income.getInsertTime()));
+                    }
+                    platformVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+                    if (tOrderPrivateCar.getOrderMoney() != null){
+                        String string = tOrderPrivateCar.getOrderMoney().toString();
+                        BigDecimal bigDecimal1 = new BigDecimal(string);
+                        platformVO.setMoney(bigDecimal1);
+                    }else{
+                        continue;
+                    }
+
+                    if (tOrderPrivateCar.getPayType() == null){
+                        continue;
+                    }
+                    switch (tOrderPrivateCar.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;
+                    }
+
+                    // 专车订单
+                    String string4 = tOrderPrivateCar.getOrderMoney().toString();
+                    balance = balance.add(new BigDecimal(string4));
+                    res.add(platformVO);
+                    break;
+                case 4:
+                    // 小件物流
+                    // 查询订单信息
+                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(income.getIncomeId());
+                    if (tOrderLogistics==null){
+                        continue;
+                    }
+                    platformVO.setCode(tOrderLogistics.getOrderNum());
+                    TDriver tDriver1 = driverService.selectById(tOrderLogistics.getDriverId());
+                    if (tDriver1!=null){
+                        platformVO.setName(tDriver1.getFirstName()+tDriver1.getLastName());
+                        platformVO.setPhone(tDriver1.getPhone());
+                    }
+
+                    platformVO.setRemark(tOrderLogistics.getRemark());
+                    platformVO.setMoney(new BigDecimal(income.getMoney()));
+                    if (income.getInsertTime()!=null){
+                        platformVO.setInsertTime(format.format(income.getInsertTime()));
+                    }
+                    platformVO.setInsertTime(format.format(tOrderLogistics.getInsertTime()));
+                    if (tOrderLogistics.getPayType() == null){
+                        continue;
+                    }
+                    switch (tOrderLogistics.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;
+                    }
+                    String string1 = tOrderLogistics.getOrderMoney().toString();
+                    // 小件物流订单
+                    balance = balance.add(new BigDecimal(string1));
+                    res.add(platformVO);
+                    break;
+            }
+        }
+//        EntityWrapper<SettlementDetail> settlementDetailEntityWrapper = new EntityWrapper<>();
+//        settlementDetailEntityWrapper.between("createTime", start, end);
+//        settlementDetails = settlementDetailService.selectList(settlementDetailEntityWrapper);
+//        // 查询所有现金支付的订单
+//        for (SettlementDetail settlementDetail : settlementDetails) {
+//            WaterVO platformVO = new WaterVO();
+//            switch (settlementDetail.getOrderType()){
+//                case 1:
+//                    // 专车订单
+//                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(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("现金支付");
+//                    // 查询是否结算
+//                    SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+//
+//                    if (settlementRecord.getPaymentStatus() == 1){
+//                        continue;
+//                    }
+//
+//                    // 已结算
+//                    platformVO.setState(1);
+//                    balance = balance.add(new BigDecimal(settlementDetail.getPrice()));
+//                    if (settlementRecord.getDay()!=null){
+//                        platformVO.setInsertTime(format.format(settlementRecord.getDay()));
+//                    }
+//
+//                    res.add(platformVO);
+//                    break;
+//                case 4:
+//                    // 小件物流
+//                    // 查询订单信息
+//                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(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("现金支付");
+//                    // 查询是否结算
+//                    SettlementRecord settlementRecord1 = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+//                    if (payType!=null){
+//                        if (payType == 1){
+//                            // 查询已结算的
+//                            if (settlementRecord1.getPaymentStatus() == 1){
+//                                continue;
+//                            }
+//                        }
+//                        if (payType == 2){
+//                            // 查询未结算的
+//                            if (settlementRecord1.getPaymentStatus() == 2){
+//                                continue;
+//                            }
+//                        }
+//                    }
+//                    if (settlementRecord1.getPaymentStatus() == 2){
+//                        // 已结算
+//                        platformVO.setState(1);
+//                        balance = balance.add(new BigDecimal(settlementDetail.getPrice()));
+//                        if (settlementRecord1.getDay()!=null){
+//                            platformVO.setInsertTime(format.format(settlementRecord1.getDay()));
+//                        }
+//                    }else{
+//                        // 未结算
+//                        platformVO.setState(2);
+//                        unBalance = unBalance.add(new BigDecimal(settlementDetail.getPrice()));
+//                    }
+//                    res.add(platformVO);
+//                    break;
+//            }
+//        }
+        // 计算佣金总额
+//        BigDecimal add = unBalance.add(balance);
+        Collections.sort(res, Comparator.comparing(WaterVO::getInsertTime).reversed());
+
+        return res;
     }
     /**
      * 获取列表
      */
-    @RequestMapping(value = "/list")
+    @RequestMapping(value = "/commission/list")
     @ResponseBody
     public Object list(Integer time,String insertTime,Integer state) {
+        if (time == null){
+            time = 1;
+        }
         String beginTime = null;
         String endTime = null;
-        if (SinataUtil.isNotEmpty(insertTime)){
-            // 如果筛选了时间 将time设置为null
-            time = null;
-            String[] timeArray = insertTime.split(" - ");
-            beginTime = timeArray[0];
-            endTime = timeArray[1];
+        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;
+            }
         }
-        return null;
-//        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
-//        page.setRecords(tIncomeService.getList(page,id));
-//        return super.packForBT(page);
+        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
+        List<Income> incomes = new ArrayList<>();
+        List<SettlementDetail> settlementDetails = new ArrayList<>();
+        if (state!=null){
+            switch (state){
+                case 1:
+                    // 已结算
+                    // 查询已结算的
+                    incomes = tIncomeService.selectList(new EntityWrapper<Income>()
+                            .eq("userType", 2)
+                             .ne("type", 1)
+                             .isNotNull("orderType")
+                                .between("insertTime", start, end));
+
+
+                    break;
+                case 2:
+                    // 未结算
+
+                    break;
+            }
+        }else{
+            incomes = tIncomeService.selectList(new EntityWrapper<Income>()
+                    .eq("userType", 2)
+                    .ne("type", 1)
+                    .isNotNull("orderType")
+                    .between("insertTime", start, end));
+        }
+
+
+        List<PlatformVO> res = new ArrayList<>();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        // 已结算金额
+        BigDecimal balance = new BigDecimal("0");
+        // 未结算金额
+        BigDecimal unBalance = new BigDecimal("0");
+        // 查询所有已结算的订单
+        for (Income income : incomes) {
+            PlatformVO platformVO = new PlatformVO();
+            platformVO.setState(1);
+            switch (income.getOrderType()){
+                case 1:
+                    // 查询订单信息
+                    TOrderPrivateCar tOrderPrivateCar = orderPrivateCarService.selectById(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){
+                        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);
+                    break;
+                case 4:
+                    // 小件物流
+                    // 查询订单信息
+                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(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){
+                        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<>();
+        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());
+                    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("现金支付");
+
+                    // 查询是否结算
+                    SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+                    if (state!=null){
+                        if (state == 1){
+                            // 查询已结算的
+                            if (settlementRecord.getPaymentStatus() == 1){
+                                continue;
+                            }
+                        }
+                        if (state == 2){
+                            // 查询未结算的
+                            if (settlementRecord.getPaymentStatus() == 2){
+                                continue;
+                            }
+                        }
+                    }
+                    if (settlementRecord.getPaymentStatus() == 2){
+                        // 已结算
+                        platformVO.setState(1);
+                        balance = balance.add(new BigDecimal(settlementDetail.getPrice()));
+                        if (settlementRecord.getDay()!=null){
+                            platformVO.setEndTime(format.format(settlementRecord.getDay()));
+                        }
+                    }else{
+                        // 未结算
+                        platformVO.setState(2);
+                        unBalance = unBalance.add(new BigDecimal(settlementDetail.getPrice()));
+                    }
+                    res.add(platformVO);
+                    break;
+                case 4:
+                    // 小件物流
+                    // 查询订单信息
+                    TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(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("现金支付");
+                    // 查询是否结算
+                    SettlementRecord settlementRecord1 = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+                    if (state!=null){
+                        if (state == 1){
+                            // 查询已结算的
+                            if (settlementRecord1.getPaymentStatus() == 1){
+                                continue;
+                            }
+                        }
+                        if (state == 2){
+                            // 查询未结算的
+                            if (settlementRecord1.getPaymentStatus() == 2){
+                                continue;
+                            }
+                        }
+                    }
+                    if (settlementRecord1.getPaymentStatus() == 2){
+                        // 已结算
+                        platformVO.setState(1);
+                        balance = balance.add(new BigDecimal(settlementDetail.getPrice()));
+                        if (settlementRecord1.getDay()!=null){
+                            platformVO.setEndTime(format.format(settlementRecord1.getDay()));
+                        }
+                    }else{
+                        // 未结算
+                        platformVO.setState(2);
+                        unBalance = unBalance.add(new BigDecimal(settlementDetail.getPrice()));
+                    }
+                    res.add(platformVO);
+                    break;
+            }
+        }
+        Collections.sort(res, Comparator.comparing(PlatformVO::getInsertTime).reversed());
+        // 计算佣金总额
+        BigDecimal add = unBalance.add(balance);
+
+        return res;
     }
 
 }
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TSubsidyController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TSubsidyController.java
new file mode 100644
index 0000000..63159ad
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TSubsidyController.java
@@ -0,0 +1,1166 @@
+package com.stylefeng.guns.modular.system.controller;
+
+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.DateUtil;
+import com.stylefeng.guns.core.util.ExcelExportUtil;
+import com.stylefeng.guns.core.util.SinataUtil;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.vo.GrantMoneyVO;
+import com.stylefeng.guns.modular.system.vo.GrantVO;
+import com.stylefeng.guns.modular.system.vo.PlatformVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+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.text.SimpleDateFormat;
+import java.time.*;
+import java.time.temporal.TemporalAdjusters;
+import java.util.*;
+
+/**
+ * 控制器
+ *
+ * @author fengshuonan
+ * @Date 2021-04-22 10:53:34
+ */
+@Controller
+@RequestMapping("/subsidy")
+public class TSubsidyController extends BaseController {
+
+    private String PREFIX = "/system/subsidy/";
+
+    @RequestMapping("/grant")
+    public String index( Model model) {
+        return PREFIX + "grant.html";
+    }
+    @RequestMapping("/use")
+    public String watter( Model model) {
+        return PREFIX + "use.html";
+    }
+    @Autowired
+    private IIncomeService tIncomeService;
+    @Autowired
+    private ITOrderPrivateCarService orderPrivateCarService;
+    @Autowired
+    private ITOrderLogisticsService orderLogisticsService;
+    @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 IUserCouponRecordService userCouponRecordService;
+    @Autowired
+    private IUserRedPacketRecordService userRedPacketRecordService;
+    @Autowired
+    private IDriverActivityHistoryService driverActivityHistoryService;
+    @Autowired
+    private IUserActivityRedenvelopeService userActivityRedenvelopeService;
+    @Autowired
+    private IUserActivityService userActivityService;
+    @Autowired
+    private ISysCouponActivityService sysCouponActivityService;
+    @Autowired
+    private ISysCouponRecordService sysCouponRecordService;
+    @Autowired
+    private IUserActivityDiscount1Service userActivityDiscount1Service;
+    /**
+     * 使用补贴统计
+     */
+    @RequestMapping(value = "/use/list")
+    @ResponseBody
+    public Object list1(Integer time,String insertTime,Integer type) {
+        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;
+            }
+        }
+        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        // 列表res
+        List<GrantVO> res = new ArrayList<>();
+        // 专车订单
+        List<TOrderPrivateCar> tOrderPrivateCars = new ArrayList<>();
+        // 小件物流
+        List<TOrderLogistics> tOrderLogistics = new ArrayList<>();
+        // 优惠券领取记录
+        List<TOrderPrivateCar> userCouponRecords = new ArrayList<>();
+        List<TOrderLogistics> userCouponRecords1 = new ArrayList<>();
+        // 红包领取记录
+        List<TOrderPrivateCar> userRedPacketRecords = new ArrayList<>();
+        List<TOrderLogistics> userRedPacketRecords1 = new ArrayList<>();
+        // 司机消费
+        List<TPubTransactionDetails> driverActivityHistories = new ArrayList<>();
+        // 司机提现
+        List<TPubWithdrawal> driverWithdrawal = new ArrayList<>();
+        // 司机提现wrapper
+        Wrapper<TPubWithdrawal> driverWrapper = new EntityWrapper<TPubWithdrawal>()
+                .eq("state", 2)
+                .eq("userType", 2)
+                .between("handleTime", start, end);
+        // 专车wrapper
+        Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("activityId")
+                .isNotNull("discountMoney")
+                .between("insertTime", start, end);
+        // 小件物流wrapper
+        Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("activityId")
+                .isNotNull("discountMoney")
+                .between("insertTime", start, end);
+        // 已使用优惠券记录wrapper
+        Wrapper<TOrderPrivateCar> between2 = new EntityWrapper<TOrderPrivateCar>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("couponId")
+                .isNotNull("couponMoney")
+                .between("insertTime", start, end);
+        Wrapper<TOrderLogistics> between22 = new EntityWrapper<TOrderLogistics>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("couponId")
+                .isNotNull("couponMoney")
+                .between("insertTime", start, end);
+        // 已使用红包记录wrapper
+        Wrapper<TOrderPrivateCar> between3 = new EntityWrapper<TOrderPrivateCar>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("redPacketId")
+                .isNotNull("redPacketMoney")
+                .between("insertTime", start, end);
+        Wrapper<TOrderLogistics> between33 = new EntityWrapper<TOrderLogistics>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("redPacketId")
+                .isNotNull("redPacketMoney")
+                .between("insertTime", start, end);
+        // 司机已消费金额
+        Wrapper<TPubTransactionDetails> between4 = new EntityWrapper<TPubTransactionDetails>()
+                .eq("state", 2)
+                .eq("type", 1)
+                .eq("userType", 2)
+                .ne("orderType", 2)
+                .ne("orderType", 3)
+                .between("insertTime", start, end);
+        if (type!=null){
+            switch (type){
+                case 1:
+                    // 红包
+                    userRedPacketRecords = orderPrivateCarService.selectList(between3);
+                    userRedPacketRecords1 = orderLogisticsService.selectList(between33);
+                    break;
+                case 2:
+                    userCouponRecords = orderPrivateCarService.selectList(between2);
+                    userCouponRecords1 = orderLogisticsService.selectList(between22);
+                    // 优惠券
+                    break;
+                case 3:
+                    // 司机消费记录
+                    driverActivityHistories = pubTransactionDetailsService.selectList(between4);
+
+                    driverWithdrawal = pubWithdrawalService.selectList(driverWrapper);
+                    break;
+                case 4:
+                    // 专车订单
+                    tOrderPrivateCars = orderPrivateCarService.selectList(between);
+                    // 小件物流订单
+                    tOrderLogistics = orderLogisticsService.selectList(between1);
+                    break;
+            }
+        }else{
+            // 红包
+            userRedPacketRecords = orderPrivateCarService.selectList(between3);
+            userRedPacketRecords1 = orderLogisticsService.selectList(between33);
+            // 优惠券
+            userCouponRecords = orderPrivateCarService.selectList(between2);
+            userCouponRecords1 = orderLogisticsService.selectList(between22);
+            // 专车订单
+            tOrderPrivateCars = orderPrivateCarService.selectList(between);
+            // 小件物流订单
+            tOrderLogistics = orderLogisticsService.selectList(between1);
+            // 消费
+            driverActivityHistories = pubTransactionDetailsService.selectList(between4);
+            driverWithdrawal = pubWithdrawalService.selectList(driverWrapper);
+        }
+
+        // 已发放补贴总额
+        BigDecimal total = new BigDecimal("0");
+        // 已使用折扣总额(用户端)
+        BigDecimal discount = new BigDecimal("0");
+        // 已使用红包总额(用户端)
+        BigDecimal redPackage = new BigDecimal("0");
+        // 已使用优惠券总额(用户端)
+        BigDecimal coupon = new BigDecimal("0");
+        // 已使用司机奖励总额(司机端)
+        BigDecimal driver = new BigDecimal("0");
+        // 司机已消费
+        BigDecimal driverConsume = new BigDecimal("0");
+        // 司机已提现
+        BigDecimal driverWithdrawal1 = new BigDecimal("0");
+        // 查询已使用折扣总额
+        for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
+            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+            grantVO.setType("折扣");
+            grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
+            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            grantVO.setRemark("订单号:"+tOrderPrivateCar.getOrderNum());
+
+        }
+        for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
+            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+            grantVO.setType("折扣");
+            grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
+            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            grantVO.setRemark("订单号:"+tOrderPrivateCar.getOrderNum());
+        }
+        // 查询已领取红包总额
+        for (TOrderPrivateCar userRedPacketRecord : userRedPacketRecords) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
+            grantVO.setType("红包");
+            grantVO.setAmount(userRedPacketRecord.getPayMoney().toString());
+            TUser tUser = appUserService.selectById(userRedPacketRecord.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            grantVO.setRemark("订单号:"+userRedPacketRecord.getOrderNum());
+            res.add(grantVO);
+            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getPayMoney().toString()));
+        }
+        for (TOrderLogistics userRedPacketRecord : userRedPacketRecords1) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
+            grantVO.setType("红包");
+            grantVO.setAmount(userRedPacketRecord.getPayMoney().toString());
+            TUser tUser = appUserService.selectById(userRedPacketRecord.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            grantVO.setRemark("订单号:"+userRedPacketRecord.getOrderNum());
+            res.add(grantVO);
+            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getPayMoney().toString()));
+        }
+        // 查询已领取优惠券总额
+        for (TOrderPrivateCar userCouponRecord : userCouponRecords) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
+            grantVO.setType("优惠券");
+            grantVO.setAmount(userCouponRecord.getPayMoney().toString());
+            TUser tUser = appUserService.selectById(userCouponRecord.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            grantVO.setRemark("订单号:"+userCouponRecord.getOrderNum());
+            coupon = coupon.add(new BigDecimal(userCouponRecord.getPayMoney().toString()));
+            res.add(grantVO);
+        }
+        for (TOrderLogistics userCouponRecord : userCouponRecords1) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
+            grantVO.setType("优惠券");
+            grantVO.setAmount(userCouponRecord.getPayMoney().toString());
+            TUser tUser = appUserService.selectById(userCouponRecord.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            grantVO.setRemark("订单号:"+userCouponRecord.getOrderNum());
+            coupon = coupon.add(new BigDecimal(userCouponRecord.getPayMoney().toString()));
+            res.add(grantVO);
+        }
+        // 已领取司机奖励
+        for (DriverActivityHistory driverActivityHistory : driverActivityHistories) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(driverActivityHistory.getInsertTime()));
+            grantVO.setType("司机奖励");
+            grantVO.setAmount(driverActivityHistory.getMoney().toString());
+            TDriver tDriver = driverService.selectById(driverActivityHistory.getDriverId());
+            if (tDriver!=null){
+                grantVO.setName(tDriver.getFirstName()+tDriver.getLastName());
+            }
+            Integer type1 = driverActivityHistory.getType();
+            switch (type1){
+                case 1:
+                    grantVO.setRemark("邀请司机注册");
+                    break;
+                case 2:
+                    grantVO.setRemark("邀请用户注册");
+                    break;
+                case 3:
+                    grantVO.setRemark("累计在线");
+                    break;
+                case 4:
+                    grantVO.setRemark("订单量");
+                    break;
+            }
+            driver = driver.add(new BigDecimal(driverActivityHistory.getMoney().toString()));
+            res.add(grantVO);
+        }
+        total = total.add(redPackage).add(coupon).add(discount).add(driver);
+        return res;
+    }
+    @RequestMapping(value = "/use/getCount")
+    @ResponseBody
+    public Object getCount1(Integer time,String insertTime,Integer type) {
+        GrantMoneyVO result = new GrantMoneyVO();
+        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;
+            }
+        }
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        // 列表res
+        List<GrantVO> res = new ArrayList<>();
+        // 专车订单
+        List<TOrderPrivateCar> tOrderPrivateCars = new ArrayList<>();
+        // 小件物流
+        List<TOrderLogistics> tOrderLogistics = new ArrayList<>();
+        // 优惠券领取记录
+        List<UserCouponRecord> userCouponRecords = new ArrayList<>();
+        // 红包领取记录
+        List<UserRedPacketRecord> userRedPacketRecords = new ArrayList<>();
+        // 司机奖励
+        List<DriverActivityHistory> driverActivityHistories = new ArrayList<>();
+
+        // 专车wrapper
+        Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("activityId")
+                .isNotNull("discountMoney")
+                .between("insertTime", start, end);
+        // 小件物流wrapper
+        Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("activityId")
+                .isNotNull("discountMoney")
+                .between("insertTime", start, end);
+        // 优惠券领取记录wrapper
+        Wrapper<UserCouponRecord> between2 = new EntityWrapper<UserCouponRecord>()
+                .ne("couponUseType", 2)
+                .ne("couponUseType", 3)
+                .between("insertTime", start, end);
+        // 红包领取记录wrapper
+        Wrapper<UserRedPacketRecord> between3 = new EntityWrapper<UserRedPacketRecord>()
+                .ne("orderType", 2)
+                .ne("orderType", 3)
+                .between("insertTime", start, end);
+        // 司机奖励
+        Wrapper<DriverActivityHistory> between4 = new EntityWrapper<DriverActivityHistory>()
+                .eq("carryOut", 2)
+                .between("insertTime", start, end);
+        if (type!=null){
+
+            switch (type){
+                case 1:
+                    // 红包
+                    userRedPacketRecords = userRedPacketRecordService.selectList(between3);
+                    break;
+                case 2:
+                    userCouponRecords = userCouponRecordService.selectList(between2);
+                    // 优惠券
+                    break;
+                case 3:
+                    // 司机奖励
+                    driverActivityHistories = driverActivityHistoryService.selectList(between4);
+                    break;
+                case 4:
+                    // 专车订单
+                    tOrderPrivateCars = orderPrivateCarService.selectList(between);
+                    // 小件物流订单
+                    tOrderLogistics = orderLogisticsService.selectList(between1);
+                    break;
+            }
+        }else{
+            // 专车订单
+            tOrderPrivateCars = orderPrivateCarService.selectList(between);
+            // 小件物流订单
+            tOrderLogistics = orderLogisticsService.selectList(between1);
+            // 司机奖励
+            driverActivityHistories = driverActivityHistoryService.selectList(between4);
+            userCouponRecords = userCouponRecordService.selectList(between2);
+            userRedPacketRecords = userRedPacketRecordService.selectList(between3);
+        }
+
+        // 已发放补贴总额
+        BigDecimal total = new BigDecimal("0");
+        // 已使用折扣总额(用户端)
+        BigDecimal discount = new BigDecimal("0");
+        // 已领取红包总额(用户端)
+        BigDecimal redPackage = new BigDecimal("0");
+        // 已领取优惠券总额(用户端)
+        BigDecimal coupon = new BigDecimal("0");
+        // 已领取司机奖励总额(司机端)
+        BigDecimal driver = new BigDecimal("0");
+        // 查询已使用折扣总额
+        for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
+            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+            grantVO.setType("折扣");
+            grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
+            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
+            if (userActivityDiscount1!=null){
+                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
+                if (userActivity!=null){
+                    grantVO.setRemark(userActivity.getName());
+                }
+            }
+        }
+        for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
+            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+            grantVO.setType("折扣");
+            grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
+            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
+            if (userActivityDiscount1!=null){
+                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
+                if (userActivity!=null){
+                    grantVO.setRemark(userActivity.getName());
+                }
+            }
+        }
+        // 查询已领取红包总额
+        for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
+            grantVO.setType("红包");
+            grantVO.setAmount(userRedPacketRecord.getMoney().toString());
+            TUser tUser = appUserService.selectById(userRedPacketRecord.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            UserActivityRedenvelope userActivityRedenvelope =
+                    userActivityRedenvelopeService.selectById(userRedPacketRecord.getRedPacketActivityId());
+            if (userActivityRedenvelope!=null){
+                UserActivity userActivity = userActivityService.selectById(userActivityRedenvelope.getUserActivityId());
+                if (userActivity!=null){
+                    grantVO.setRemark(userActivity.getName());
+                }
+            }
+            res.add(grantVO);
+            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getMoney().toString()));
+        }
+        // 查询已领取优惠券总额
+        for (UserCouponRecord userCouponRecord : userCouponRecords) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
+            grantVO.setType("优惠券");
+            grantVO.setAmount(userCouponRecord.getMoney().toString());
+            TUser tUser = appUserService.selectById(userCouponRecord.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            SysCouponRecord sysCouponRecord =
+                    sysCouponRecordService.selectById(userCouponRecord.getCouponId());
+            if (sysCouponRecord!=null){
+                grantVO.setRemark(sysCouponRecord.getName());
+            }
+            coupon = coupon.add(new BigDecimal(userCouponRecord.getMoney().toString()));
+            res.add(grantVO);
+        }
+        // 已领取司机奖励
+        for (DriverActivityHistory driverActivityHistory : driverActivityHistories) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(driverActivityHistory.getInsertTime()));
+            grantVO.setType("司机奖励");
+            grantVO.setAmount(driverActivityHistory.getMoney().toString());
+            TDriver tDriver = driverService.selectById(driverActivityHistory.getDriverId());
+            if (tDriver!=null){
+                grantVO.setName(tDriver.getFirstName()+tDriver.getLastName());
+            }
+            Integer type1 = driverActivityHistory.getType();
+            switch (type1){
+                case 1:
+                    grantVO.setRemark("邀请司机注册");
+                    break;
+                case 2:
+                    grantVO.setRemark("邀请用户注册");
+                    break;
+                case 3:
+                    grantVO.setRemark("累计在线");
+                    break;
+                case 4:
+                    grantVO.setRemark("订单量");
+                    break;
+            }
+            driver = driver.add(new BigDecimal(driverActivityHistory.getMoney().toString()));
+            res.add(grantVO);
+        }
+        total = total.add(redPackage).add(coupon).add(discount).add(driver);
+        result.setTotal(total);
+        result.setDiscount(discount);
+        result.setCoupon(coupon);
+        result.setDriver(driver);
+        result.setRedPackage(redPackage);
+        return result;
+    }
+    /**
+     * 发放补贴统计
+     */
+    @RequestMapping(value = "/grant/list")
+    @ResponseBody
+    public Object list(Integer time,String insertTime,Integer type) {
+        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;
+            }
+        }
+        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        // 列表res
+        List<GrantVO> res = new ArrayList<>();
+        // 专车订单
+        List<TOrderPrivateCar> tOrderPrivateCars = new ArrayList<>();
+        // 小件物流
+        List<TOrderLogistics> tOrderLogistics = new ArrayList<>();
+        // 优惠券领取记录
+        List<UserCouponRecord> userCouponRecords = new ArrayList<>();
+        // 红包领取记录
+        List<UserRedPacketRecord> userRedPacketRecords = new ArrayList<>();
+        // 司机奖励
+        List<DriverActivityHistory> driverActivityHistories = new ArrayList<>();
+
+        // 专车wrapper
+        Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("activityId")
+                .isNotNull("discountMoney")
+                .between("insertTime", start, end);
+        // 小件物流wrapper
+        Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("activityId")
+                .isNotNull("discountMoney")
+                .between("insertTime", start, end);
+        // 优惠券领取记录wrapper
+        Wrapper<UserCouponRecord> between2 = new EntityWrapper<UserCouponRecord>()
+                .ne("couponUseType", 2)
+                .ne("couponUseType", 3)
+                .between("insertTime", start, end);
+        // 红包领取记录wrapper
+        Wrapper<UserRedPacketRecord> between3 = new EntityWrapper<UserRedPacketRecord>()
+                .ne("orderType", 2)
+                .ne("orderType", 3)
+                .between("insertTime", start, end);
+        // 司机奖励
+        Wrapper<DriverActivityHistory> between4 = new EntityWrapper<DriverActivityHistory>()
+                .eq("carryOut", 2)
+                .between("insertTime", start, end);
+        if (type!=null){
+
+            switch (type){
+                case 1:
+                    // 红包
+                    userRedPacketRecords = userRedPacketRecordService.selectList(between3);
+                    break;
+                case 2:
+                    userCouponRecords = userCouponRecordService.selectList(between2);
+                    // 优惠券
+                    break;
+                case 3:
+                    // 司机奖励
+                    driverActivityHistories = driverActivityHistoryService.selectList(between4);
+                    break;
+                case 4:
+                    // 专车订单
+                    tOrderPrivateCars = orderPrivateCarService.selectList(between);
+                    // 小件物流订单
+                    tOrderLogistics = orderLogisticsService.selectList(between1);
+                    break;
+            }
+        }else{
+            // 专车订单
+            tOrderPrivateCars = orderPrivateCarService.selectList(between);
+            // 小件物流订单
+            tOrderLogistics = orderLogisticsService.selectList(between1);
+            // 司机奖励
+            driverActivityHistories = driverActivityHistoryService.selectList(between4);
+            userCouponRecords = userCouponRecordService.selectList(between2);
+            userRedPacketRecords = userRedPacketRecordService.selectList(between3);
+        }
+
+        // 已发放补贴总额
+        BigDecimal total = new BigDecimal("0");
+        // 已使用折扣总额(用户端)
+        BigDecimal discount = new BigDecimal("0");
+        // 已领取红包总额(用户端)
+        BigDecimal redPackage = new BigDecimal("0");
+        // 已领取优惠券总额(用户端)
+        BigDecimal coupon = new BigDecimal("0");
+        // 已领取司机奖励总额(司机端)
+        BigDecimal driver = new BigDecimal("0");
+        // 查询已使用折扣总额
+        for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
+            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+            grantVO.setType("折扣");
+            grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
+            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
+            if (userActivityDiscount1!=null){
+                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
+                if (userActivity!=null){
+                    grantVO.setRemark(userActivity.getName());
+                }
+            }
+        }
+        for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
+            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+            grantVO.setType("折扣");
+            grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
+            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
+            if (userActivityDiscount1!=null){
+                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
+                if (userActivity!=null){
+                    grantVO.setRemark(userActivity.getName());
+                }
+            }
+        }
+        // 查询已领取红包总额
+        for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
+            grantVO.setType("红包");
+            grantVO.setAmount(userRedPacketRecord.getMoney().toString());
+            TUser tUser = appUserService.selectById(userRedPacketRecord.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            UserActivityRedenvelope userActivityRedenvelope =
+                    userActivityRedenvelopeService.selectById(userRedPacketRecord.getRedPacketActivityId());
+            if (userActivityRedenvelope!=null){
+                UserActivity userActivity = userActivityService.selectById(userActivityRedenvelope.getUserActivityId());
+                if (userActivity!=null){
+                    grantVO.setRemark(userActivity.getName());
+                }
+            }
+            res.add(grantVO);
+            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getMoney().toString()));
+        }
+        // 查询已领取优惠券总额
+        for (UserCouponRecord userCouponRecord : userCouponRecords) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
+            grantVO.setType("优惠券");
+            grantVO.setAmount(userCouponRecord.getMoney().toString());
+            TUser tUser = appUserService.selectById(userCouponRecord.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            SysCouponRecord sysCouponRecord =
+                    sysCouponRecordService.selectById(userCouponRecord.getCouponId());
+            if (sysCouponRecord!=null){
+                grantVO.setRemark(sysCouponRecord.getName());
+            }
+            coupon = coupon.add(new BigDecimal(userCouponRecord.getMoney().toString()));
+            res.add(grantVO);
+        }
+        // 已领取司机奖励
+        for (DriverActivityHistory driverActivityHistory : driverActivityHistories) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(driverActivityHistory.getInsertTime()));
+            grantVO.setType("司机奖励");
+            grantVO.setAmount(driverActivityHistory.getMoney().toString());
+            TDriver tDriver = driverService.selectById(driverActivityHistory.getDriverId());
+            if (tDriver!=null){
+                grantVO.setName(tDriver.getFirstName()+tDriver.getLastName());
+            }
+            Integer type1 = driverActivityHistory.getType();
+            switch (type1){
+                case 1:
+                    grantVO.setRemark("邀请司机注册");
+                    break;
+                case 2:
+                    grantVO.setRemark("邀请用户注册");
+                    break;
+                case 3:
+                    grantVO.setRemark("累计在线");
+                    break;
+                case 4:
+                    grantVO.setRemark("订单量");
+                    break;
+            }
+            driver = driver.add(new BigDecimal(driverActivityHistory.getMoney().toString()));
+            res.add(grantVO);
+        }
+        total = total.add(redPackage).add(coupon).add(discount).add(driver);
+        return res;
+    }
+    @RequestMapping(value = "/grant/getCount")
+    @ResponseBody
+    public Object getCount(Integer time,String insertTime,Integer type) {
+        GrantMoneyVO result = new GrantMoneyVO();
+        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;
+            }
+        }
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        // 列表res
+        List<GrantVO> res = new ArrayList<>();
+        // 专车订单
+        List<TOrderPrivateCar> tOrderPrivateCars = new ArrayList<>();
+        // 小件物流
+        List<TOrderLogistics> tOrderLogistics = new ArrayList<>();
+        // 优惠券领取记录
+        List<UserCouponRecord> userCouponRecords = new ArrayList<>();
+        // 红包领取记录
+        List<UserRedPacketRecord> userRedPacketRecords = new ArrayList<>();
+        // 司机奖励
+        List<DriverActivityHistory> driverActivityHistories = new ArrayList<>();
+
+        // 专车wrapper
+        Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("activityId")
+                .isNotNull("discountMoney")
+                .between("insertTime", start, end);
+        // 小件物流wrapper
+        Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
+                .eq("state", 8)
+                .eq("state", 9)
+                .isNotNull("activityId")
+                .isNotNull("discountMoney")
+                .between("insertTime", start, end);
+        // 优惠券领取记录wrapper
+        Wrapper<UserCouponRecord> between2 = new EntityWrapper<UserCouponRecord>()
+                .ne("couponUseType", 2)
+                .ne("couponUseType", 3)
+                .between("insertTime", start, end);
+        // 红包领取记录wrapper
+        Wrapper<UserRedPacketRecord> between3 = new EntityWrapper<UserRedPacketRecord>()
+                .ne("orderType", 2)
+                .ne("orderType", 3)
+                .between("insertTime", start, end);
+        // 司机奖励
+        Wrapper<DriverActivityHistory> between4 = new EntityWrapper<DriverActivityHistory>()
+                .eq("carryOut", 2)
+                .between("insertTime", start, end);
+        if (type!=null){
+
+            switch (type){
+                case 1:
+                    // 红包
+                    userRedPacketRecords = userRedPacketRecordService.selectList(between3);
+                    break;
+                case 2:
+                    userCouponRecords = userCouponRecordService.selectList(between2);
+                    // 优惠券
+                    break;
+                case 3:
+                    // 司机奖励
+                    driverActivityHistories = driverActivityHistoryService.selectList(between4);
+                    break;
+                case 4:
+                    // 专车订单
+                    tOrderPrivateCars = orderPrivateCarService.selectList(between);
+                    // 小件物流订单
+                    tOrderLogistics = orderLogisticsService.selectList(between1);
+                    break;
+            }
+        }else{
+            // 专车订单
+            tOrderPrivateCars = orderPrivateCarService.selectList(between);
+            // 小件物流订单
+            tOrderLogistics = orderLogisticsService.selectList(between1);
+            // 司机奖励
+            driverActivityHistories = driverActivityHistoryService.selectList(between4);
+            userCouponRecords = userCouponRecordService.selectList(between2);
+            userRedPacketRecords = userRedPacketRecordService.selectList(between3);
+        }
+
+        // 已发放补贴总额
+        BigDecimal total = new BigDecimal("0");
+        // 已使用折扣总额(用户端)
+        BigDecimal discount = new BigDecimal("0");
+        // 已领取红包总额(用户端)
+        BigDecimal redPackage = new BigDecimal("0");
+        // 已领取优惠券总额(用户端)
+        BigDecimal coupon = new BigDecimal("0");
+        // 已领取司机奖励总额(司机端)
+        BigDecimal driver = new BigDecimal("0");
+        // 查询已使用折扣总额
+        for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
+            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+            grantVO.setType("折扣");
+            grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
+            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
+            if (userActivityDiscount1!=null){
+                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
+                if (userActivity!=null){
+                    grantVO.setRemark(userActivity.getName());
+                }
+            }
+        }
+        for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
+            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
+            grantVO.setType("折扣");
+            grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
+            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
+            if (userActivityDiscount1!=null){
+                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
+                if (userActivity!=null){
+                    grantVO.setRemark(userActivity.getName());
+                }
+            }
+        }
+        // 查询已领取红包总额
+        for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
+            grantVO.setType("红包");
+            grantVO.setAmount(userRedPacketRecord.getMoney().toString());
+            TUser tUser = appUserService.selectById(userRedPacketRecord.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            UserActivityRedenvelope userActivityRedenvelope =
+                    userActivityRedenvelopeService.selectById(userRedPacketRecord.getRedPacketActivityId());
+            if (userActivityRedenvelope!=null){
+                UserActivity userActivity = userActivityService.selectById(userActivityRedenvelope.getUserActivityId());
+                if (userActivity!=null){
+                    grantVO.setRemark(userActivity.getName());
+                }
+            }
+            res.add(grantVO);
+            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getMoney().toString()));
+        }
+        // 查询已领取优惠券总额
+        for (UserCouponRecord userCouponRecord : userCouponRecords) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
+            grantVO.setType("优惠券");
+            grantVO.setAmount(userCouponRecord.getMoney().toString());
+            TUser tUser = appUserService.selectById(userCouponRecord.getUserId());
+            if (tUser!=null){
+                grantVO.setName(tUser.getNickName());
+            }
+            SysCouponRecord sysCouponRecord =
+                    sysCouponRecordService.selectById(userCouponRecord.getCouponId());
+            if (sysCouponRecord!=null){
+                grantVO.setRemark(sysCouponRecord.getName());
+            }
+            coupon = coupon.add(new BigDecimal(userCouponRecord.getMoney().toString()));
+            res.add(grantVO);
+        }
+        // 已领取司机奖励
+        for (DriverActivityHistory driverActivityHistory : driverActivityHistories) {
+            GrantVO grantVO = new GrantVO();
+            grantVO.setInsertTime(format.format(driverActivityHistory.getInsertTime()));
+            grantVO.setType("司机奖励");
+            grantVO.setAmount(driverActivityHistory.getMoney().toString());
+            TDriver tDriver = driverService.selectById(driverActivityHistory.getDriverId());
+            if (tDriver!=null){
+                grantVO.setName(tDriver.getFirstName()+tDriver.getLastName());
+            }
+            Integer type1 = driverActivityHistory.getType();
+            switch (type1){
+                case 1:
+                    grantVO.setRemark("邀请司机注册");
+                    break;
+                case 2:
+                    grantVO.setRemark("邀请用户注册");
+                    break;
+                case 3:
+                    grantVO.setRemark("累计在线");
+                    break;
+                case 4:
+                    grantVO.setRemark("订单量");
+                    break;
+            }
+            driver = driver.add(new BigDecimal(driverActivityHistory.getMoney().toString()));
+            res.add(grantVO);
+        }
+        total = total.add(redPackage).add(coupon).add(discount).add(driver);
+        result.setTotal(total);
+        result.setDiscount(discount);
+        result.setCoupon(coupon);
+        result.setDriver(driver);
+        result.setRedPackage(redPackage);
+        return result;
+    }
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java
index b3835c2..81f6980 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java
@@ -1,7 +1,9 @@
 package com.stylefeng.guns.modular.system.controller.general;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+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.shiro.ShiroKit;
 import com.stylefeng.guns.core.util.SinataUtil;
 import com.stylefeng.guns.modular.system.model.*;
@@ -16,7 +18,12 @@
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 系统设置控制器
@@ -53,8 +60,115 @@
 
     @Autowired
     private IDriverAssessmentService driverAssessmentService;
+    @Autowired
+    private ITSysOverTimeService sysOverTimeService;
 
+    /**
+     * 2.0新增红包支付设置
+     * @return
+     */
+    @RequestMapping("/redSet")
+    public String redPackageSet() {
+        return PREFIX + "tRedSet.html";
+    }
+    @RequestMapping("/redSet/addHtml")
+    public String addHtml(Model model) {
+        List<String> strings = new ArrayList<>();
+        strings.add("updateTime");
+        // 查询生效的红包折扣比例
+        List<TSysRedSet> isDelete = sysRedSetService.selectList(new EntityWrapper<TSysRedSet>()
+                .eq("isDelete", 0)
+                .orderDesc(strings));
+        if (isDelete.size()>0){
+            model.addAttribute("new",isDelete.get(0).getProportion());
+        }else{
+            model.addAttribute("new","_");
+        }
+        return PREFIX + "tRedSetAdd.html";
+    }
+    @RequestMapping("/redSet/updateHtml/{id}")
+    public String updateHtml(@PathVariable("id") Integer id,Model model) {
+        TSysRedSet tSysRedSet = sysRedSetService.selectById(id);
+        List<String> strings = new ArrayList<>();
+        strings.add("updateTime");
+        // 查询生效的红包折扣比例
+        List<TSysRedSet> isDelete = sysRedSetService.selectList(new EntityWrapper<TSysRedSet>()
+                .eq("isDelete", 0)
+                .orderDesc(strings));
+        if (isDelete.size()>0){
+            model.addAttribute("new",isDelete.get(0).getProportion());
+        }else{
+            model.addAttribute("new","_");
+        }
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
+        String format = simpleDateFormat.format(tSysRedSet.getStartTime());
 
+        model.addAttribute("time",format);
+        model.addAttribute("data",tSysRedSet);
+        return PREFIX + "tRedSetEdit.html";
+    }
+
+    @Autowired
+    private ISysRedSetService sysRedSetService;
+    /**
+     * 红包支付设置记录
+     */
+    @RequestMapping(value = "/redSet/list")
+    @ResponseBody
+    public Object redSetList() {
+
+        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
+        if (ShiroKit.getUser().getRoleType() != 1){
+            page.setRecords(null);
+        }else{
+            page.setRecords(sysRedSetService.getList(page));
+        }
+        return super.packForBT(page);
+    }
+    @RequestMapping(value = "/redSet/add")
+    @ResponseBody
+    public Object redSetAdd(String proportion, String startTime) throws ParseException {
+        // 新增红包设置
+        TSysRedSet tSysRedSet = new TSysRedSet();
+        String name = ShiroKit.getUser().getName();
+        tSysRedSet.setHandle(name);
+        tSysRedSet.setProportion(proportion);
+        String replace = startTime.replace("T", " ");
+        String s = replace + ":00";
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = dateFormat.parse(s);
+        tSysRedSet.setStartTime(date);
+        sysRedSetService.insert(tSysRedSet);
+        return SUCCESS_TIP;
+    }
+
+    @RequestMapping(value = "/redSet/update")
+    @ResponseBody
+    public Object redSetUpdate(Integer id,String proportion, String startTime) throws ParseException {
+        // 修改红包设置
+        TSysRedSet tSysRedSet = sysRedSetService.selectById(id);
+        String name = ShiroKit.getUser().getName();
+        tSysRedSet.setHandle(name);
+        tSysRedSet.setProportion(proportion);
+        String replace = startTime.replace("T", " ");
+        String s = replace + ":00";
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = dateFormat.parse(s);
+        tSysRedSet.setStartTime(date);
+        tSysRedSet.setUpdateTime(new Date());
+        sysRedSetService.updateById(tSysRedSet);
+        return SUCCESS_TIP;
+    }
+
+    @RequestMapping(value = "/redSet/delete")
+    @ResponseBody
+    public Object redSetDelete(Integer id) {
+        // 删除红包设置
+        TSysRedSet tSysRedSet = sysRedSetService.selectById(id);
+        tSysRedSet.setIsDelete(1);
+        sysRedSetService.updateById(tSysRedSet);
+        return SUCCESS_TIP;
+    }
     /**
      * 跳转到系统设置首页
      */
@@ -98,10 +212,12 @@
         model.addAttribute("czcAssignOrder", czcAssignOrder);
 
         //普通取消设置(专车)
-        TSysCancleOrder ptCancel1 = tSysCancleOrderService.selectOne(new EntityWrapper<TSysCancleOrder>().eq("companyId", ShiroKit.getUser().getObjectId()).eq("type", 1).eq("orderType", 1));
+        TSysCancleOrder ptCancel1 = tSysCancleOrderService.selectOne(new EntityWrapper<TSysCancleOrder>()
+                .eq("companyId", ShiroKit.getUser().getObjectId()).eq("type", 1).eq("orderType", 1));
         model.addAttribute("ptCancel1",ptCancel1);
         //普通取消设置(出租车)
-        TSysCancleOrder ptCancel2 = tSysCancleOrderService.selectOne(new EntityWrapper<TSysCancleOrder>().eq("companyId", ShiroKit.getUser().getObjectId()).eq("type", 1).eq("orderType", 2));
+        TSysCancleOrder ptCancel2 = tSysCancleOrderService.selectOne(new EntityWrapper<TSysCancleOrder>()
+                .eq("companyId", ShiroKit.getUser().getObjectId()).eq("type", 1).eq("orderType", 2));
         model.addAttribute("ptCancel2",ptCancel2);
         //普通取消设置(跨城出行)
         TSysCancleOrder ptCancel3 = tSysCancleOrderService.selectOne(new EntityWrapper<TSysCancleOrder>().eq("companyId", ShiroKit.getUser().getObjectId()).eq("type", 1).eq("orderType", 3));
@@ -126,6 +242,11 @@
         //司机考勤
         DriverAssessment driverAssessment = driverAssessmentService.selectOne(new EntityWrapper<DriverAssessment>().eq("companyId", ShiroKit.getUser().getObjectId()));
         model.addAttribute("assessment", driverAssessment == null ? "" : driverAssessment.getAssessment());
+        // 超时设置
+        TSysOverTime overTime = sysOverTimeService.selectOne(new EntityWrapper<TSysOverTime>()
+                .eq("companyId", ShiroKit.getUser().getObjectId()));
+        model.addAttribute("overTime", overTime);
+
         return PREFIX + "tSysReformist.html";
     }
 
@@ -147,7 +268,14 @@
                         @RequestParam Integer zcPeople,@RequestParam Integer czcPeople,
                         @RequestParam Integer ptCancel1,@RequestParam BigDecimal ptCancel2,@RequestParam Integer ptCancel3,@RequestParam BigDecimal ptCancel4,@RequestParam Integer ptCancel5,@RequestParam BigDecimal ptCancel6,
                         @RequestParam Integer yyCancel1,@RequestParam BigDecimal yyCancel2,@RequestParam Integer yyCancel3,@RequestParam BigDecimal yyCancel4,
-                        @RequestParam String phone1,@RequestParam String phone2,@RequestParam String phone3, @RequestParam String assessment) {
+                        @RequestParam String phone1,@RequestParam String phone2,@RequestParam String phone3,@RequestParam String assessment,
+
+                        @RequestParam String km,@RequestParam Integer kmMinute,@RequestParam String km2,
+                        @RequestParam Integer kmMinute2,
+                        @RequestParam Integer overtime,@RequestParam Integer overtime1,@RequestParam Integer packageTime,
+                        @RequestParam Integer reserveTime,
+                        @RequestParam Integer reserveNext,@RequestParam String reserveMoney
+                        ) {
         //改派设置
         TSysReformist reformist = tSysReformistService.selectOne(new EntityWrapper<TSysReformist>().eq("companyId", ShiroKit.getUser().getObjectId()));
         if (SinataUtil.isNotEmpty(reformist)){
@@ -327,6 +455,11 @@
         if (SinataUtil.isNotEmpty(ptCancelOne)){
             ptCancelOne.setMinuteNum(ptCancel1);
             ptCancelOne.setMoney(ptCancel2);
+
+            ptCancelOne.setKm(Integer.valueOf(km));
+            ptCancelOne.setKmMinute(kmMinute);
+            ptCancelOne.setOvertime(overtime);
+
             tSysCancleOrderService.updateById(ptCancelOne);
         }else{
             ptCancelOne = new TSysCancleOrder();
@@ -335,6 +468,10 @@
             ptCancelOne.setCompanyId(ShiroKit.getUser().getObjectId());
             ptCancelOne.setType(1);
             ptCancelOne.setOrderType(1);
+            ptCancelOne.setKm(Integer.valueOf(km));
+            ptCancelOne.setKmMinute(kmMinute);
+            ptCancelOne.setOvertime(overtime);
+
             tSysCancleOrderService.insert(ptCancelOne);
         }
 
@@ -343,12 +480,20 @@
         if (SinataUtil.isNotEmpty(ptCancelTwo)){
             ptCancelTwo.setMinuteNum(ptCancel3);
             ptCancelTwo.setMoney(ptCancel4);
+
+            ptCancelTwo.setKm(Integer.valueOf(km));
+            ptCancelTwo.setKmMinute(kmMinute);
+            ptCancelTwo.setOvertime(overtime);
             tSysCancleOrderService.updateById(ptCancelTwo);
         }else{
             ptCancelTwo = new TSysCancleOrder();
             ptCancelTwo.setMinuteNum(ptCancel3);
             ptCancelTwo.setMoney(ptCancel4);
             ptCancelTwo.setCompanyId(ShiroKit.getUser().getObjectId());
+
+            ptCancelTwo.setKm(Integer.valueOf(km));
+            ptCancelTwo.setKmMinute(kmMinute);
+            ptCancelTwo.setOvertime(overtime);
             ptCancelTwo.setType(1);
             ptCancelTwo.setOrderType(2);
             tSysCancleOrderService.insert(ptCancelTwo);
@@ -359,6 +504,12 @@
         if (SinataUtil.isNotEmpty(ptCancelThree)){
             ptCancelThree.setMinuteNum(ptCancel5);
             ptCancelThree.setMoney(ptCancel6);
+
+            BigDecimal bigDecimal1 = new BigDecimal(reserveMoney);
+            ptCancelThree.setKm(Integer.valueOf(km));
+            ptCancelThree.setKmMinute(kmMinute);
+            ptCancelThree.setOvertime(overtime);
+            ptCancelThree.setReserveMoney(bigDecimal1);
             tSysCancleOrderService.updateById(ptCancelThree);
         }else{
             ptCancelThree = new TSysCancleOrder();
@@ -367,6 +518,12 @@
             ptCancelThree.setCompanyId(ShiroKit.getUser().getObjectId());
             ptCancelThree.setType(1);
             ptCancelThree.setOrderType(3);
+
+            BigDecimal bigDecimal1 = new BigDecimal(reserveMoney);
+            ptCancelThree.setKm(Integer.valueOf(km));
+            ptCancelThree.setKmMinute(kmMinute);
+            ptCancelThree.setOvertime(overtime);
+            ptCancelThree.setReserveMoney(bigDecimal1);
             tSysCancleOrderService.insert(ptCancelThree);
         }
 
@@ -375,6 +532,12 @@
         if (SinataUtil.isNotEmpty(yyCancelOne)){
             yyCancelOne.setMinuteNum(yyCancel1);
             yyCancelOne.setMoney(yyCancel2);
+
+            BigDecimal bigDecimal1 = new BigDecimal(reserveMoney);
+            yyCancelOne.setKm(Integer.valueOf(km2));
+            yyCancelOne.setKmMinute(kmMinute2);
+            yyCancelOne.setOvertime(overtime);
+            yyCancelOne.setReserveMoney(bigDecimal1);
             tSysCancleOrderService.updateById(yyCancelOne);
         }else{
             yyCancelOne = new TSysCancleOrder();
@@ -383,6 +546,12 @@
             yyCancelOne.setCompanyId(ShiroKit.getUser().getObjectId());
             yyCancelOne.setType(2);
             yyCancelOne.setOrderType(1);
+
+            BigDecimal bigDecimal1 = new BigDecimal(reserveMoney);
+            yyCancelOne.setKm(Integer.valueOf(km2));
+            yyCancelOne.setKmMinute(kmMinute2);
+            yyCancelOne.setOvertime(overtime);
+            yyCancelOne.setReserveMoney(bigDecimal1);
             tSysCancleOrderService.insert(yyCancelOne);
         }
         //预约取消设置(出租车)
@@ -390,6 +559,11 @@
         if (SinataUtil.isNotEmpty(yyCancelTwo)){
             yyCancelTwo.setMinuteNum(yyCancel3);
             yyCancelTwo.setMoney(yyCancel4);
+            BigDecimal bigDecimal1 = new BigDecimal(reserveMoney);
+            yyCancelTwo.setKm(Integer.valueOf(km2));
+            yyCancelTwo.setKmMinute(kmMinute2);
+            yyCancelTwo.setOvertime(overtime);
+            yyCancelTwo.setReserveMoney(bigDecimal1);
             tSysCancleOrderService.updateById(yyCancelTwo);
         }else{
             yyCancelTwo = new TSysCancleOrder();
@@ -398,6 +572,12 @@
             yyCancelTwo.setCompanyId(ShiroKit.getUser().getObjectId());
             yyCancelTwo.setType(2);
             yyCancelTwo.setOrderType(2);
+
+            BigDecimal bigDecimal1 = new BigDecimal(reserveMoney);
+            yyCancelTwo.setKm(Integer.valueOf(km2));
+            yyCancelTwo.setKmMinute(kmMinute2);
+            yyCancelTwo.setOvertime(overtime);
+            yyCancelTwo.setReserveMoney(bigDecimal1);
             tSysCancleOrderService.insert(yyCancelTwo);
         }
 
@@ -466,6 +646,23 @@
             driverAssessment.setInsertTime(new Date());
             driverAssessmentService.insert(driverAssessment);
         }
+        // 超时设置
+        TSysOverTime overTime = sysOverTimeService.selectOne(new EntityWrapper<TSysOverTime>().eq("companyId", ShiroKit.getUser().getObjectId()));
+        if (overTime!=null){
+            overTime.setCar(overtime1);
+            overTime.setPackageTime(packageTime);
+            overTime.setReserveTime(reserveTime);
+            overTime.setReserveNext(reserveNext);
+            sysOverTimeService.updateById(overTime);
+        }else{
+            TSysOverTime tSysOverTime = new TSysOverTime();
+            tSysOverTime.setCompanyId(ShiroKit.getUser().getObjectId());
+            tSysOverTime.setCar(overtime1);
+            tSysOverTime.setPackageTime(packageTime);
+            tSysOverTime.setReserveTime(reserveTime);
+            tSysOverTime.setReserveNext(reserveNext);
+            sysOverTimeService.insert(tSysOverTime);
+        }
         return SUCCESS_TIP;
     }
 
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IncomeMapper.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IncomeMapper.java
index 5c1d4f5..1c221d9 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IncomeMapper.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IncomeMapper.java
@@ -5,6 +5,7 @@
 import com.stylefeng.guns.modular.system.model.Income;
 import org.apache.ibatis.annotations.Param;
 
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 
@@ -21,4 +22,7 @@
                                       @Param("times") String times);
 
     List<Map<String,Object>> getTotal(@Param("times") String times);
+
+
+
 }
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SettlementDetailMapper.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SettlementDetailMapper.java
new file mode 100644
index 0000000..98a6da2
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SettlementDetailMapper.java
@@ -0,0 +1,21 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.SettlementDetail;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/17 9:28
+ */
+public interface SettlementDetailMapper extends BaseMapper<SettlementDetail> {
+
+
+    /**
+     * 获取汇总分组数据
+     * @return
+     */
+    List<Map<String, Object>> queryGroupDriver();
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSysOverTimeMapper.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSysOverTimeMapper.java
new file mode 100644
index 0000000..8543df6
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSysOverTimeMapper.java
@@ -0,0 +1,16 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.TSysOverTime;
+
+/**
+ * <p>
+ * 系统设置-取消订单 Mapper 接口
+ * </p>
+ *
+ * @author 吕雪
+ * @since 2020-06-09
+ */
+public interface TSysOverTimeMapper extends BaseMapper<TSysOverTime> {
+
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSysRedSetMapper.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSysRedSetMapper.java
new file mode 100644
index 0000000..fee9b0b
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSysRedSetMapper.java
@@ -0,0 +1,23 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.stylefeng.guns.modular.system.model.AppOpenInfo;
+import com.stylefeng.guns.modular.system.model.TSysRedSet;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2021-04-15
+ */
+public interface TSysRedSetMapper extends BaseMapper<TSysRedSet> {
+
+    List<Map<String, Object>> getList(@Param("page")Page<Map<String, Object>> page);
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml
index 6f200b8..aae0867 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml
@@ -125,4 +125,5 @@
 GROUP BY
 	w.driverId) o
     </select>
+
 </mapper>
\ No newline at end of file
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SettlementDetailMapper.xml b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SettlementDetailMapper.xml
new file mode 100644
index 0000000..cdeebef
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SettlementDetailMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.SettlementDetailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.SettlementDetail">
+        <id column="id" property="id"/>
+        <result column="orderId" property="orderId"/>
+        <result column="orderType" property="orderType"/>
+        <result column="driverId" property="driverId"/>
+        <result column="price" property="price"/>
+        <result column="createTime" property="createTime"/>
+    </resultMap>
+
+
+    <select id="queryGroupDriver" resultType="map">
+        select
+        driverId,
+        sum(price) as price
+        from t_settlement_detail where settlementRecordId is null group by driverId
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSysOverTimeMapper.xml b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSysOverTimeMapper.xml
new file mode 100644
index 0000000..7e6b633
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSysOverTimeMapper.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.TSysOverTimeMapper">
+
+
+
+</mapper>
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSysRedSetMapper.xml b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSysRedSetMapper.xml
new file mode 100644
index 0000000..3abadcd
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSysRedSetMapper.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.TSysRedSetMapper">
+
+
+    <select id="getList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
+        select *
+        from t_red_set
+        where t_red_set.isDelete = 0
+        order by updateTime desc
+    </select>
+</mapper>
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SettlementDetail.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SettlementDetail.java
new file mode 100644
index 0000000..05b0067
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SettlementDetail.java
@@ -0,0 +1,58 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/17 9:23
+ */
+@Data
+@TableName("t_settlement_detail")
+public class SettlementDetail {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 结算主表id
+     */
+    @TableField("settlementRecordId")
+    private Integer settlementRecordId;
+    /**
+     * 订单id
+     */
+    @TableField("orderId")
+    private Integer orderId;
+    /**
+     * 订单类型(1=专车,4=同城小件)
+     */
+    @TableField("orderType")
+    private Integer orderType;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 订单金额
+     */
+    @TableField("orderMoney")
+    private Double orderMoney;
+    /**
+     * 结算金额
+     */
+    @TableField("price")
+    private Double price;
+    /**
+     * 添加日期
+     */
+    @TableField("createTime")
+    private Date createTime;
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java
index 380e941..516169e 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java
@@ -6,6 +6,8 @@
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.activerecord.Model;
 import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+
 import java.io.Serializable;
 
 /**
@@ -16,6 +18,7 @@
  * @author 吕雪
  * @since 2020-09-02
  */
+@Data
 @TableName("t_order_private_car")
 public class TOrderPrivateCar extends Model<TOrderPrivateCar> {
 
@@ -30,6 +33,8 @@
      * 类型(1=普通订单,2=摆渡订单)
      */
     private Integer type;
+    private String remark;
+
     /**
      * 用户id
      */
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysCancleOrder.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysCancleOrder.java
index ddf12d4..fbd260f 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysCancleOrder.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysCancleOrder.java
@@ -5,6 +5,8 @@
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.activerecord.Model;
 import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+
 import java.io.Serializable;
 
 /**
@@ -16,6 +18,7 @@
  * @since 2020-06-09
  */
 @TableName("t_sys_cancle_order")
+@Data
 public class TSysCancleOrder extends Model<TSysCancleOrder> {
 
     private static final long serialVersionUID = 1L;
@@ -38,6 +41,22 @@
      */
     private BigDecimal money;
     /**
+     *预定费用
+     */
+    private BigDecimal reserveMoney;
+    /**
+     *取消里程费
+     */
+    private Integer km;
+    /**
+     * 司机超时xx分钟 未到达指定地点 用户取消订单 不收取费用
+     */
+    private Integer overtime;
+    /**
+     * 取消时长费
+     */
+    private Integer kmMinute;
+    /**
      * 1=普通单取消,2=预约单取消
      */
     private Integer type;
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysOverTime.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysOverTime.java
new file mode 100644
index 0000000..8b18d06
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysOverTime.java
@@ -0,0 +1,57 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 系统设置-超时设置
+ * </p>
+ *
+ * @author 吕雪
+ * @since 2020-06-09
+ */
+@TableName("t_sys_overtime")
+@Data
+public class TSysOverTime extends Model<TSysOverTime> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 企业id
+     */
+    private Integer companyId;
+
+    /**
+     * 打车订单每隔xx分钟提醒一次
+     */
+    private Integer car;
+    /**
+     * 包裹订单每隔xx分钟提醒一次
+     */
+    private Integer packageTime;
+    /**
+     * 预约订单 在预定时间前x分钟首次提醒
+     */
+    private Integer reserveTime;
+    /**
+     * 预约订单每隔xx分钟提醒一次
+     */
+    private Integer reserveNext;
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysRedSet.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysRedSet.java
new file mode 100644
index 0000000..6057561
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysRedSet.java
@@ -0,0 +1,62 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 2.0新增红包支付设置
+ * </p>
+ *
+ * @author 吕雪
+ * @since 2020-06-09
+ */
+@TableName("t_red_set")
+@Data
+public class TSysRedSet extends Model<TSysRedSet> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 操作热
+     */
+    private String handle;
+    /**
+     * 比例
+     */
+    private String proportion;
+    /**
+     * 生效时间
+     */
+    @JsonFormat(timezone = "GMT+8")
+    private Date startTime;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 是否删除 0否1是
+     */
+    private Integer isDelete;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserRedPacketRecord.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserRedPacketRecord.java
index 5f2fa60..c76f88b 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserRedPacketRecord.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserRedPacketRecord.java
@@ -23,11 +23,11 @@
      */
     @TableField("money")
     private Double money;
-    /**
-     * 过期时间
-     */
-    @TableField("expirationTime")
-    private Date expirationTime;
+//    /**
+//     * 过期时间
+//     */
+//    @TableField("expirationTime")
+//    private Date expirationTime;
     /**
      * 添加时间
      */
@@ -85,13 +85,13 @@
         this.money = money;
     }
 
-    public Date getExpirationTime() {
-        return expirationTime;
-    }
-
-    public void setExpirationTime(Date expirationTime) {
-        this.expirationTime = expirationTime;
-    }
+//    public Date getExpirationTime() {
+//        return expirationTime;
+//    }
+//
+//    public void setExpirationTime(Date expirationTime) {
+//        this.expirationTime = expirationTime;
+//    }
 
     public Date getInsertTime() {
         return insertTime;
@@ -162,7 +162,7 @@
         return "UserRedPacketRecord{" +
                 "id=" + id +
                 ", money=" + money +
-                ", expirationTime=" + expirationTime +
+//                ", expirationTime=" + expirationTime +
                 ", insertTime=" + insertTime +
                 ", companyId=" + companyId +
                 ", state=" + state +
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java
index 2d49c0c..7d54d74 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java
@@ -5,6 +5,7 @@
 import com.stylefeng.guns.modular.system.model.Income;
 import org.apache.ibatis.annotations.Param;
 
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 
@@ -35,4 +36,6 @@
 
     List<Map<String,Object>> getTotal(
                                       @Param("times") String times);
+
+
 }
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISettlementDetailService.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISettlementDetailService.java
new file mode 100644
index 0000000..c529fbd
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISettlementDetailService.java
@@ -0,0 +1,20 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.SettlementDetail;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/17 9:36
+ */
+public interface ISettlementDetailService extends IService<SettlementDetail>{
+
+    /**
+     * 获取汇总分组数据
+     * @return
+     */
+    List<Map<String, Object>> queryGroupDriver();
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISysRedSetService.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISysRedSetService.java
new file mode 100644
index 0000000..9a43999
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISysRedSetService.java
@@ -0,0 +1,25 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.TCar;
+import com.stylefeng.guns.modular.system.model.TSysRedSet;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 2.0新增 红包支付设置
+ * </p>
+ *
+ * @author 吕雪
+ * @since 2020-06-05
+ */
+public interface ISysRedSetService extends IService<TSysRedSet> {
+
+
+    List<Map<String, Object>> getList(Page<Map<String, Object>> page);
+
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITSysOverTimeService.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITSysOverTimeService.java
new file mode 100644
index 0000000..b76b214
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITSysOverTimeService.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.TSysCancleOrder;
+import com.stylefeng.guns.modular.system.model.TSysOverTime;
+
+/**
+ * <p>
+ * 系统设置-取消订单 服务类
+ * </p>
+ *
+ * @author 吕雪
+ * @since 2020-06-09
+ */
+public interface ITSysOverTimeService extends IService<TSysOverTime> {
+
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
index 1eaabcd..b2b2ffc 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
@@ -7,6 +7,7 @@
 import com.stylefeng.guns.modular.system.service.IIncomeService;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -61,4 +62,6 @@
     public List<Map<String, Object>> getTotal(String times) {
         return this.baseMapper.getTotal(times);
     }
+
+
 }
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementDetailServiceImpl.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementDetailServiceImpl.java
new file mode 100644
index 0000000..2bc618c
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementDetailServiceImpl.java
@@ -0,0 +1,28 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.SettlementDetailMapper;
+import com.stylefeng.guns.modular.system.model.SettlementDetail;
+import com.stylefeng.guns.modular.system.service.ISettlementDetailService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/17 9:37
+ */
+@Service
+public class SettlementDetailServiceImpl extends ServiceImpl<SettlementDetailMapper, SettlementDetail> implements ISettlementDetailService {
+
+
+    /**
+     * 获取汇总分组数据
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> queryGroupDriver() {
+        return this.baseMapper.queryGroupDriver();
+    }
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSysOverTimeServiceImpl.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSysOverTimeServiceImpl.java
new file mode 100644
index 0000000..c11825c
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSysOverTimeServiceImpl.java
@@ -0,0 +1,23 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.TSysCancleOrderMapper;
+import com.stylefeng.guns.modular.system.dao.TSysOverTimeMapper;
+import com.stylefeng.guns.modular.system.model.TSysCancleOrder;
+import com.stylefeng.guns.modular.system.model.TSysOverTime;
+import com.stylefeng.guns.modular.system.service.ITSysCancleOrderService;
+import com.stylefeng.guns.modular.system.service.ITSysOverTimeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 系统设置-取消订单 服务实现类
+ * </p>
+ *
+ * @author 吕雪
+ * @since 2020-06-09
+ */
+@Service
+public class TSysOverTimeServiceImpl extends ServiceImpl<TSysOverTimeMapper, TSysOverTime> implements ITSysOverTimeService {
+
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSysRedSetServiceImpl.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSysRedSetServiceImpl.java
new file mode 100644
index 0000000..c2db711
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSysRedSetServiceImpl.java
@@ -0,0 +1,34 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.TAgreementMapper;
+import com.stylefeng.guns.modular.system.dao.TSysRedSetMapper;
+import com.stylefeng.guns.modular.system.model.TAgreement;
+import com.stylefeng.guns.modular.system.model.TSysRedSet;
+import com.stylefeng.guns.modular.system.service.ISysRedSetService;
+import com.stylefeng.guns.modular.system.service.ITAgreementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 2.0新增 红包支付设置
+ * </p>
+ *
+ * @author 吕雪
+ * @since 2020-06-01
+ */
+@Service
+public class TSysRedSetServiceImpl extends ServiceImpl<TSysRedSetMapper, TSysRedSet> implements ISysRedSetService {
+
+    @Autowired
+    private TSysRedSetMapper tSysRedSetMapper;
+    @Override
+    public List<Map<String, Object>> getList(Page<Map<String, Object>> page) {
+        return tSysRedSetMapper.getList(page);
+    }
+}
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/GrantMoneyVO.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/GrantMoneyVO.java
new file mode 100644
index 0000000..d8959ef
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/GrantMoneyVO.java
@@ -0,0 +1,24 @@
+package com.stylefeng.guns.modular.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel
+public class GrantMoneyVO {
+    @ApiModelProperty(value = "已发放补贴总额")
+    private BigDecimal total;
+    @ApiModelProperty(value = "已使用折扣总额(用户端)")
+    private BigDecimal discount;
+    @ApiModelProperty(value = "已领取红包总额(用户端)")
+    private BigDecimal redPackage;
+    @ApiModelProperty(value = "已领取优惠券总额(用户端)")
+    private BigDecimal coupon;
+    @ApiModelProperty(value = "已领取司机奖励总额(司机端)")
+    private BigDecimal driver;
+
+
+}
\ No newline at end of file
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/GrantVO.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/GrantVO.java
new file mode 100644
index 0000000..bbc250f
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/GrantVO.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.modular.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel
+public class GrantVO {
+    @ApiModelProperty(value = "使用时间")
+    private String insertTime;
+    @ApiModelProperty(value = "补贴类型")
+    private String type;
+    @ApiModelProperty(value = "金额")
+    private String amount;
+    @ApiModelProperty(value = "领取用户id")
+    private String name;
+    @ApiModelProperty(value = "备注")
+    private String remark;
+}
\ No newline at end of file
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/PlatformMoneyVO.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/PlatformMoneyVO.java
new file mode 100644
index 0000000..3d5c5b3
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/PlatformMoneyVO.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.modular.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel
+public class PlatformMoneyVO {
+
+    @ApiModelProperty(value = "佣金金额")
+    private BigDecimal total;
+    @ApiModelProperty(value = "司机已结算")
+    private BigDecimal balance;
+    @ApiModelProperty(value = "司机未结算")
+    private BigDecimal unBalance;
+
+
+
+}
\ No newline at end of file
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/PlatformVO.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/PlatformVO.java
new file mode 100644
index 0000000..61f63f7
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/PlatformVO.java
@@ -0,0 +1,34 @@
+package com.stylefeng.guns.modular.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel
+public class PlatformVO {
+    @ApiModelProperty(value = "下单时间")
+    private String insertTime;
+    @ApiModelProperty(value = "订单号")
+    private String code;
+    @ApiModelProperty(value = "司机姓名")
+    private String driverName;
+    @ApiModelProperty(value = "司机手机号")
+    private String driverPhone;
+    @ApiModelProperty(value = "佣金金额")
+    private BigDecimal money;
+    @ApiModelProperty(value = "支付方式")
+    private String payType;
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    @ApiModelProperty(value = "状态 1结算 2未结算")
+    private Integer state;
+    @ApiModelProperty(value = "结算时间")
+    private String endTime;
+
+
+}
\ No newline at end of file
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/UseMoneyVO.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/UseMoneyVO.java
new file mode 100644
index 0000000..941eadd
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/UseMoneyVO.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel
+public class UseMoneyVO {
+    @ApiModelProperty(value = "已使用补贴总额")
+    private BigDecimal total;
+    @ApiModelProperty(value = "已使用折扣总额(用户端)")
+    private BigDecimal discount;
+    @ApiModelProperty(value = "已使用红包总额(用户端)")
+    private BigDecimal redPackage;
+    @ApiModelProperty(value = "已使用优惠券总额(用户端)")
+    private BigDecimal coupon;
+    @ApiModelProperty(value = "已使用司机奖励合计(司机端)")
+    private BigDecimal driver;
+    @ApiModelProperty(value = "已提现")
+    private BigDecimal driverWithdrawal;
+    @ApiModelProperty(value = "已消费")
+    private BigDecimal driverConsume;
+
+}
\ No newline at end of file
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/WaterMoneyVO.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/WaterMoneyVO.java
new file mode 100644
index 0000000..831ac08
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/WaterMoneyVO.java
@@ -0,0 +1,26 @@
+package com.stylefeng.guns.modular.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel
+public class WaterMoneyVO {
+
+    @ApiModelProperty(value = "第三方流水余额合计")
+    private BigDecimal total;
+    @ApiModelProperty(value = "用户订单消费")
+    private BigDecimal userOrder;
+    @ApiModelProperty(value = "用户充值总额")
+    private BigDecimal userCharge;
+    @ApiModelProperty(value = "司机结算总额")
+    private BigDecimal balance;
+    @ApiModelProperty(value = "司机提现总额")
+    private BigDecimal driverWithdrawal;
+    @ApiModelProperty(value = "用户提现总额")
+    private BigDecimal userWithdrawal;
+
+}
\ No newline at end of file
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/WaterVO.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/WaterVO.java
new file mode 100644
index 0000000..db7af90
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/vo/WaterVO.java
@@ -0,0 +1,28 @@
+package com.stylefeng.guns.modular.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel
+public class WaterVO {
+    @ApiModelProperty(value = "付款时间")
+    private String insertTime;
+    @ApiModelProperty(value = "订单号")
+    private String code;
+    @ApiModelProperty(value = "支付方")
+    private String name;
+    @ApiModelProperty(value = "支付方手机号")
+    private String phone;
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal money;
+    @ApiModelProperty(value = "支付方式")
+    private String payType;
+    @ApiModelProperty(value = "流水项目")
+    private String type;
+    @ApiModelProperty(value = "备注")
+    private String remark;
+}
\ No newline at end of file
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/platform/commission.html b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/platform/commission.html
index 0052c29..353e3b3 100644
--- a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/platform/commission.html
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/platform/commission.html
@@ -59,6 +59,7 @@
                         <div class="row">
                             <div class="col-sm-3">
                                 <#SelectCon id="time" name="时间" >
+                                <option value="">今日</option>
                                 <option value="1">今日</option>
                                 <option value="2">本周</option>
                                 <option value="3">本月</option>
@@ -89,14 +90,14 @@
                     </div>
                     <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/=.png.">
                     <div class="rectangle2">
-                        <h1 id="num2">1</h1>
+                        <h1 id="num2">0</h1>
                         <br>
                         <h2 id="text2">司机已结算</h2>
                     </div>
                     <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/+.png.">
 
                     <div class="rectangle3">
-                        <h1 id="num3">2</h1>
+                        <h1 id="num3">0</h1>
                         <br>
                         <h2 id="text3">司机未结算</h2>
                     </div>
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/platform/watter.html b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/platform/watter.html
new file mode 100644
index 0000000..b86fb6f
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/platform/watter.html
@@ -0,0 +1,147 @@
+@layout("/common/_container.html"){
+<style>
+    .container {
+        display: flex; /* 使用 Flex 布局 */
+        margin-left: 50px;
+        margin-top: 30px;
+        width: 2200px;
+    }
+    .rectangle1 {
+        width: 250px; /* 设置框的宽度 */
+        height: 160px; /* 自适应高度 */
+        background-color: #cecece; /* 设置底色为灰色 */
+        border-radius: 30px; /* 设置圆角半径为10px */
+        display: flex; /* 使用 Flex 布局 */
+        flex-direction: column; /* 设置主轴方向为垂直 */
+        justify-content: center; /* 垂直居中 */
+        align-items: center; /* 水平居中 */
+        margin-right: 40px; /* 设置矩形框之间的间距 */
+    }
+    .rectangle2 {
+        width: 200px; /* 设置框的宽度 */
+        height: 130px; /* 自适应高度 */
+        background-color: #cecece; /* 设置底色为灰色 */
+        border-radius: 30px; /* 设置圆角半径为10px */
+        display: flex; /* 使用 Flex 布局 */
+        flex-direction: column; /* 设置主轴方向为垂直 */
+        justify-content: center; /* 垂直居中 */
+        align-items: center; /* 水平居中 */
+        margin-right: 40px; /* 设置矩形框之间的间距 */
+        margin-left: 40px; /* 设置矩形框之间的间距 */
+        margin-top: 15px;
+    }
+    .rectangle3 {
+        width: 200px; /* 设置框的宽度 */
+        height: 130px; /* 自适应高度 */
+        background-color: #cecece; /* 设置底色为灰色 */
+        border-radius: 30px; /* 设置圆角半径为10px */
+        display: flex; /* 使用 Flex 布局 */
+        flex-direction: column; /* 设置主轴方向为垂直 */
+        justify-content: center; /* 垂直居中 */
+        align-items: center; /* 水平居中 */
+        margin-right: 40px; /* 设置矩形框之间的间距 */
+        margin-left: 40px; /* 设置矩形框之间的间距 */
+        margin-top: 15px;
+    }
+    h1, h2 {
+        margin: 0; /* 去除默认的外边距 */
+    }
+
+</style>
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>三方流水统计</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-3">
+                                <#SelectCon id="time" name="时间" >
+                                <option value="">今日</option>
+                                <option value="1">今日</option>
+                                <option value="2">本周</option>
+                                <option value="3">本月</option>
+                                <option value="4">全年</option>
+                            </#SelectCon>
+                        </div>
+                            <div class="col-sm-3">
+                                <#TimeCon id="insertTime" name="时间" isTime="false"/>
+                            </div>
+                            <div class="col-sm-3">
+                                <#SelectCon id="type" name="流水项目" >
+                                    <option value="">全部</option>
+                                    <option value="1">用户订单消费</option>
+                                    <option value="2">用户充值</option>
+                                    <option value="3">司机结算</option>
+                                    <option value="4">司机提现</option>
+                                    <option value="5">用户提现</option>
+                                </#SelectCon>
+                            </div>
+                            <div class="col-sm-3">
+                                <#SelectCon id="payType" name="支付方式" >
+                                    <option value="">全部</option>
+                                    <option value="1">银行卡支付</option>
+                                    <option value="2">手机支付</option>
+                                </#SelectCon>
+                            </div>
+                            <div class="col-sm-3">
+                                <#button name="查询" icon="fa-search" clickFun="TUser.search()"/>
+                                <#button name="重置" icon="fa-trash" clickFun="TUser.resetSearch()" space="true"/>
+                            </div>
+                        </div>
+                <div class="container">
+                    <div class="rectangle1">
+                        <h1 id="num1">0</h1>
+                        <br>
+                        <h2 id="text1">第三方流水余额合计</h2>
+
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/=.png.">
+                    <div class="rectangle2">
+                        <h1 id="num2">0</h1>
+                        <br>
+                        <h2 id="text2">用户订单消费</h2>
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/+.png.">
+                    <div class="rectangle3">
+                        <h1 id="num3">0</h1>
+                        <br>
+                        <h2 id="text3">用户充值总额</h2>
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/+.png.">
+                    <div class="rectangle3">
+                        <h1 id="num4">0</h1>
+                        <br>
+                        <h2 id="text4">司机结算总额</h2>
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/-.png.">
+                    <div class="rectangle3">
+                        <h1 id="num5">0</h1>
+                        <br>
+                        <h2 id="text5">司机提现总额</h2>
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/-.png.">
+                    <div class="rectangle3">
+                        <h1 id="num6">0</h1>
+                        <br>
+                        <h2 id="text6">用户提现总额</h2>
+                    </div>
+                </div>
+                    <#table id="TUserTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/platform/water.js"></script>
+<script>
+    laydate.render({
+        elem: '#insertTime'
+        ,range: true
+    });
+</script>
+@}
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/grant.html b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/grant.html
new file mode 100644
index 0000000..04d62cc
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/grant.html
@@ -0,0 +1,134 @@
+@layout("/common/_container.html"){
+<style>
+    .container {
+        display: flex; /* 使用 Flex 布局 */
+        margin-left: 50px;
+        margin-top: 30px;
+        width: 2200px;
+    }
+    .rectangle1 {
+        width: 250px; /* 设置框的宽度 */
+        height: 160px; /* 自适应高度 */
+        background-color: #cecece; /* 设置底色为灰色 */
+        border-radius: 30px; /* 设置圆角半径为10px */
+        display: flex; /* 使用 Flex 布局 */
+        flex-direction: column; /* 设置主轴方向为垂直 */
+        justify-content: center; /* 垂直居中 */
+        align-items: center; /* 水平居中 */
+        margin-right: 40px; /* 设置矩形框之间的间距 */
+    }
+    .rectangle2 {
+        width: 200px; /* 设置框的宽度 */
+        height: 130px; /* 自适应高度 */
+        background-color: #cecece; /* 设置底色为灰色 */
+        border-radius: 30px; /* 设置圆角半径为10px */
+        display: flex; /* 使用 Flex 布局 */
+        flex-direction: column; /* 设置主轴方向为垂直 */
+        justify-content: center; /* 垂直居中 */
+        align-items: center; /* 水平居中 */
+        margin-right: 40px; /* 设置矩形框之间的间距 */
+        margin-left: 40px; /* 设置矩形框之间的间距 */
+        margin-top: 15px;
+    }
+    .rectangle3 {
+        width: 200px; /* 设置框的宽度 */
+        height: 130px; /* 自适应高度 */
+        background-color: #cecece; /* 设置底色为灰色 */
+        border-radius: 30px; /* 设置圆角半径为10px */
+        display: flex; /* 使用 Flex 布局 */
+        flex-direction: column; /* 设置主轴方向为垂直 */
+        justify-content: center; /* 垂直居中 */
+        align-items: center; /* 水平居中 */
+        margin-right: 40px; /* 设置矩形框之间的间距 */
+        margin-left: 40px; /* 设置矩形框之间的间距 */
+        margin-top: 15px;
+    }
+    h1, h2 {
+        margin: 0; /* 去除默认的外边距 */
+    }
+
+</style>
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>发放补贴统计</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-3">
+                                <#SelectCon id="time" name="时间" >
+                                <option value="">今日</option>
+                                <option value="1">今日</option>
+                                <option value="2">本周</option>
+                                <option value="3">本月</option>
+                                <option value="4">全年</option>
+                            </#SelectCon>
+                        </div>
+                            <div class="col-sm-3">
+                                <#TimeCon id="insertTime" name="时间" isTime="false"/>
+                            </div>
+                            <div class="col-sm-3">
+                                <#SelectCon id="type" name="补贴类型" >
+                                    <option value="">全部</option>
+                                    <option value="1">红包</option>
+                                    <option value="2">优惠券</option>
+                                    <option value="3">司机奖励</option>
+                                </#SelectCon>
+                            </div>
+                            <div class="col-sm-3">
+                                <#button name="查询" icon="fa-search" clickFun="TUser.search()"/>
+                                <#button name="重置" icon="fa-trash" clickFun="TUser.resetSearch()" space="true"/>
+                            </div>
+                        </div>
+                <div class="container">
+                    <div class="rectangle1">
+                        <h1 id="num1">0</h1>
+                        <br>
+                        <h2 id="text1">已发放补贴总额</h2>
+
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/=.png.">
+                    <div class="rectangle2">
+                        <h1 id="num2">0</h1>
+                        <br>
+                        <h2 id="text2">已使用折扣总额(用户端)</h2>
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/+.png.">
+                    <div class="rectangle3">
+                        <h1 id="num3">0</h1>
+                        <br>
+                        <h2 id="text3">已领取红包总额(用户端)</h2>
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/+.png.">
+                    <div class="rectangle3">
+                        <h1 id="num4">0</h1>
+                        <br>
+                        <h2 id="text4">已领取优惠券总额(用户端)</h2>
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/+.png.">
+                    <div class="rectangle3">
+                        <h1 id="num5">0</h1>
+                        <br>
+                        <h2 id="text5">已领取司机奖励(司机端)</h2>
+                    </div>
+
+                </div>
+
+                        <#table id="TUserTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/subsidy/grant.js"></script>
+<script>
+    laydate.render({
+        elem: '#insertTime'
+        ,range: true
+    });
+</script>
+@}
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/use.html b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/use.html
new file mode 100644
index 0000000..1d668ca
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/use.html
@@ -0,0 +1,146 @@
+@layout("/common/_container.html"){
+<style>
+    .container {
+        display: flex; /* 使用 Flex 布局 */
+        margin-left: 50px;
+        margin-top: 30px;
+        width: 2200px;
+    }
+    .rectangle1 {
+        width: 250px; /* 设置框的宽度 */
+        height: 160px; /* 自适应高度 */
+        background-color: #cecece; /* 设置底色为灰色 */
+        border-radius: 30px; /* 设置圆角半径为10px */
+        display: flex; /* 使用 Flex 布局 */
+        flex-direction: column; /* 设置主轴方向为垂直 */
+        justify-content: center; /* 垂直居中 */
+        align-items: center; /* 水平居中 */
+        margin-right: 40px; /* 设置矩形框之间的间距 */
+    }
+    .rectangle2 {
+        width: 200px; /* 设置框的宽度 */
+        height: 130px; /* 自适应高度 */
+        background-color: #cecece; /* 设置底色为灰色 */
+        border-radius: 30px; /* 设置圆角半径为10px */
+        display: flex; /* 使用 Flex 布局 */
+        flex-direction: column; /* 设置主轴方向为垂直 */
+        justify-content: center; /* 垂直居中 */
+        align-items: center; /* 水平居中 */
+        margin-right: 40px; /* 设置矩形框之间的间距 */
+        margin-left: 40px; /* 设置矩形框之间的间距 */
+        margin-top: 15px;
+    }
+    .rectangle3 {
+        width: 200px; /* 设置框的宽度 */
+        height: 130px; /* 自适应高度 */
+        background-color: #cecece; /* 设置底色为灰色 */
+        border-radius: 30px; /* 设置圆角半径为10px */
+        display: flex; /* 使用 Flex 布局 */
+        flex-direction: column; /* 设置主轴方向为垂直 */
+        justify-content: center; /* 垂直居中 */
+        align-items: center; /* 水平居中 */
+        margin-right: 40px; /* 设置矩形框之间的间距 */
+        margin-left: 40px; /* 设置矩形框之间的间距 */
+        margin-top: 15px;
+    }
+    h1, h2 {
+        margin: 0; /* 去除默认的外边距 */
+    }
+
+</style>
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>三方流水统计</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-3">
+                                <#SelectCon id="time" name="时间" >
+                                <option value="1">今日</option>
+                                <option value="2">本周</option>
+                                <option value="3">本月</option>
+                                <option value="4">全年</option>
+                            </#SelectCon>
+                        </div>
+                            <div class="col-sm-3">
+                                <#TimeCon id="insertTime" name="时间" isTime="false"/>
+                            </div>
+                            <div class="col-sm-3">
+                                <#SelectCon id="type" name="流水项目" >
+                                    <option value="">全部</option>
+                                    <option value="1">用户订单消费</option>
+                                    <option value="2">用户充值</option>
+                                    <option value="3">司机结算</option>
+                                    <option value="4">司机提现</option>
+                                    <option value="5">用户提现</option>
+                                </#SelectCon>
+                            </div>
+                            <div class="col-sm-3">
+                                <#SelectCon id="payType" name="支付方式" >
+                                    <option value="">全部</option>
+                                    <option value="1">银行卡支付</option>
+                                    <option value="2">手机支付</option>
+                                </#SelectCon>
+                            </div>
+                            <div class="col-sm-3">
+                                <#button name="查询" icon="fa-search" clickFun="TUser.search()"/>
+                                <#button name="重置" icon="fa-trash" clickFun="TUser.resetSearch()" space="true"/>
+                            </div>
+                        </div>
+                <div class="container">
+                    <div class="rectangle1">
+                        <h1 id="num1">0</h1>
+                        <br>
+                        <h2 id="text1">第三方流水余额合计</h2>
+
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/=.png.">
+                    <div class="rectangle2">
+                        <h1 id="num2">0</h1>
+                        <br>
+                        <h2 id="text2">用户订单消费</h2>
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/+.png.">
+                    <div class="rectangle3">
+                        <h1 id="num3">0</h1>
+                        <br>
+                        <h2 id="text3">用户充值总额</h2>
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/+.png.">
+                    <div class="rectangle3">
+                        <h1 id="num4">0</h1>
+                        <br>
+                        <h2 id="text4">司机结算总额</h2>
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/-.png.">
+                    <div class="rectangle3">
+                        <h1 id="num5">0</h1>
+                        <br>
+                        <h2 id="text5">司机提现总额</h2>
+                    </div>
+                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/-.png.">
+                    <div class="rectangle3">
+                        <h1 id="num6">0</h1>
+                        <br>
+                        <h2 id="text6">用户提现总额</h2>
+                    </div>
+                </div>
+                    <#table id="TUserTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/platform/water.js"></script>
+<script>
+    laydate.render({
+        elem: '#insertTime'
+        ,range: true
+    });
+</script>
+@}
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSet.html b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSet.html
new file mode 100644
index 0000000..06b61f7
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSet.html
@@ -0,0 +1,36 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>红包支付设置</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="hidden-xs" id="TSiteTableToolbar" role="group">
+                            @if(shiro.hasPermission("/tSysReformist/redSet/add")){
+                                <#button name="添加" icon="fa-plus" clickFun="TSite.addRedSet()"/>
+                            @}
+                            @if(shiro.hasPermission("/tSysReformist/redSet/update")){
+                            <#button name="编辑" icon="fa-edit" clickFun="TSite.update()" space="true"/>
+                            @}
+                            @if(shiro.hasPermission("/tSysReformist/redSet/delete")){
+                            <#button name="删除" icon="fa-remove" clickFun="TSite.delete()" space="true"/>
+                            @}
+                        </div>
+                        <#table id="TSiteTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tSysReformist/tRedSet.js"></script>
+<script>
+    laydate.render({
+        elem: '#insertTime'
+        ,range: true
+    });
+</script>
+@}
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSetAdd.html b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSetAdd.html
new file mode 100644
index 0000000..761c71f
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSetAdd.html
@@ -0,0 +1,42 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="siteInfoForm">
+            <div class="row">
+                <div class="col-sm-12">
+                    <div class="">
+                        <h2 style="margin-left: 200px;">红包支付设置</h2>
+                    </div>
+                    <h3 style="color: red;margin-left: 200px;">【当前已生效折扣比例:${new}%】</h3>
+                    <br>
+                    <br>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">红包可抵扣比例:</label>
+                        <div class="col-sm-9" style="display: flex;">
+                            <input style="width: 300px" class="form-control" id="proportion" name="proportion" placeholder="请输入红包可抵扣比例" type="text">
+                            <span id="priceLabel1"  style="margin-left: 5px;margin-top: 5px">%</span>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label">生效时间:</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="startTime" name="startTime" type="datetime-local">
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10 col-sm-offset-5">
+                    <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TSiteInfo.addSubmit()"/>
+                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSiteInfo.close()"/>
+                </div>
+            </div>
+        </div>
+
+    </div>
+</div>
+<script src="https://webapi.amap.com/maps?v=1.4.15&key=c59c0ec8058a8305009eb315584e07d1&plugin=AMap.MouseTool,AMap.DistrictSearch,AMap.PolyEditor,AMap.RectangleEditor,AMap.CircleEditor"></script>
+<script src="${ctxPath}/static/modular/system/tSite/electricFence.js"></script>
+<script src="${ctxPath}/static/modular/system/tSysReformist/tRedSetInfo.js"></script>
+@}
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSetEdit.html b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSetEdit.html
new file mode 100644
index 0000000..9a67828
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tRedSetEdit.html
@@ -0,0 +1,40 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="siteInfoForm">
+            <div class="row">
+                <input type="hidden" id="id" name="id" value="${id}">
+                <div class="col-sm-12">
+                    <div class="">
+                        <h2 style="margin-left: 200px;">红包支付设置</h2>
+                    </div>
+                    <h3 style="color: red;margin-left: 200px;">【当前已生效折扣比例:${new}%】</h3>
+                    <br>
+                    <br>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">红包可抵扣比例:</label>
+                        <div class="col-sm-9" style="display: flex;">
+                            <input style="width: 300px" class="form-control" id="proportion" value="${data.proportion}" name="proportion" placeholder="请输入红包可抵扣比例" type="text">
+                            <span id="priceLabel1"  style="margin-left: 5px;margin-top: 5px">%</span>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label">生效时间:</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="startTime" value="${time}" name="startTime" type="datetime-local">
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10 col-sm-offset-5">
+                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSiteInfo.updateSubmit()"/>
+                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSiteInfo.close()"/>
+                </div>
+            </div>
+        </div>
+
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tSysReformist/tRedSetInfo.js"></script>
+@}
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
index a140f5d..d6a98a5 100644
--- a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
@@ -116,7 +116,7 @@
                         <h3>推单设置:</h3>
                     </div>
                     <div class="form-group">
-                        <label class="col-sm-2 control-label">专车推单:</label>
+                        <label class="col-sm-2 control-label">打车/包裹推单:</label>
                         <div class="col-sm-10">
                             第一轮推单:推单距离为&nbsp;<input type="text" oninput="checkIsDouble(this)"
                                                     @if(isNotEmpty(zcOne)){
@@ -189,7 +189,7 @@
                         </div>
                     </div>
                     <div class="form-group">
-                        <label class="col-sm-2 control-label">专车指派:</label>
+                        <label class="col-sm-2 control-label">打车/包裹指派:</label>
                         <div class="col-sm-10">
                             指派距离为&nbsp;<input type="text" oninput="checkIsDouble(this)"
                                                     @if(isNotEmpty(zcAssignOrder)){
@@ -302,9 +302,9 @@
                         </div>
                     </div>
                     <div class="form-group">
-                        <label class="col-sm-2 control-label">取消设置:</label>
+                        <label class="col-sm-2 control-label">打车/包裹订单取消设置:</label>
                         <div class="col-sm-10">
-                            专车订单取消规则:专车订单在司机接单&nbsp;<input type="text" oninput="checkIsInt(this)"
+                            订单取消规则:订单在司机接单&nbsp;<input type="text" oninput="checkIsInt(this)"
                                                            @if(isNotEmpty(ptCancel1)){
                                                            value="${ptCancel1.minuteNum}"
                                                            @}else{
@@ -317,7 +317,21 @@
                                                @}else{
                                                value=""
                                                @}
-                                               name="ptCancel2" id="ptCancel2" class="form-control newWidth" />&nbsp;元取消费用;
+                                               name="ptCancel2" id="ptCancel2" class="form-control newWidth" />&nbsp;GHS取消费用 &nbsp;&nbsp;
+                            里程费&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                               @if(isNotEmpty(ptCancel1)){
+                                               value="${ptCancel1.km}"
+                                               @}else{
+                                               value=""
+                                               @}
+                                               name="km" id="km" class="form-control newWidth" />&nbsp;GHS/km &nbsp;&nbsp;
+                            时长费&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                               @if(isNotEmpty(ptCancel1)){
+                                               value="${ptCancel1.kmMinute}"
+                                               @}else{
+                                               value=""
+                                               @}
+                                               name="kmMinute" id="kmMinute" class="form-control newWidth" />&nbsp;GHS/分钟 &nbsp;&nbsp;
                             <br/>
                             <br/>
                             <div class="col-sm-10" hidden>
@@ -340,9 +354,9 @@
                         </div>
                     </div>
                     <div class="form-group">
-                        <label class="col-sm-2 control-label">预约单取消设置:</label>
+                        <label class="col-sm-2 control-label">预约订单取消规则:</label>
                         <div class="col-sm-10">
-                            专车订单取消规则:专车订单在司机接单&nbsp;<input type="text" oninput="checkIsInt(this)"
+                            订单在司机接单&nbsp;<input type="text" oninput="checkIsInt(this)"
                                                            @if(isNotEmpty(yyCancel1)){
                                                            value="${yyCancel1.minuteNum}"
                                                            @}else{
@@ -355,7 +369,30 @@
                                                @}else{
                                                value=""
                                                @}
-                                               name="yyCancel2" id="yyCancel2" class="form-control newWidth" />&nbsp;元取消费用;
+                                               name="yyCancel2" id="yyCancel2" class="form-control newWidth" />&nbsp;元取消费用;&nbsp;&nbsp;
+                            里程费&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                               @if(isNotEmpty(yyCancel1)){
+                                               value="${yyCancel1.km}"
+                                               @}else{
+                                               value=""
+                                               @}
+                                               name="km2" id="km2" class="form-control newWidth" />&nbsp;GHS/km &nbsp;&nbsp;
+                            时长费&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                               @if(isNotEmpty(yyCancel1)){
+                                               value="${yyCancel1.kmMinute}"
+                                               @}else{
+                                               value=""
+                                               @}
+                                               name="kmMinute2" id="kmMinute2" class="form-control newWidth" />&nbsp;GHS/分钟 &nbsp;&nbsp;
+                            </br>
+                            </br>
+                            预定费用&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                               @if(isNotEmpty(yyCancel1)){
+                                               value="${yyCancel1.reserveMoney}"
+                                               @}else{
+                                               value=""
+                                               @}
+                                               name="reserveMoney" id="reserveMoney" class="form-control newWidth" />&nbsp;GHS &nbsp;&nbsp;
                             <br/>
                             <br/>
                             <div class="col-sm-10" hidden>
@@ -372,9 +409,66 @@
                                                @}else{
                                                value=""
                                                @}
-                                               name="yyCancel4" id="yyCancel4" class="form-control newWidth" />&nbsp;元取消费用;
+                                               name="yyCancel4" id="yyCancel4" class="form-control newWidth" />&nbsp;元取消费用
                             <br/>
                             </div>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">司机超时(地图计算时间或者预定时间):</label>
+                        <div class="col-sm-10">
+                            &nbsp;<input type="text" oninput="checkIsInt(this)"
+                                                                    @if(isNotEmpty(ptCancel2)){
+                                                                    value="${ptCancel2.overtime}"
+                                                                    @}else{
+                                                                    value=""
+                                                                    @}
+                                                                    name="overtime" id="overtime" class="form-control newWidth" />&nbsp;分钟未到达接人点或取件点,用户取消订单不收费
+                            <br/>
+                            <br/>
+
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">打车/包裹订单超时提醒设置:</label>
+                        <div class="col-sm-10">
+                            超时后,打车订单每隔&nbsp;<input type="text" oninput="checkIsInt(this)"
+                                                                    @if(isNotEmpty(overTime)){
+                                                                    value="${overTime.car}"
+                                                                    @}else{
+                                                                    value=""
+                                                                    @}
+                                                                    name="overtime1" id="overtime1" class="form-control newWidth" />&nbsp;分钟提醒司机一次,
+                            包裹订单每隔&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                                     @if(isNotEmpty(overTime)){
+                                                     value="${overTime.packageTime}"
+                                                     @}else{
+                                                     value=""
+                                                     @}
+                                                     name="packageTime" id="packageTime" class="form-control newWidth" />&nbsp;分钟提醒司机一次;
+                            <br/>
+                            <br/>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">预约单提醒设置:</label>
+                        <div class="col-sm-10">
+                            预约订单,在预定时间前&nbsp;<input type="text" oninput="checkIsInt(this)"
+                                                                    @if(isNotEmpty(overTime)){
+                                                                    value="${overTime.reserveTime}"
+                                                                    @}else{
+                                                                    value=""
+                                                                    @}
+                                                                    name="reserveTime" id="reserveTime" class="form-control newWidth" />&nbsp;分钟,
+                            首次提醒司机&nbsp;;然后每隔<input type="text" oninput="checkIsDouble(this)"
+                                                     @if(isNotEmpty(overTime)){
+                                                     value="${overTime.reserveNext}"
+                                                     @}else{
+                                                     value=""
+                                                     @}
+                                                     name="reserveNext" id="reserveNext" class="form-control newWidth" />&nbsp;分钟提醒司机一次;
+                            <br/>
+                            <br/>
                         </div>
                     </div>
                     <div class="form-group">
@@ -492,7 +586,7 @@
         } else {
             isTaxiCar = 1;
         }
-
+        var assessment = $("#assessment").val();
         var zc1 = $("#zc1").val().trim();
         var zc2 = $("#zc2").val().trim();
         var zc3 = $("#zc3").val().trim();
@@ -532,13 +626,25 @@
         var phone1 = $("#phone1").val().trim();
         var phone2 = $("#phone2").val().trim();
         var phone3 = $("#phone3").val().trim();
-        var assessment = $('#assessment').val().trim();
+        var kmMinute = $('#kmMinute').val().trim();
+        var km2 = $('#km2').val().trim();
+        var km = $('#km').val().trim();
+        var kmMinute2 = $('#kmMinute2').val().trim();
+        var reserveMoney = $('#reserveMoney').val().trim();
+        var overtime = $('#overtime').val().trim();
+        var overtime1 = $('#overtime1').val().trim();
+        var packageTime = $('#packageTime').val().trim();
+        var reserveTime = $('#reserveTime').val().trim();
+        var reserveNext = $('#reserveNext').val().trim();
 
         if ("" == one || "" == two || "" == three
-            || "" == zc1 || "" == zc2 || "" == zc3 || "" == zc4 || "" == zc5 || "" == zc6 || "" == zc7 || "" == zc8 || "" == zc9 || '' == zcAssignOrder || '' == zcPeople
+            || "" == zc1 || "" == zc2 || "" == zc3 || "" == zc4 || "" == zc5 || "" == zc6 || "" == zc7 || "" == zc8 || "" == zc9
+            || '' == zcAssignOrder || '' == zcPeople
             || "" == czc1 || "" == czc2 || "" == czc3 || "" == czc4 || "" == czc5 || "" == czc6 || "" == czc7 || "" == czc8 || "" == czc9 /*|| '' == czcAssignOrder || '' == czcPeople */
-            || "" == ptCancel1 || "" == ptCancel2 || "" == ptCancel3 || "" == ptCancel4 /*|| "" == ptCancel5 || "" == ptCancel6*/
-            || "" == yyCancel1 || "" == yyCancel2 || "" == yyCancel3 || "" == yyCancel4 || "" == assessment
+            || "" == ptCancel1 || "" == ptCancel2 /* || "" == ptCancel3 || "" == ptCancel4*/ /*|| "" == ptCancel5 || "" == ptCancel6*/
+            || "" == yyCancel1 || "" == yyCancel2 /* || "" == yyCancel3 || "" == yyCancel4*/
+            || "" == assessment || "" == km || "" == kmMinute|| "" == kmMinute2|| "" == reserveMoney|| "" == km2
+            || "" == overtime|| "" == overtime1|| "" == packageTime|| "" == reserveTime|| "" == reserveNext
             || "" == phone1 || "" == phone2 ) {
             Feng.info("输入框不能为空!");
             return;
@@ -560,8 +666,10 @@
             || !regDouble.test(czc4) || !regInt.test(czc5) || !regDouble.test(czc6)
             || !regDouble.test(czc7) || !regInt.test(czc8) || !regDouble.test(czc9)/* || !regDouble.test(czcAssignOrder) || !regInt.test(czcPeople)*/
 
-            || !regInt.test(ptCancel1) || !regDouble.test(ptCancel2) || !regInt.test(ptCancel3) || !regDouble.test(ptCancel4) /*|| !regInt.test(ptCancel5) || !regDouble.test(ptCancel6)*/
-            || !regInt.test(yyCancel1) || !regDouble.test(yyCancel2) || !regInt.test(yyCancel3) || !regDouble.test(yyCancel4)) {
+            || !regInt.test(ptCancel1) || !regDouble.test(ptCancel2) /*|| !regInt.test(ptCancel3) || !regDouble.test(ptCancel4)|| !regInt.test(ptCancel5) || !regDouble.test(ptCancel6)*/
+            || !regInt.test(km) || !regInt.test(km2)
+            || !regDouble.test(reserveMoney)
+            /*|| !regInt.test(yyCancel3) || !regDouble.test(yyCancel4)*/) {
             Feng.info("格式不正确!");
             return ;
         }
@@ -625,6 +733,17 @@
         ajax.set("phone2", phone2);
         ajax.set("phone3", phone3);
         ajax.set("assessment", assessment);
+
+        ajax.set("kmMinute", kmMinute);
+        ajax.set("km", km);
+        ajax.set("km2", km2);
+        ajax.set("kmMinute2", kmMinute2);
+        ajax.set("reserveMoney", reserveMoney);
+        ajax.set("overtime", overtime);
+        ajax.set("overtime1", overtime1);
+        ajax.set("packageTime", packageTime);
+        ajax.set("reserveTime", reserveTime);
+        ajax.set("reserveNext", reserveNext);
         ajax.start();
 
     }
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/static/img/-.png b/ManagementIGOTravel/guns-admin/src/main/webapp/static/img/-.png
new file mode 100644
index 0000000..5d7f955
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/static/img/-.png
Binary files differ
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/platform.js b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/platform.js
index 2b0a113..34c54e6 100644
--- a/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/platform.js
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/platform.js
@@ -22,53 +22,37 @@
     return [
         {field: 'selectItem', radio: true},
         {title: '下单时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
-        {title: '订单号', field: 'orderNumber', visible: true, align: 'center', valign: 'middle'},
+        {title: '订单号', field: 'code', visible: true, align: 'center', valign: 'middle'},
 
         {title: '司机姓名', field: 'driverName', visible: false, align: 'center', valign: 'middle'},
         {title: '司机手机号', field: 'driverPhone', visible: true, align: 'center', valign: 'middle',
         },
-        {title: '佣金金额', field: 'commission', visible: true, align: 'center', valign: 'middle',
+        {title: '佣金金额', field: 'money', visible: true, align: 'center', valign: 'middle',
             formatter: function (value, row) {
-                var commission = row.commission;
+                var money = row.money;
                 var btn = "";
-                btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: orange;" title="待审核" onfocus="TUser.tooltip()">'+commission+'</p>']
+                btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: orange;" title="待审核" onfocus="TUser.tooltip()">'+money+'</p>']
                 return btn;
             }
         },
         {title: '支付方式', field: 'payType', visible: true, align: 'center', valign: 'middle',
-            formatter: function (value, row) {
-                var btn = "";
-                if(row.payType != '' && row.payType != null) {
-                    if (row.payType == 1) {
-                        btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="手机支付" >手机支付</p>']
-                    }
-                    else if (row.payType == 2){
-                        btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="银行卡支付">银行卡支付</p>']
-                    }
-                    else if (row.payType == 3){
-                        btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="余额支付">余额支付</p>']
-                    }
-
-                }
-                return btn;
-            }
         },
         {title: '备注', field: 'remark', visible: true, align: 'center', valign: 'middle',},
         {title: '状态', field: 'paymentStatus', visible: true, align: 'center', valign: 'middle',
             formatter: function (value, row) {
-                var btn = "";
-                if(row.payType != '' && row.payType != null) {
-                    if (row.payType == 1) {
-                        btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="未结算" >未结算</p>']
-                    }
-                    else if (row.payType == 2){
-                        btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="已结算">已结算</p>']
-                    }
+                var state = row.state;
+                if (state == 1){
+                    var btn = "";
+                    btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: #68e02c;" title="待审核" onfocus="TUser.tooltip()">已结算</p>']
+                }else{
+                    var btn = "";
+                    btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: #e31452;" title="待审核" onfocus="TUser.tooltip()">未结算</p>']
                 }
                 return btn;
+
             }
         },
-        {title: '结算时间', field: 'payTime', visible: true, align: 'center', valign: 'middle',},
+        {title: '结算时间', field: 'endTime', visible: true, align: 'center', valign: 'middle',},
     ];
 };
 
@@ -207,31 +191,66 @@
         }
     }
 };
+// 首次
+TUser.getCount1 = function() {
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/platform/commission/getCount", function(data){
 
+        document.getElementById("num1").innerHTML = data.total;
+        document.getElementById("num2").innerHTML = data.balance;
+        document.getElementById("num3").innerHTML = data.unBalance;
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("time",1);
+    ajax.set("insertTime",null);
+    ajax.set("state",null);
+    ajax.start();
+}
+// 点击搜索
+TUser.getCount = function() {
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/platform/commission/getCount", function(data){
+        console.log(data);
+        console.log(data);
+        console.log(data);
+        document.getElementById("num1").innerHTML = data.total;
+        document.getElementById("num2").innerHTML = data.balance;
+        document.getElementById("num3").innerHTML = data.unBalance;
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("time",$("#time").val());
+    ajax.set("insertTime",$("#insertTime").val());
+    ajax.set("state",$("#state").val());
+    ajax.start();
+}
 /**
  * 查询用户管理列表
  */
 TUser.search = function () {
     var queryData = {};
     queryData['time'] = $("#time").val();
-    queryData['insertTime'] = $("#id").val();
+    queryData['insertTime'] = $("#insertTime").val();
     queryData['state'] = $("#state").val();
     TUser.table.refresh({query: queryData});
+    TUser.getCount();
 };
 TUser.resetSearch = function () {
-    $("#time").val("今日");
+    $("#time").val("");
     $("#insertTime").val("");
     $("#state").val("");
     TUser.search();
 };
+
 $(function () {
+    TUser.getCount1();
     var defaultColunms = TUser.initColumn();
-    var table = new BSTable(TUser.id, "/tUser/list", defaultColunms);
+    var table = new BSTable(TUser.id, "/platform/commission/list", defaultColunms);
     // 设置物理分页server(逻辑分页client)
-    table.setPaginationType("server");
+    table.setPaginationType("client");
     TUser.table = table.init();
 });
-
 
 TUser.sendAjaxRequest = function(url,type,data){
     $.ajax({
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/water.js b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/water.js
new file mode 100644
index 0000000..57d4ab6
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/water.js
@@ -0,0 +1,271 @@
+/**
+ * 用户管理管理初始化
+ */
+var TUser = {
+    id: "TUserTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 鼠标悬停提示框 class .toolTip 为无效样式,作用于个别选择器使用
+ */
+TUser.tooltip = function(){
+    $(".toolTip").tooltip();
+};
+
+/**
+ * 初始化表格的列
+ */
+TUser.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+        {title: '付款时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+        {title: '订单号', field: 'code', visible: true, align: 'center', valign: 'middle'},
+        {title: '支付方', field: 'name', visible: true, align: 'center', valign: 'middle'},
+        {title: '支付方手机号', field: 'phone', visible: true, align: 'center', valign: 'middle',
+        },
+        {title: '支付金额', field: 'money', visible: true, align: 'center', valign: 'middle',
+            formatter: function (value, row) {
+                var money = row.money;
+                var btn = "";
+                btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: orange;" title="待审核" onfocus="TUser.tooltip()">'+money+'</p>']
+                return btn;
+            }
+        },
+        {title: '支付方式', field: 'payType', visible: true, align: 'center', valign: 'middle',
+        },
+        {title: '流水项目', field: 'type', visible: true, align: 'center', valign: 'middle',},
+        {title: '备注', field: 'remark', visible: true, align: 'center', valign: 'middle',
+        },
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+TUser.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        TUser.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 修改余额
+ */
+TUser.updateBalance = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '修改余额',
+            area: ['800px', '420px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/tUser_updateBalance/'+ TUser.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+/**
+ * 修改密码
+ */
+TUser.updatePassword = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '修改密码',
+            area: ['800px', '420px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/tUser_updatePassword/'+ TUser.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+/**
+ * 查看分享信息
+ */
+TUser.inviteInfo=function(){
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '邀请信息',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/inviteInfo/'+ TUser.seItem.id
+        });
+        this.layerIndex = index;
+
+    }
+};
+
+/**
+ * 打开查看用户管理详情
+ */
+TUser.userDetail = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '用户详情',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/tUser_userDetail/' + TUser.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 冻结用户
+ */
+TUser.freezeUser = function () {
+    if (this.check()) {
+        var nickname = TUser.seItem.nickName;
+        if (nickname == "" || nickname == null || nickname == undefined) {
+            nickname = "该用户";
+        } else {
+            nickname = "【" + nickname + "】";
+        }
+        if (TUser.seItem.state != 1) {
+            swal("冻结失败", "【正常】状态下才能执行此操作", "warning");
+            return;
+        } else {
+            var index = layer.open({
+                type: 2,
+                title: '冻结用户',
+                area: ['800px', '420px'], //宽高
+                fix: false, //不固定
+                maxmin: true,
+                content: Feng.ctxPath + '/tUser/tUser_optUser/' + TUser.seItem.id +"/"+1
+            });
+            this.layerIndex = index;
+        }
+    }
+};
+/**
+ * 解冻用户
+ */
+TUser.trawUser = function () {
+    if (this.check()) {
+        var nickname = TUser.seItem.nickName;
+        if (nickname == "" || nickname == null || nickname == undefined) {
+            nickname = "该用户";
+        } else {
+            nickname = "【" + nickname + "】";
+        }
+        if (TUser.seItem.state != 2) {
+            swal("启用失败", "【冻结】状态下才能执行此操作", "warning");
+            return;
+        } else {
+            var index = layer.open({
+                type: 2,
+                title: '解冻用户',
+                area: ['800px', '420px'], //宽高
+                fix: false, //不固定
+                maxmin: true,
+                content: Feng.ctxPath + '/tUser/tUser_optUser/' + TUser.seItem.id +"/"+2
+            });
+            this.layerIndex = index;
+        }
+    }
+};
+// 首次
+TUser.getCount1 = function() {
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/platform/water/getCount", function(data){
+
+        document.getElementById("num1").innerHTML = data.total;
+        document.getElementById("num2").innerHTML = data.balance;
+        document.getElementById("num3").innerHTML = data.unBalance;
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("time",1);
+    ajax.set("insertTime",null);
+    ajax.set("state",null);
+    ajax.start();
+}
+// 点击搜索
+TUser.getCount = function() {
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/platform/water/getCount", function(data){
+
+        document.getElementById("num1").innerHTML = data.total;
+        document.getElementById("num2").innerHTML = data.userOrder;
+        document.getElementById("num3").innerHTML = data.userCharge;
+        document.getElementById("num4").innerHTML = data.balance;
+        document.getElementById("num5").innerHTML = data.driverWithdrawal;
+        document.getElementById("num6").innerHTML = data.userWithdrawal;
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("time",$("#time").val());
+    ajax.set("insertTime",$("#insertTime").val());
+    ajax.set("type",$("#type").val());
+    ajax.set("payType",$("#payType").val());
+    ajax.start();
+}
+/**
+ * 查询用户管理列表
+ */
+TUser.search = function () {
+    var queryData = {};
+    queryData['time'] = $("#time").val();
+    queryData['insertTime'] = $("#insertTime").val();
+    queryData['type'] = $("#type").val();
+    queryData['payType'] = $("#payType").val();
+    TUser.table.refresh({query: queryData});
+    TUser.getCount();
+};
+TUser.resetSearch = function () {
+    $("#time").val("");
+    $("#insertTime").val("");
+    $("#state").val("");
+    TUser.search();
+};
+
+$(function () {
+    TUser.getCount1();
+    var defaultColunms = TUser.initColumn();
+    var table = new BSTable(TUser.id, "/platform/water/list", defaultColunms);
+    // 设置物理分页server(逻辑分页client)
+    table.setPaginationType("client");
+    TUser.table = table.init();
+});
+
+TUser.sendAjaxRequest = function(url,type,data){
+    $.ajax({
+        url : url,
+        type : type,
+        data : data,
+        success : function(result) {
+            if(result.code==500) {
+                Feng.info(result.message);
+            }else {
+                Feng.success("导入成功!");
+            }
+            TUser.table.refresh();
+        },
+        error : function() {
+            Feng.error("excel上传失败!");
+        },
+        cache : false,
+        contentType : false,
+        processData : false
+    });
+};
+
+var agreement;
+$(function(){
+    agreement = new agreement();
+    agreement.init();
+});
+
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/subsidy/grant.js b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/subsidy/grant.js
new file mode 100644
index 0000000..4ff9f88
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/subsidy/grant.js
@@ -0,0 +1,258 @@
+/**
+ * 用户管理管理初始化
+ */
+var TUser = {
+    id: "TUserTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 鼠标悬停提示框 class .toolTip 为无效样式,作用于个别选择器使用
+ */
+TUser.tooltip = function(){
+    $(".toolTip").tooltip();
+};
+
+/**
+ * 初始化表格的列
+ */
+TUser.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+        {title: '领取时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+        {title: '补贴类型', field: 'type', visible: true, align: 'center', valign: 'middle'},
+        {title: '金额', field: 'amount', visible: true, align: 'center', valign: 'middle'},
+        {title: '领取用户id', field: 'name', visible: true, align: 'center', valign: 'middle',},
+        {title: '备注', field: 'remark', visible: true, align: 'center', valign: 'middle',},
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+TUser.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        TUser.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 修改余额
+ */
+TUser.updateBalance = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '修改余额',
+            area: ['800px', '420px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/tUser_updateBalance/'+ TUser.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+/**
+ * 修改密码
+ */
+TUser.updatePassword = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '修改密码',
+            area: ['800px', '420px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/tUser_updatePassword/'+ TUser.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+/**
+ * 查看分享信息
+ */
+TUser.inviteInfo=function(){
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '邀请信息',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/inviteInfo/'+ TUser.seItem.id
+        });
+        this.layerIndex = index;
+
+    }
+};
+
+/**
+ * 打开查看用户管理详情
+ */
+TUser.userDetail = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '用户详情',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/tUser_userDetail/' + TUser.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 冻结用户
+ */
+TUser.freezeUser = function () {
+    if (this.check()) {
+        var nickname = TUser.seItem.nickName;
+        if (nickname == "" || nickname == null || nickname == undefined) {
+            nickname = "该用户";
+        } else {
+            nickname = "【" + nickname + "】";
+        }
+        if (TUser.seItem.state != 1) {
+            swal("冻结失败", "【正常】状态下才能执行此操作", "warning");
+            return;
+        } else {
+            var index = layer.open({
+                type: 2,
+                title: '冻结用户',
+                area: ['800px', '420px'], //宽高
+                fix: false, //不固定
+                maxmin: true,
+                content: Feng.ctxPath + '/tUser/tUser_optUser/' + TUser.seItem.id +"/"+1
+            });
+            this.layerIndex = index;
+        }
+    }
+};
+/**
+ * 解冻用户
+ */
+TUser.trawUser = function () {
+    if (this.check()) {
+        var nickname = TUser.seItem.nickName;
+        if (nickname == "" || nickname == null || nickname == undefined) {
+            nickname = "该用户";
+        } else {
+            nickname = "【" + nickname + "】";
+        }
+        if (TUser.seItem.state != 2) {
+            swal("启用失败", "【冻结】状态下才能执行此操作", "warning");
+            return;
+        } else {
+            var index = layer.open({
+                type: 2,
+                title: '解冻用户',
+                area: ['800px', '420px'], //宽高
+                fix: false, //不固定
+                maxmin: true,
+                content: Feng.ctxPath + '/tUser/tUser_optUser/' + TUser.seItem.id +"/"+2
+            });
+            this.layerIndex = index;
+        }
+    }
+};
+// 首次
+TUser.getCount1 = function() {
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/subsidy/grant/getCount", function(data){
+
+        document.getElementById("num1").innerHTML = data.total;
+        document.getElementById("num2").innerHTML = data.discount;
+        document.getElementById("num3").innerHTML = data.redPackage;
+        document.getElementById("num4").innerHTML = data.coupon;
+        document.getElementById("num5").innerHTML = data.driver;
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("time",1);
+    ajax.set("insertTime",null);
+    ajax.set("type",null);
+    ajax.start();
+}
+// 点击搜索
+TUser.getCount = function() {
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/subsidy/grant/getCount", function(data){
+
+        document.getElementById("num1").innerHTML = data.total;
+        document.getElementById("num2").innerHTML = data.discount;
+        document.getElementById("num3").innerHTML = data.redPackage;
+        document.getElementById("num4").innerHTML = data.coupon;
+        document.getElementById("num5").innerHTML = data.driver;
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("time",$("#time").val());
+    ajax.set("insertTime",$("#insertTime").val());
+    ajax.set("type",$("#type").val());
+    ajax.start();
+}
+/**
+ * 查询用户管理列表
+ */
+TUser.search = function () {
+    var queryData = {};
+    queryData['time'] = $("#time").val();
+    queryData['insertTime'] = $("#insertTime").val();
+    queryData['type'] = $("#type").val();
+    TUser.table.refresh({query: queryData});
+    TUser.getCount();
+};
+TUser.resetSearch = function () {
+    $("#time").val("");
+    $("#insertTime").val("");
+    $("#type").val("");
+    TUser.search();
+    TUser.getCount1();
+};
+
+$(function () {
+    TUser.getCount1();
+    var defaultColunms = TUser.initColumn();
+    var table = new BSTable(TUser.id, "/subsidy/grant/list", defaultColunms);
+    // 设置物理分页server(逻辑分页client)
+    table.setPaginationType("client");
+    TUser.table = table.init();
+});
+
+TUser.sendAjaxRequest = function(url,type,data){
+    $.ajax({
+        url : url,
+        type : type,
+        data : data,
+        success : function(result) {
+            if(result.code==500) {
+                Feng.info(result.message);
+            }else {
+                Feng.success("导入成功!");
+            }
+            TUser.table.refresh();
+        },
+        error : function() {
+            Feng.error("excel上传失败!");
+        },
+        cache : false,
+        contentType : false,
+        processData : false
+    });
+};
+
+var agreement;
+$(function(){
+    agreement = new agreement();
+    agreement.init();
+});
+
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/subsidy/use.js b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/subsidy/use.js
new file mode 100644
index 0000000..d6537ea
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/subsidy/use.js
@@ -0,0 +1,256 @@
+/**
+ * 用户管理管理初始化
+ */
+var TUser = {
+    id: "TUserTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 鼠标悬停提示框 class .toolTip 为无效样式,作用于个别选择器使用
+ */
+TUser.tooltip = function(){
+    $(".toolTip").tooltip();
+};
+
+/**
+ * 初始化表格的列
+ */
+TUser.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+        {title: '领取时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+        {title: '补贴类型', field: 'type', visible: true, align: 'center', valign: 'middle'},
+        {title: '金额', field: 'amount', visible: false, align: 'center', valign: 'middle'},
+        {title: '领取用户id', field: 'name', visible: true, align: 'center', valign: 'middle',},
+        {title: '备注', field: 'remark', visible: true, align: 'center', valign: 'middle',},
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+TUser.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        TUser.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 修改余额
+ */
+TUser.updateBalance = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '修改余额',
+            area: ['800px', '420px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/tUser_updateBalance/'+ TUser.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+/**
+ * 修改密码
+ */
+TUser.updatePassword = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '修改密码',
+            area: ['800px', '420px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/tUser_updatePassword/'+ TUser.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+/**
+ * 查看分享信息
+ */
+TUser.inviteInfo=function(){
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '邀请信息',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/inviteInfo/'+ TUser.seItem.id
+        });
+        this.layerIndex = index;
+
+    }
+};
+
+/**
+ * 打开查看用户管理详情
+ */
+TUser.userDetail = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '用户详情',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tUser/tUser_userDetail/' + TUser.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 冻结用户
+ */
+TUser.freezeUser = function () {
+    if (this.check()) {
+        var nickname = TUser.seItem.nickName;
+        if (nickname == "" || nickname == null || nickname == undefined) {
+            nickname = "该用户";
+        } else {
+            nickname = "【" + nickname + "】";
+        }
+        if (TUser.seItem.state != 1) {
+            swal("冻结失败", "【正常】状态下才能执行此操作", "warning");
+            return;
+        } else {
+            var index = layer.open({
+                type: 2,
+                title: '冻结用户',
+                area: ['800px', '420px'], //宽高
+                fix: false, //不固定
+                maxmin: true,
+                content: Feng.ctxPath + '/tUser/tUser_optUser/' + TUser.seItem.id +"/"+1
+            });
+            this.layerIndex = index;
+        }
+    }
+};
+/**
+ * 解冻用户
+ */
+TUser.trawUser = function () {
+    if (this.check()) {
+        var nickname = TUser.seItem.nickName;
+        if (nickname == "" || nickname == null || nickname == undefined) {
+            nickname = "该用户";
+        } else {
+            nickname = "【" + nickname + "】";
+        }
+        if (TUser.seItem.state != 2) {
+            swal("启用失败", "【冻结】状态下才能执行此操作", "warning");
+            return;
+        } else {
+            var index = layer.open({
+                type: 2,
+                title: '解冻用户',
+                area: ['800px', '420px'], //宽高
+                fix: false, //不固定
+                maxmin: true,
+                content: Feng.ctxPath + '/tUser/tUser_optUser/' + TUser.seItem.id +"/"+2
+            });
+            this.layerIndex = index;
+        }
+    }
+};
+// 首次
+TUser.getCount1 = function() {
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/subsidy/use/getCount", function(data){
+
+        document.getElementById("num1").innerHTML = data.total;
+        document.getElementById("num2").innerHTML = data.balance;
+        document.getElementById("num3").innerHTML = data.unBalance;
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("time",1);
+    ajax.set("insertTime",null);
+    ajax.set("type",null);
+    ajax.start();
+}
+// 点击搜索
+TUser.getCount = function() {
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/subsidy/use/getCount", function(data){
+
+        document.getElementById("num1").innerHTML = data.total;
+        document.getElementById("num2").innerHTML = data.userOrder;
+        document.getElementById("num3").innerHTML = data.userCharge;
+        document.getElementById("num4").innerHTML = data.balance;
+        document.getElementById("num5").innerHTML = data.driverWithdrawal;
+        document.getElementById("num6").innerHTML = data.userWithdrawal;
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("time",$("#time").val());
+    ajax.set("insertTime",$("#insertTime").val());
+    ajax.set("type",$("#type").val());
+    ajax.start();
+}
+/**
+ * 查询用户管理列表
+ */
+TUser.search = function () {
+    var queryData = {};
+    queryData['time'] = $("#time").val();
+    queryData['insertTime'] = $("#insertTime").val();
+    queryData['type'] = $("#type").val();
+    TUser.table.refresh({query: queryData});
+    TUser.getCount();
+};
+TUser.resetSearch = function () {
+    $("#time").val("");
+    $("#insertTime").val("");
+    $("#type").val("");
+    TUser.search();
+};
+
+$(function () {
+    TUser.getCount1();
+    var defaultColunms = TUser.initColumn();
+    var table = new BSTable(TUser.id, "/subsidy/use/list", defaultColunms);
+    // 设置物理分页server(逻辑分页client)
+    table.setPaginationType("client");
+    TUser.table = table.init();
+});
+
+TUser.sendAjaxRequest = function(url,type,data){
+    $.ajax({
+        url : url,
+        type : type,
+        data : data,
+        success : function(result) {
+            if(result.code==500) {
+                Feng.info(result.message);
+            }else {
+                Feng.success("导入成功!");
+            }
+            TUser.table.refresh();
+        },
+        error : function() {
+            Feng.error("excel上传失败!");
+        },
+        cache : false,
+        contentType : false,
+        processData : false
+    });
+};
+
+var agreement;
+$(function(){
+    agreement = new agreement();
+    agreement.init();
+});
+
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tSysReformist/tRedSet.js b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tSysReformist/tRedSet.js
new file mode 100644
index 0000000..a5c4f0f
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tSysReformist/tRedSet.js
@@ -0,0 +1,125 @@
+/**
+ * 跨城站点管理管理初始化
+ */
+var TSite = {
+    id: "TSiteTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TSite.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+        {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '修改时间', field: 'updateTime', visible: true, align: 'center', valign: 'middle',width:'20%',
+        },
+        {title: '操作人', field: 'handle', visible: true, align: 'center', valign: 'middle',
+
+        },
+        {title: '红包可抵扣比例', field: 'proportion', visible: true, align: 'center', valign: 'middle',
+            formatter: function (value, row) {
+                var btn = "";
+                if(row.proportion != '' && row.proportion != null) {
+                    var time = row.proportion;
+                    btn = time+"%"
+                }
+                return btn;
+            }
+        },
+        {title: '生效时间', field: 'startTime', visible: true, align: 'center', valign: 'middle',},
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+TSite.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        TSite.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 点击添加跨城站点管理
+ */
+TSite.addRedSet = function () {
+    var index = layer.open({
+        type: 2,
+        title: '添加红包支付设置',
+        area: ['100%', '100%'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/tSysReformist/redSet/addHtml'
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 打开查看跨城站点管理详情
+ */
+TSite.update = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '编辑跨城站点',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tSysReformist/redSet/updateHtml/' + TSite.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+TSite.delete = function () {
+    if (this.check()) {
+        swal({
+            title: "您是否确认删除" + "?",
+            type: "warning",
+            showCancelButton: true,
+            confirmButtonColor: "#DD6B55",
+            confirmButtonText: "删除",
+            closeOnConfirm: true
+        }, function () {
+            var ajax = new $ax(Feng.ctxPath + "/tSysReformist/redSet/delete", function (data) {
+                Feng.success("删除成功")
+                swal("删除成功");
+                TSite.table.refresh();
+            }, function (data) {
+                swal("删除失败", data.responseJSON.message+"!", "warning");
+            });
+            ajax.set("id",TSite.seItem.id);
+            ajax.start();
+        });
+    }
+};
+
+
+/**
+ * 查询跨城站点管理列表
+ */
+TSite.search = function () {
+    var queryData = {};
+
+    TSite.table.refresh({query: queryData});
+};
+
+TSite.resetSearch = function () {
+
+    TSite.search();
+};
+
+$(function () {
+    var defaultColunms = TSite.initColumn();
+    var table = new BSTable(TSite.id, "/tSysReformist/redSet/list", defaultColunms);
+    table.setPaginationType("server");
+    TSite.table = table.init();
+});
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tSysReformist/tRedSetInfo.js b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tSysReformist/tRedSetInfo.js
new file mode 100644
index 0000000..f8a962a
--- /dev/null
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tSysReformist/tRedSetInfo.js
@@ -0,0 +1,66 @@
+/**
+ * 跨城站点管理管理初始化
+ */
+var TSiteInfo = {
+
+}
+TSiteInfo.close = function() {
+    parent.layer.close(window.parent.TSite.layerIndex);
+}
+
+TSiteInfo.addSubmit = function() {
+    var proportion = $("#proportion").val();
+    if ("" == proportion){
+        Feng.info("请输入可红包抵扣比例");
+        return;
+    }
+    var startTime = $("#startTime").val();
+    if ("" == startTime){
+        Feng.info("请选择生效时间");
+        return;
+    }
+    console.log("proportion:"+proportion)
+    console.log("startTime:"+startTime)
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/tSysReformist/redSet/add", function(data){
+        Feng.success("添加成功!");
+        window.parent.TSite.table.refresh();
+        TSiteInfo.close();
+    },function(data){
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("proportion",proportion);
+    ajax.set("startTime",startTime);
+    ajax.start();
+}
+TSiteInfo.updateSubmit = function() {
+    var proportion = $("#proportion").val();
+    if ("" == proportion){
+        Feng.info("请输入可红包抵扣比例");
+        return;
+    }
+    var startTime = $("#startTime").val();
+    var id = $("#id").val();
+    if ("" == startTime){
+        Feng.info("请选择生效时间");
+        return;
+    }
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/tSysReformist/redSet/update", function(data){
+        Feng.success("修改成功!");
+        window.parent.TSite.table.refresh();
+        TSiteInfo.close();
+    },function(data){
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("proportion",proportion);
+    ajax.set("id",id);
+    ajax.set("startTime",startTime);
+    ajax.start();
+}
+
+
+
+
+
+

--
Gitblit v1.7.1