From 7f3ba0b58c0dc60d18bd25edfab97877c801c0ab Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 14 十一月 2024 17:09:58 +0800
Subject: [PATCH] 2.0bug修改

---
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TSubsidyController.java |  749 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 524 insertions(+), 225 deletions(-)

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
index ac538d1..996c78a 100644
--- 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
@@ -1,5 +1,7 @@
 package com.stylefeng.guns.modular.system.controller;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
@@ -15,16 +17,20 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.text.SimpleDateFormat;
 import java.time.*;
+import java.time.format.DateTimeFormatter;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 控制器
@@ -86,6 +92,17 @@
     private ISysCouponRecordService sysCouponRecordService;
     @Autowired
     private IUserActivityDiscount1Service userActivityDiscount1Service;
+
+    public static void main(String[] args) {
+        String temp = "[{\"money\":14.46,\"id\":91},{\"money\":1,\"id\":90}]";
+        JSONArray objects = JSONArray.parseArray(temp);
+        BigDecimal temp1 = new BigDecimal(BigInteger.ZERO);
+        for (int i = 0; i < objects.size(); i++) {
+            String string = objects.getJSONObject(i).getString("money");
+            temp1 = temp1.add(new BigDecimal(string));
+        }
+        System.err.println(temp1);
+    }
     /**
      * 使用补贴统计
      */
@@ -167,49 +184,121 @@
         // 司机消费
         List<BalanceUsageRecord> balanceUsageRecords = new ArrayList<>();
         // 司机提现
-        List<BalanceUsageRecord> driverWithdrawal = new ArrayList<>();
-        // 司机提现wrapper
+        List<TPubWithdrawal> driverWithdrawal = new ArrayList<>();
+
         Wrapper<TPubWithdrawal> driverWrapper = new EntityWrapper<TPubWithdrawal>()
-                .eq("state", 2)
-                .eq("userType", 2)
-                .between("handleTime", start, end);
+                ;
         // 专车wrapper
         Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
-                .isNotNull("activityId")
-                .isNotNull("discountMoney")
-                .between("insertTime", start, end);
+                ;
         // 小件物流wrapper
         Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
-                .isNotNull("activityId")
-                .isNotNull("discountMoney")
-                .between("insertTime", start, end);
+                ;
         // 已使用优惠券记录wrapper
         Wrapper<TOrderPrivateCar> between2 = new EntityWrapper<TOrderPrivateCar>()
-                .isNotNull("couponId")
-                .isNotNull("couponMoney")
-                .between("insertTime", start, end);
+                ;
         Wrapper<TOrderLogistics> between22 = new EntityWrapper<TOrderLogistics>()
-                .isNotNull("couponId")
-                .isNotNull("couponMoney")
-                .between("insertTime", start, end);
+                ;
         // 已使用红包记录wrapper
         Wrapper<TOrderPrivateCar> between3 = new EntityWrapper<TOrderPrivateCar>()
-                .isNotNull("redPacketId")
-                .isNotNull("redPacketMoney")
-                .between("insertTime", start, end);
+                ;
         Wrapper<TOrderLogistics> between33 = new EntityWrapper<TOrderLogistics>()
-                .isNotNull("redPacketId")
-                .isNotNull("redPacketMoney")
-                .between("insertTime", start, end);
+                ;
         // 司机已消费金额
         Wrapper<BalanceUsageRecord> between4 = new EntityWrapper<BalanceUsageRecord>()
-                .ne("purpose", 6)
-                .between("createTime", start, end);
-        // 司机提现
-        Wrapper<BalanceUsageRecord> between44 = new EntityWrapper<BalanceUsageRecord>()
-                .eq("purpose", 6)
-                .between("createTime", start, end);
+                ;
+        if (time == 5 && !StringUtils.hasLength(insertTime)){
+            // 专车wrapper
+            between = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("activityId")
+                    .isNotNull("discountMoney")
+                    ;
 
+            // 小件物流wrapper
+            between1 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("activityId")
+                    .isNotNull("discountMoney")
+                    ;
+
+            // 已使用优惠券记录wrapper
+           between2 = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("couponId")
+                    .isNotNull("couponMoney")
+                 ;
+
+            between22 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("couponId")
+                    .isNotNull("couponMoney")
+                 ;
+
+            // 已使用红包记录wrapper
+            between3 = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("redPacketId")
+                    .isNotNull("redPacketMoney")
+              ;
+
+            between33 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("redPacketId")
+                    .isNotNull("redPacketMoney")
+                 ;
+
+            // 司机已消费金额
+            between4 = new EntityWrapper<BalanceUsageRecord>()
+                    .eq("type",1)
+                    .ne("purpose", 6)
+          ;
+
+            // 司机提现
+            driverWrapper = new EntityWrapper<TPubWithdrawal>()
+                    .eq("state", 2)
+                    .eq("type",1)
+                    .eq("userType", 2)
+                    ;
+
+            ;
+        }else{
+            driverWrapper = new EntityWrapper<TPubWithdrawal>()
+                    .eq("state", 2)
+                    .eq("type",1)
+                    .eq("userType", 2)
+                    .between("insertTime", start, end);
+            // 专车wrapper
+            between = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("activityId")
+                    .isNotNull("discountMoney")
+                    .between("insertTime", start, end);
+            // 小件物流wrapper
+             between1 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("activityId")
+                    .isNotNull("discountMoney")
+                    .between("insertTime", start, end);
+            // 已使用优惠券记录wrapper
+            between2 = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("couponId")
+                    .isNotNull("couponMoney")
+                    .between("insertTime", start, end);
+            between22 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("couponId")
+                    .isNotNull("couponMoney")
+                    .between("insertTime", start, end);
+            // 已使用红包记录wrapper
+            between3 = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("redPacketId")
+                    .isNotNull("redPacketMoney")
+                    .between("insertTime", start, end);
+            between33 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("redPacketId")
+                    .isNotNull("redPacketMoney")
+                    .between("insertTime", start, end);
+            // 司机已消费金额
+            between4 = new EntityWrapper<BalanceUsageRecord>()
+                    .ne("purpose", 6)
+                    .eq("type",1)
+                    .between("createTime", start, end);
+
+
+        }
+        // 司机提现wrapper
         if (type!=null){
             switch (type){
                 case 1:
@@ -225,8 +314,7 @@
                 case 3:
                     // 司机消费记录
                     balanceUsageRecords = balanceUsageRecordService.selectList(between4);
-
-                    driverWithdrawal = balanceUsageRecordService.selectList(between44);
+                    driverWithdrawal = pubWithdrawalService.selectList(driverWrapper);
                     break;
                 case 4:
                     // 专车订单
@@ -249,7 +337,7 @@
             // 消费
             balanceUsageRecords = balanceUsageRecordService.selectList(between4);
             // 提现
-            driverWithdrawal = balanceUsageRecordService.selectList(between44);
+            driverWithdrawal = pubWithdrawalService.selectList(driverWrapper);
         }
 
         // 已发放补贴总额
@@ -266,6 +354,14 @@
         BigDecimal driverConsume = new BigDecimal("0");
         // 司机已提现
         BigDecimal driverWithdrawal1 = new BigDecimal("0");
+        // 一次性查询所有用户信息
+        Map<Integer, TUser> userMap = appUserService.selectList(new EntityWrapper<TUser>())
+                .stream()
+                .collect(Collectors.toMap(TUser::getId, user -> user));
+        Map<Integer, TDriver> driverMap = driverService.selectList(new EntityWrapper<TDriver>())
+                .stream()
+                .collect(Collectors.toMap(TDriver::getId, user -> user));
+
         // 查询已使用折扣总额
         for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
             discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
@@ -273,12 +369,12 @@
             grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
             grantVO.setType("折扣");
             grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
-            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
-            if (tUser!=null){
+            TUser tUser = userMap.get(tOrderPrivateCar.getUserId());
+            if (tUser != null) {
                 grantVO.setName(tUser.getNickName());
             }
             grantVO.setRemark("订单号:"+tOrderPrivateCar.getOrderNum());
-
+            res.add(grantVO);
         }
         for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
             discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
@@ -286,64 +382,77 @@
             grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
             grantVO.setType("折扣");
             grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
-            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
-            if (tUser!=null){
+            TUser tUser = userMap.get(tOrderPrivateCar.getUserId());
+            if (tUser != null) {
                 grantVO.setName(tUser.getNickName());
             }
             grantVO.setRemark("订单号:"+tOrderPrivateCar.getOrderNum());
+            res.add(grantVO);
         }
-        // 查询已领取红包总额
+        // 查询已使用红包总额
         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){
+            if (userRedPacketRecord.getRedPacketMoney()==null){
+                continue;
+            }
+            if (userRedPacketRecord.getRedPacketMoney().compareTo(new BigDecimal("0"))==0){
+                continue;
+            }
+            grantVO.setAmount(userRedPacketRecord.getRedPacketMoney().toString());
+            TUser tUser = userMap.get(userRedPacketRecord.getUserId());
+            if (tUser != null) {
                 grantVO.setName(tUser.getNickName());
             }
             grantVO.setRemark("订单号:"+userRedPacketRecord.getOrderNum());
             res.add(grantVO);
-            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getPayMoney().toString()));
+            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getRedPacketMoney().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){
+            if (userRedPacketRecord.getRedPacketMoney()==null){
+                continue;
+            }
+            if (userRedPacketRecord.getRedPacketMoney().compareTo(new BigDecimal("0"))==0){
+                continue;
+            }
+            grantVO.setAmount(userRedPacketRecord.getRedPacketMoney().toString());
+            TUser tUser = userMap.get(userRedPacketRecord.getUserId());
+            if (tUser != null) {
                 grantVO.setName(tUser.getNickName());
             }
             grantVO.setRemark("订单号:"+userRedPacketRecord.getOrderNum());
             res.add(grantVO);
-            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getPayMoney().toString()));
+            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getRedPacketMoney().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.setAmount(userCouponRecord.getCouponMoney().toString());
+            TUser tUser = userMap.get(userCouponRecord.getUserId());
+            if (tUser != null) {
                 grantVO.setName(tUser.getNickName());
             }
             grantVO.setRemark("订单号:"+userCouponRecord.getOrderNum());
-            coupon = coupon.add(new BigDecimal(userCouponRecord.getPayMoney().toString()));
+            coupon = coupon.add(new BigDecimal(userCouponRecord.getCouponMoney().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());
+            grantVO.setAmount(userCouponRecord.getCouponMoney().toString());
+            TUser tUser = userMap.get(userCouponRecord.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
             grantVO.setRemark("订单号:"+userCouponRecord.getOrderNum());
-            coupon = coupon.add(new BigDecimal(userCouponRecord.getPayMoney().toString()));
+            coupon = coupon.add(new BigDecimal(userCouponRecord.getCouponMoney().toString()));
             res.add(grantVO);
         }
         // 司机消费奖励
@@ -352,7 +461,7 @@
             grantVO.setInsertTime(format.format(balanceUsageRecord.getCreateTime()));
             grantVO.setType("司机奖励");
             grantVO.setAmount(balanceUsageRecord.getMoney().toString());
-            TDriver tUser = driverService.selectById(balanceUsageRecord.getDriverId());
+            TDriver tUser = driverMap.get(balanceUsageRecord.getDriverId());
             if (tUser!=null){
                 grantVO.setName(tUser.getFirstName()+tUser.getLastName());
             }
@@ -382,30 +491,36 @@
             res.add(grantVO);
         }
         // 司机提现
-        for (BalanceUsageRecord balanceUsageRecord : driverWithdrawal) {
+        for (TPubWithdrawal balanceUsageRecord : driverWithdrawal) {
             GrantVO grantVO = new GrantVO();
-            grantVO.setInsertTime(format.format(balanceUsageRecord.getCreateTime()));
+            grantVO.setInsertTime(format.format(balanceUsageRecord.getInsertTime()));
             grantVO.setType("司机奖励");
             grantVO.setAmount(balanceUsageRecord.getMoney().toString());
-            TDriver tUser = driverService.selectById(balanceUsageRecord.getDriverId());
+
+            TDriver tUser = driverMap.get(balanceUsageRecord.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getFirstName()+tUser.getLastName());
             }
-            switch (balanceUsageRecord.getPurpose()){
-                case 6:
-                    grantVO.setRemark("司机提现");
-                    break;
-            }
+            grantVO.setRemark("司机提现");
             driverWithdrawal1 = driverWithdrawal1.add(new BigDecimal(balanceUsageRecord.getMoney().toString()));
             res.add(grantVO);
         }
+
 
         // 总额
         total = total.add(redPackage).add(coupon).add(discount).add(driverConsume).add(driverWithdrawal1);
         // 已使用司机奖励合计
         driver = driverConsume.add(driverWithdrawal1);
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        // 对集合进行排序
+        res.sort((a, b) -> {
+            LocalDateTime timeA = LocalDateTime.parse(a.getInsertTime(), formatter);
+            LocalDateTime timeB = LocalDateTime.parse(b.getInsertTime(), formatter);
+            return timeA.compareTo(timeB);
+        });
         return res;
     }
+
     @RequestMapping(value = "/use/getCount")
     @ResponseBody
     public Object getCount1(Integer time,String insertTime,Integer type) {
@@ -484,61 +599,128 @@
         // 司机消费
         List<BalanceUsageRecord> balanceUsageRecords = new ArrayList<>();
         // 司机提现
-        List<BalanceUsageRecord> driverWithdrawal = new ArrayList<>();
-        // 司机提现wrapper
+        List<TPubWithdrawal> driverWithdrawal = new ArrayList<>();
+
         Wrapper<TPubWithdrawal> driverWrapper = new EntityWrapper<TPubWithdrawal>()
-                .eq("state", 2)
-                .eq("userType", 2)
-                .between("handleTime", start, end);
+                ;
         // 专车wrapper
         Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
-                .isNotNull("activityId")
-                .isNotNull("discountMoney")
-                .between("insertTime", start, end)
-
                 ;
         // 小件物流wrapper
         Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
-                .isNotNull("activityId")
-                .isNotNull("discountMoney")
-                .between("insertTime", start, end)
                 ;
         // 已使用优惠券记录wrapper
         Wrapper<TOrderPrivateCar> between2 = new EntityWrapper<TOrderPrivateCar>()
-                .isNotNull("couponId")
-                .isNotNull("couponMoney")
-                .between("insertTime", start, end)
                 ;
         Wrapper<TOrderLogistics> between22 = new EntityWrapper<TOrderLogistics>()
-                .isNotNull("couponId")
-                .isNotNull("couponMoney")
-                .between("insertTime", start, end)
-
-
                 ;
         // 已使用红包记录wrapper
         Wrapper<TOrderPrivateCar> between3 = new EntityWrapper<TOrderPrivateCar>()
-                .isNotNull("redPacketId")
-                .isNotNull("redPacketMoney")
-                .between("insertTime", start, end)
-
                 ;
         Wrapper<TOrderLogistics> between33 = new EntityWrapper<TOrderLogistics>()
-                .isNotNull("redPacketId")
-                .isNotNull("redPacketMoney")
-                .between("insertTime", start, end)
-
-
                 ;
         // 司机已消费金额
         Wrapper<BalanceUsageRecord> between4 = new EntityWrapper<BalanceUsageRecord>()
-                .ne("purpose", 6)
-                .between("createTime", start, end);
-        // 司机提现
-        Wrapper<BalanceUsageRecord> between44 = new EntityWrapper<BalanceUsageRecord>()
-                .eq("purpose", 6)
-                .between("createTime", start, end);
+                ;
+        if (time == 5 && !StringUtils.hasLength(insertTime)){
+            // 专车wrapper
+            between = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("activityId")
+                    .isNotNull("discountMoney")
+//                    .between("insertTime", start, end)
+            ;
 
+            // 小件物流wrapper
+            between1 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("activityId")
+                    .isNotNull("discountMoney")
+//                    .between("insertTime", start, end)
+            ;
+
+            // 已使用优惠券记录wrapper
+            between2 = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("couponId")
+                    .isNotNull("couponMoney")
+//                    .between("insertTime", start, end)
+            ;
+
+            between22 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("couponId")
+                    .isNotNull("couponMoney")
+//                    .between("insertTime", start, end)
+            ;
+
+            // 已使用红包记录wrapper
+            between3 = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("redPacketId")
+                    .isNotNull("redPacketMoney")
+//                    .between("insertTime", start, end)
+            ;
+
+            between33 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("redPacketId")
+                    .isNotNull("redPacketMoney")
+//                    .between("insertTime", start, end)
+            ;
+
+            // 司机已消费金额
+            between4 = new EntityWrapper<BalanceUsageRecord>()
+                    .eq("type",1)
+                    .ne("purpose", 6)
+//                    .between("createTime", start, end)
+            ;
+
+            // 司机提现
+            driverWrapper = new EntityWrapper<TPubWithdrawal>()
+                    .eq("state", 2)
+                    .eq("type",1)
+                    .eq("userType", 2)
+//                    .between("insertTime", start, end)
+            ;
+
+        }else{
+            driverWrapper = new EntityWrapper<TPubWithdrawal>()
+                    .eq("state", 2)
+                    .eq("type",1)
+                    .eq("userType", 2)
+                    .between("insertTime", start, end);
+            // 专车wrapper
+            between = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("activityId")
+                    .isNotNull("discountMoney")
+                    .between("insertTime", start, end);
+            // 小件物流wrapper
+            between1 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("activityId")
+                    .isNotNull("discountMoney")
+                    .between("insertTime", start, end);
+            // 已使用优惠券记录wrapper
+            between2 = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("couponId")
+                    .isNotNull("couponMoney")
+                    .between("insertTime", start, end);
+            between22 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("couponId")
+                    .isNotNull("couponMoney")
+                    .between("insertTime", start, end);
+            // 已使用红包记录wrapper
+            between3 = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("redPacketId")
+                    .isNotNull("redPacketMoney")
+                    .between("insertTime", start, end);
+            between33 = new EntityWrapper<TOrderLogistics>()
+                    .isNotNull("redPacketId")
+                    .isNotNull("redPacketMoney")
+                    .between("insertTime", start, end);
+            // 司机已消费金额
+            between4 = new EntityWrapper<BalanceUsageRecord>()
+                    .ne("purpose", 6)
+                    .eq("type",1)
+                    .between("createTime", start, end);
+
+
+        }
+        // 司机提现wrapper
         if (type!=null){
             switch (type){
                 case 1:
@@ -554,8 +736,7 @@
                 case 3:
                     // 司机消费记录
                     balanceUsageRecords = balanceUsageRecordService.selectList(between4);
-
-                    driverWithdrawal = balanceUsageRecordService.selectList(between44);
+                    driverWithdrawal = pubWithdrawalService.selectList(driverWrapper);
                     break;
                 case 4:
                     // 专车订单
@@ -578,7 +759,7 @@
             // 消费
             balanceUsageRecords = balanceUsageRecordService.selectList(between4);
             // 提现
-            driverWithdrawal = balanceUsageRecordService.selectList(between44);
+            driverWithdrawal = pubWithdrawalService.selectList(driverWrapper);
         }
 
         // 已发放补贴总额
@@ -595,17 +776,21 @@
         BigDecimal driverConsume = new BigDecimal("0");
         // 司机已提现
         BigDecimal driverWithdrawal1 = new BigDecimal("0");
+        // 一次性查询所有用户信息
+        Map<Integer, TUser> userMap = appUserService.selectList(new EntityWrapper<TUser>())
+                .stream()
+                .collect(Collectors.toMap(TUser::getId, user -> user));
+        Map<Integer, TDriver> driverMap = driverService.selectList(new EntityWrapper<TDriver>())
+                .stream()
+                .collect(Collectors.toMap(TDriver::getId, user -> user));
         // 查询已使用折扣总额
         for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
-            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
-                continue;
-            }
             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());
+            TUser tUser = userMap.get(tOrderPrivateCar.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
@@ -613,95 +798,92 @@
             res.add(grantVO);
         }
         for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
-            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
-                continue;
-            }
             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());
+            TUser tUser = userMap.get(tOrderPrivateCar.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
             grantVO.setRemark("订单号:"+tOrderPrivateCar.getOrderNum());
             res.add(grantVO);
         }
-        // 查询已领取红包总额
+        // 查询已使用红包总额
         for (TOrderPrivateCar userRedPacketRecord : userRedPacketRecords) {
-            if (userRedPacketRecord.getState() != 9 &&userRedPacketRecord.getState() != 8){
-                continue;
-            }
             GrantVO grantVO = new GrantVO();
             grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
             grantVO.setType("红包");
-            grantVO.setAmount(userRedPacketRecord.getPayMoney().toString());
-            TUser tUser = appUserService.selectById(userRedPacketRecord.getUserId());
+            if (userRedPacketRecord.getRedPacketMoney()==null){
+                continue;
+            }
+            if (userRedPacketRecord.getRedPacketMoney().compareTo(new BigDecimal("0"))==0){
+                continue;
+            }
+            grantVO.setAmount(userRedPacketRecord.getRedPacketMoney().toString());
+            TUser tUser = userMap.get(userRedPacketRecord.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
             grantVO.setRemark("订单号:"+userRedPacketRecord.getOrderNum());
             res.add(grantVO);
-            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getPayMoney().toString()));
+            redPackage = redPackage.add(userRedPacketRecord.getRedPacketMoney());
         }
         for (TOrderLogistics userRedPacketRecord : userRedPacketRecords1) {
-            if (userRedPacketRecord.getState() != 9 &&userRedPacketRecord.getState() != 8){
-                continue;
-            }
             GrantVO grantVO = new GrantVO();
             grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
             grantVO.setType("红包");
-            grantVO.setAmount(userRedPacketRecord.getPayMoney().toString());
-            TUser tUser = appUserService.selectById(userRedPacketRecord.getUserId());
+            if (userRedPacketRecord.getRedPacketMoney()==null){
+                continue;
+            }
+            if (userRedPacketRecord.getRedPacketMoney().compareTo(new BigDecimal("0"))==0){
+                continue;
+            }
+            grantVO.setAmount(userRedPacketRecord.getRedPacketMoney().toString());
+            TUser tUser = userMap.get(userRedPacketRecord.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
             grantVO.setRemark("订单号:"+userRedPacketRecord.getOrderNum());
             res.add(grantVO);
-            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getPayMoney().toString()));
+            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getRedPacketMoney().toString()));
         }
         // 查询已领取优惠券总额
         for (TOrderPrivateCar userCouponRecord : userCouponRecords) {
-            if (userCouponRecord.getState() != 9 &&userCouponRecord.getState() != 8){
-                continue;
-            }
             GrantVO grantVO = new GrantVO();
             grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
             grantVO.setType("优惠券");
-            grantVO.setAmount(userCouponRecord.getPayMoney().toString());
-            TUser tUser = appUserService.selectById(userCouponRecord.getUserId());
+            grantVO.setAmount(userCouponRecord.getCouponMoney().toString());
+            TUser tUser = userMap.get(userCouponRecord.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
             grantVO.setRemark("订单号:"+userCouponRecord.getOrderNum());
-            coupon = coupon.add(new BigDecimal(userCouponRecord.getPayMoney().toString()));
+            coupon = coupon.add(new BigDecimal(userCouponRecord.getCouponMoney().toString()));
             res.add(grantVO);
         }
         for (TOrderLogistics userCouponRecord : userCouponRecords1) {
-            if (userCouponRecord.getState() != 9 &&userCouponRecord.getState() != 8){
-                continue;
-            }
             GrantVO grantVO = new GrantVO();
             grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
             grantVO.setType("优惠券");
-            grantVO.setAmount(userCouponRecord.getPayMoney().toString());
-            TUser tUser = appUserService.selectById(userCouponRecord.getUserId());
+            grantVO.setAmount(userCouponRecord.getCouponMoney().toString());
+            TUser tUser = userMap.get(userCouponRecord.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
             grantVO.setRemark("订单号:"+userCouponRecord.getOrderNum());
-            coupon = coupon.add(new BigDecimal(userCouponRecord.getPayMoney().toString()));
+            coupon = coupon.add(new BigDecimal(userCouponRecord.getCouponMoney().toString()));
             res.add(grantVO);
         }
         // 司机消费奖励
         for (BalanceUsageRecord balanceUsageRecord : balanceUsageRecords) {
-
             GrantVO grantVO = new GrantVO();
             grantVO.setInsertTime(format.format(balanceUsageRecord.getCreateTime()));
             grantVO.setType("司机奖励");
             grantVO.setAmount(balanceUsageRecord.getMoney().toString());
-            TDriver tUser = driverService.selectById(balanceUsageRecord.getDriverId());
+            TDriver tUser = driverMap.get(balanceUsageRecord.getDriverId());
+
             if (tUser!=null){
                 grantVO.setName(tUser.getFirstName()+tUser.getLastName());
             }
@@ -731,23 +913,20 @@
             res.add(grantVO);
         }
         // 司机提现
-        for (BalanceUsageRecord balanceUsageRecord : driverWithdrawal) {
+        for (TPubWithdrawal balanceUsageRecord : driverWithdrawal) {
             GrantVO grantVO = new GrantVO();
-            grantVO.setInsertTime(format.format(balanceUsageRecord.getCreateTime()));
+            grantVO.setInsertTime(format.format(balanceUsageRecord.getInsertTime()));
             grantVO.setType("司机奖励");
             grantVO.setAmount(balanceUsageRecord.getMoney().toString());
-            TDriver tUser = driverService.selectById(balanceUsageRecord.getDriverId());
+            TDriver tUser = driverMap.get(balanceUsageRecord.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getFirstName()+tUser.getLastName());
             }
-            switch (balanceUsageRecord.getPurpose()){
-                case 6:
-                    grantVO.setRemark("司机提现");
-                    break;
-            }
+            grantVO.setRemark("司机提现");
             driverWithdrawal1 = driverWithdrawal1.add(new BigDecimal(balanceUsageRecord.getMoney().toString()));
             res.add(grantVO);
         }
+
 
         // 总额
         total = total.add(redPackage).add(coupon).add(discount).add(driverConsume).add(driverWithdrawal1);
@@ -761,10 +940,11 @@
         useMoneyVO.setDriver(driver);
         useMoneyVO.setDriverWithdrawal(driverWithdrawal1);
         useMoneyVO.setDriverConsume(driverConsume);
-
         return useMoneyVO;
     }
 
+    @Autowired
+    private ISysRedPacketRecordService sysRedPacketRecordService;
     /**
      * 发放补贴统计
      */
@@ -846,31 +1026,71 @@
 
         // 专车wrapper
         Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
-                .isNotNull("discountMoney")
-                .between("insertTime", start, end)
 
                 ;
         // 小件物流wrapper
         Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
-                .between("insertTime", start, end)
-                .isNotNull("discountMoney")
-
 
                 ;
         // 优惠券领取记录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 (time == 5 && !StringUtils.hasLength(insertTime)){
+            // 专车wrapper
+            between = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("discountMoney")
+
+                    ;
+            // 小件物流wrapper
+           between1 = new EntityWrapper<TOrderLogistics>()
+
+                    .isNotNull("discountMoney")
+                    ;
+            // 优惠券领取记录wrapper
+            between2 = new EntityWrapper<UserCouponRecord>()
+                    .ne("couponUseType", 2)
+                    .ne("couponUseType", 3)
+                    ;
+            // 红包领取记录wrapper
+            between3 = new EntityWrapper<UserRedPacketRecord>()
+                    .ne("state",0)
+                    ;
+            // 司机奖励
+            between4 = new EntityWrapper<DriverActivityHistory>()
+                    .eq("carryOut", 2)
+                    ;
+        }else{
+            // 专车wrapper
+            between = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("discountMoney")
+                    .between("insertTime", start, end)
+            ;
+            // 小件物流wrapper
+            between1 = new EntityWrapper<TOrderLogistics>()
+                    .between("insertTime", start, end)
+                    .isNotNull("discountMoney")
+            ;
+            // 优惠券领取记录wrapper
+            between2 = new EntityWrapper<UserCouponRecord>()
+                    .ne("couponUseType", 2)
+                    .ne("couponUseType", 3)
+                    .between("insertTime", start, end);
+            // 红包领取记录wrapper
+            between3 = new EntityWrapper<UserRedPacketRecord>()
+                    .ne("state",0)
+                    .between("insertTime", start, end);
+            // 司机奖励
+            between4 = new EntityWrapper<DriverActivityHistory>()
+                    .eq("carryOut", 2)
+                    .between("insertTime", start, end);
+        }
+
         if (type!=null){
 
             switch (type){
@@ -914,27 +1134,41 @@
         BigDecimal coupon = new BigDecimal("0");
         // 已领取司机奖励总额(司机端)
         BigDecimal driver = new BigDecimal("0");
+        Map<Integer, TUser> userMap = appUserService.selectList(new EntityWrapper<TUser>())
+                .stream()
+                .collect(Collectors.toMap(TUser::getId, user -> user));
+        Map<Integer, TDriver> driverMap = driverService.selectList(new EntityWrapper<TDriver>())
+                .stream()
+                .collect(Collectors.toMap(TDriver::getId, user -> user));
+        Map<Integer, UserActivity> userActivityMap = userActivityService.selectList(new EntityWrapper<UserActivity>())
+                .stream()
+                .collect(Collectors.toMap(UserActivity::getId, user -> user));
+        Map<Integer, UserActivityDiscount1> userActivityDiscountMap = userActivityDiscount1Service.selectList(new EntityWrapper<UserActivityDiscount1>())
+                .stream()
+                .collect(Collectors.toMap(UserActivityDiscount1::getId, user -> user));
+        Map<Integer, UserActivityRedenvelope> userActivityRedenvelopeMap = userActivityRedenvelopeService.selectList(new EntityWrapper<UserActivityRedenvelope>())
+                .stream()
+                .collect(Collectors.toMap(UserActivityRedenvelope::getId, user -> user));
+        Map<Integer, SysCouponActivity> sysCouponActivityMap = sysCouponActivityService.selectList(new EntityWrapper<SysCouponActivity>())
+                .stream()
+                .collect(Collectors.toMap(SysCouponActivity::getId, user -> user));
         // 查询已使用折扣总额
         for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
-            if (tOrderPrivateCar.getDiscountMoney()==null){
+            if (tOrderPrivateCar.getDiscountMoney()==null || tOrderPrivateCar.getDiscountMoney() == 0){
                 continue;
-            }
-            if (tOrderPrivateCar.getState() != 8 && tOrderPrivateCar.getState()!=9){
-                    continue;
-
             }
             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());
+            TUser tUser = userMap.get(tOrderPrivateCar.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
-            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
+            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscountMap.get(tOrderPrivateCar.getActivityId());
             if (userActivityDiscount1!=null){
-                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
+                UserActivity userActivity = userActivityMap.get(userActivityDiscount1.getUserActivityId());
                 if (userActivity!=null){
                     grantVO.setRemark(userActivity.getName());
                 }
@@ -942,25 +1176,23 @@
             res.add(grantVO);
         }
         for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
-            if (tOrderPrivateCar.getDiscountMoney()==null){
+            if (tOrderPrivateCar.getDiscountMoney()==null || tOrderPrivateCar.getDiscountMoney() == 0){
                 continue;
             }
-            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
-                continue;
-            }
+
             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());
+            TUser tUser = userMap.get(tOrderPrivateCar.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
-            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
+            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscountMap.get(tOrderPrivateCar.getActivityId());
             if (userActivityDiscount1!=null){
-                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
+                UserActivity userActivity = userActivityMap.get(userActivityDiscount1.getUserActivityId());
                 if (userActivity!=null){
                     grantVO.setRemark(userActivity.getName());
                 }
@@ -973,14 +1205,20 @@
             grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
             grantVO.setType("红包");
             grantVO.setAmount(userRedPacketRecord.getMoney().toString());
-            TUser tUser = appUserService.selectById(userRedPacketRecord.getUserId());
+            TUser tUser = userMap.get(userRedPacketRecord.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
-            UserActivityRedenvelope userActivityRedenvelope =
-                    userActivityRedenvelopeService.selectById(userRedPacketRecord.getRedPacketActivityId());
+            if (userRedPacketRecord.getIsGrant() == 1){
+                // 后台发放的红包
+                grantVO.setRemark("指定发放");
+            }
+
+
+            UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelopeMap.get(userRedPacketRecord.getRedPacketActivityId());
+
             if (userActivityRedenvelope!=null){
-                UserActivity userActivity = userActivityService.selectById(userActivityRedenvelope.getUserActivityId());
+                UserActivity userActivity = userActivityMap.get(userActivityRedenvelope.getUserActivityId());
                 if (userActivity!=null){
                     grantVO.setRemark(userActivity.getName());
                 }
@@ -994,14 +1232,14 @@
             grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
             grantVO.setType("优惠券");
             grantVO.setAmount(userCouponRecord.getMoney().toString());
-            TUser tUser = appUserService.selectById(userCouponRecord.getUserId());
+            TUser tUser = userMap.get(userCouponRecord.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
-            SysCouponRecord sysCouponRecord =
-                    sysCouponRecordService.selectById(userCouponRecord.getCouponId());
-            if (sysCouponRecord!=null){
-                grantVO.setRemark(sysCouponRecord.getName());
+            SysCouponActivity sysCouponActivity = sysCouponActivityMap.get(userCouponRecord.getCouponActivityId());
+
+            if (sysCouponActivity!=null){
+                grantVO.setRemark(sysCouponActivity.getName());
             }
             coupon = coupon.add(new BigDecimal(userCouponRecord.getMoney().toString()));
             res.add(grantVO);
@@ -1012,7 +1250,7 @@
             grantVO.setInsertTime(format.format(driverActivityHistory.getInsertTime()));
             grantVO.setType("司机奖励");
             grantVO.setAmount(driverActivityHistory.getMoney().toString());
-            TDriver tDriver = driverService.selectById(driverActivityHistory.getDriverId());
+            TDriver tDriver = driverMap.get(driverActivityHistory.getDriverId());
             if (tDriver!=null){
                 grantVO.setName(tDriver.getFirstName()+tDriver.getLastName());
             }
@@ -1034,8 +1272,11 @@
             driver = driver.add(new BigDecimal(driverActivityHistory.getMoney().toString()));
             res.add(grantVO);
         }
+        List<GrantVO> sortedList = res.stream()
+                .sorted((o1, o2) -> o2.getInsertTime().compareTo(o1.getInsertTime()))
+                .collect(Collectors.toList());
         total = total.add(redPackage).add(coupon).add(discount).add(driver);
-        return res;
+        return sortedList;
     }
     @RequestMapping(value = "/grant/getCount")
     @ResponseBody
@@ -1099,6 +1340,7 @@
                     break;
             }
         }
+
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         // 列表res
         List<GrantVO> res = new ArrayList<>();
@@ -1115,34 +1357,71 @@
 
         // 专车wrapper
         Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
-                .between("insertTime", start, end)
-                .isNotNull("discountMoney")
-//                .eq("state", 8)
-//                .or()
-//                .eq("state", 9)
+
                 ;
         // 小件物流wrapper
         Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
-                .between("insertTime", start, end)
-                .isNotNull("discountMoney")
-//                .eq("state", 8)
-//                .or()
-//                .eq("state", 9)
+
                 ;
         // 优惠券领取记录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 (time == 5 && !StringUtils.hasLength(insertTime)){
+            // 专车wrapper
+            between = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("discountMoney")
+
+            ;
+            // 小件物流wrapper
+            between1 = new EntityWrapper<TOrderLogistics>()
+
+                    .isNotNull("discountMoney")
+            ;
+            // 优惠券领取记录wrapper
+            between2 = new EntityWrapper<UserCouponRecord>()
+                    .ne("couponUseType", 2)
+                    .ne("couponUseType", 3)
+            ;
+            // 红包领取记录wrapper
+            between3 = new EntityWrapper<UserRedPacketRecord>()
+                    .ne("state",0)
+            ;
+            // 司机奖励
+            between4 = new EntityWrapper<DriverActivityHistory>()
+                    .eq("carryOut", 2)
+            ;
+        }else{
+            // 专车wrapper
+            between = new EntityWrapper<TOrderPrivateCar>()
+                    .isNotNull("discountMoney")
+                    .between("insertTime", start, end)
+            ;
+            // 小件物流wrapper
+            between1 = new EntityWrapper<TOrderLogistics>()
+                    .between("insertTime", start, end)
+                    .isNotNull("discountMoney")
+            ;
+            // 优惠券领取记录wrapper
+            between2 = new EntityWrapper<UserCouponRecord>()
+                    .ne("couponUseType", 2)
+                    .ne("couponUseType", 3)
+                    .between("insertTime", start, end);
+            // 红包领取记录wrapper
+            between3 = new EntityWrapper<UserRedPacketRecord>()
+                    .ne("state",0)
+                    .between("insertTime", start, end);
+            // 司机奖励
+            between4 = new EntityWrapper<DriverActivityHistory>()
+                    .eq("carryOut", 2)
+                    .between("insertTime", start, end);
+        }
+
         if (type!=null){
 
             switch (type){
@@ -1186,12 +1465,27 @@
         BigDecimal coupon = new BigDecimal("0");
         // 已领取司机奖励总额(司机端)
         BigDecimal driver = new BigDecimal("0");
+        Map<Integer, TUser> userMap = appUserService.selectList(new EntityWrapper<TUser>())
+                .stream()
+                .collect(Collectors.toMap(TUser::getId, user -> user));
+        Map<Integer, TDriver> driverMap = driverService.selectList(new EntityWrapper<TDriver>())
+                .stream()
+                .collect(Collectors.toMap(TDriver::getId, user -> user));
+        Map<Integer, UserActivity> userActivityMap = userActivityService.selectList(new EntityWrapper<UserActivity>())
+                .stream()
+                .collect(Collectors.toMap(UserActivity::getId, user -> user));
+        Map<Integer, UserActivityDiscount1> userActivityDiscountMap = userActivityDiscount1Service.selectList(new EntityWrapper<UserActivityDiscount1>())
+                .stream()
+                .collect(Collectors.toMap(UserActivityDiscount1::getId, user -> user));
+        Map<Integer, UserActivityRedenvelope> userActivityRedenvelopeMap = userActivityRedenvelopeService.selectList(new EntityWrapper<UserActivityRedenvelope>())
+                .stream()
+                .collect(Collectors.toMap(UserActivityRedenvelope::getId, user -> user));
+        Map<Integer, SysCouponActivity> sysCouponActivityMap = sysCouponActivityService.selectList(new EntityWrapper<SysCouponActivity>())
+                .stream()
+                .collect(Collectors.toMap(SysCouponActivity::getId, user -> user));
         // 查询已使用折扣总额
         for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
-            if (tOrderPrivateCar.getDiscountMoney()== null){
-                continue;
-            }
-            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
+            if (tOrderPrivateCar.getDiscountMoney()==null || tOrderPrivateCar.getDiscountMoney() == 0){
                 continue;
             }
             discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
@@ -1199,13 +1493,13 @@
             grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
             grantVO.setType("折扣");
             grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
-            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
+            TUser tUser = userMap.get(tOrderPrivateCar.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
-            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
+            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscountMap.get(tOrderPrivateCar.getActivityId());
             if (userActivityDiscount1!=null){
-                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
+                UserActivity userActivity = userActivityMap.get(userActivityDiscount1.getUserActivityId());
                 if (userActivity!=null){
                     grantVO.setRemark(userActivity.getName());
                 }
@@ -1213,24 +1507,23 @@
             res.add(grantVO);
         }
         for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
-            if (tOrderPrivateCar.getDiscountMoney()== null){
+            if (tOrderPrivateCar.getDiscountMoney()==null || tOrderPrivateCar.getDiscountMoney() == 0){
                 continue;
             }
-            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
-                continue;
-            }
+
             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());
+            TUser tUser = userMap.get(tOrderPrivateCar.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
-            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
+            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscountMap.get(tOrderPrivateCar.getActivityId());
             if (userActivityDiscount1!=null){
-                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
+                UserActivity userActivity = userActivityMap.get(userActivityDiscount1.getUserActivityId());
                 if (userActivity!=null){
                     grantVO.setRemark(userActivity.getName());
                 }
@@ -1243,14 +1536,20 @@
             grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
             grantVO.setType("红包");
             grantVO.setAmount(userRedPacketRecord.getMoney().toString());
-            TUser tUser = appUserService.selectById(userRedPacketRecord.getUserId());
+            TUser tUser = userMap.get(userRedPacketRecord.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
-            UserActivityRedenvelope userActivityRedenvelope =
-                    userActivityRedenvelopeService.selectById(userRedPacketRecord.getRedPacketActivityId());
+            if (userRedPacketRecord.getIsGrant() == 1){
+                // 后台发放的红包
+                grantVO.setRemark("指定发放");
+            }
+
+
+            UserActivityRedenvelope userActivityRedenvelope = userActivityRedenvelopeMap.get(userRedPacketRecord.getRedPacketActivityId());
+
             if (userActivityRedenvelope!=null){
-                UserActivity userActivity = userActivityService.selectById(userActivityRedenvelope.getUserActivityId());
+                UserActivity userActivity = userActivityMap.get(userActivityRedenvelope.getUserActivityId());
                 if (userActivity!=null){
                     grantVO.setRemark(userActivity.getName());
                 }
@@ -1264,14 +1563,14 @@
             grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
             grantVO.setType("优惠券");
             grantVO.setAmount(userCouponRecord.getMoney().toString());
-            TUser tUser = appUserService.selectById(userCouponRecord.getUserId());
+            TUser tUser = userMap.get(userCouponRecord.getUserId());
             if (tUser!=null){
                 grantVO.setName(tUser.getNickName());
             }
-            SysCouponRecord sysCouponRecord =
-                    sysCouponRecordService.selectById(userCouponRecord.getCouponId());
-            if (sysCouponRecord!=null){
-                grantVO.setRemark(sysCouponRecord.getName());
+            SysCouponActivity sysCouponActivity = sysCouponActivityMap.get(userCouponRecord.getCouponActivityId());
+
+            if (sysCouponActivity!=null){
+                grantVO.setRemark(sysCouponActivity.getName());
             }
             coupon = coupon.add(new BigDecimal(userCouponRecord.getMoney().toString()));
             res.add(grantVO);
@@ -1282,7 +1581,7 @@
             grantVO.setInsertTime(format.format(driverActivityHistory.getInsertTime()));
             grantVO.setType("司机奖励");
             grantVO.setAmount(driverActivityHistory.getMoney().toString());
-            TDriver tDriver = driverService.selectById(driverActivityHistory.getDriverId());
+            TDriver tDriver = driverMap.get(driverActivityHistory.getDriverId());
             if (tDriver!=null){
                 grantVO.setName(tDriver.getFirstName()+tDriver.getLastName());
             }

--
Gitblit v1.7.1