From e59d2141bc8f9bee8b569deaa54158b3759c431e Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 29 八月 2025 10:42:40 +0800
Subject: [PATCH] bug修改

---
 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java |   88 ++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 81 insertions(+), 7 deletions(-)

diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java
index f11c269..a947fd2 100644
--- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java
+++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java
@@ -27,10 +27,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -481,13 +478,13 @@
             incomeEntityWrapper.eq("type",2);
             incomeEntityWrapper.isNotNull("money");
             if (start!=null){
+                start = start + " 00:00:00";
+                end = end + " 23:59:59";
                 incomeEntityWrapper.ge("insertTime", start);
                 incomeEntityWrapper.le("insertTime", end);
             }
 
-            List<Income> incomes = incomeService.selectList(
-                    incomeEntityWrapper
-            );
+            List<Income> incomes = incomeService.selectList(incomeEntityWrapper);
             EntityWrapper<TOrderPrivateCar> driverEntityWrapper = new EntityWrapper<>();
             driverEntityWrapper.isNotNull("driverId");
             if (start!=null){
@@ -529,6 +526,83 @@
             return ResultUtil.runErr();
         }
     }
+    /**
+     * 司机收益统计
+     * @author yxh
+     * @date 2021/4/2 17:35
+     * @return java.lang.Object
+     */
+    @ResponseBody
+    @RequestMapping(value = "/queryDriverIncomeDataSum", method = RequestMethod.POST)
+    public Object queryDriverIncomeDataSum(String driverName, String time, Integer companyId){
+        try {
+            String start = null;
+            String end = null;
+            if(ToolUtil.isNotEmpty(time)){
+                start = time.split(" - ")[0];
+                end = time.split(" - ")[1];
+            }
+            List<Map<String, Object>> maps = driverService.queryDriverIncomeDataNoPage( driverName, start, end, companyId);
+            EntityWrapper<Income> incomeEntityWrapper = new EntityWrapper<>();
+            incomeEntityWrapper.eq("type",2);
+            incomeEntityWrapper.isNotNull("money");
+            if (start!=null){
+                start = start + " 00:00:00";
+                end = end + " 23:59:59";
+                incomeEntityWrapper.ge("insertTime", start);
+                incomeEntityWrapper.le("insertTime", end);
+            }
+
+            List<Income> incomes = incomeService.selectList(incomeEntityWrapper);
+            EntityWrapper<TOrderPrivateCar> driverEntityWrapper = new EntityWrapper<>();
+            driverEntityWrapper.isNotNull("driverId");
+            if (start!=null){
+                driverEntityWrapper.ge("insertTime", start);
+                driverEntityWrapper.le("insertTime", end);
+            }
+            List<TOrderPrivateCar> tOrderPrivateCars = orderPrivateCarService.selectList(driverEntityWrapper);
+
+            for (Map<String, Object> map : maps) {
+                Double driverMoney   = 0.0;
+                Double platformMoney = 0.0;
+
+                // 司机跑单收入
+                List<Income> driver = incomes.stream().filter(e -> e.getUserType().equals(2)
+                &&map.get("id").toString().equals(e.getObjectId().toString())).collect(Collectors.toList());
+                for (Income income : driver) {
+                    driverMoney+=income.getMoney();
+                }
+                String driverId = map.get("id").toString();
+                // 查询司机订单
+                List<Integer> orderIds = tOrderPrivateCars.stream().filter(e -> e.getDriverId().equals(Integer.parseInt(driverId)))
+                        .map(TOrderPrivateCar::getId).collect(Collectors.toList());
+                // 平台收入
+                List<Income> platform = incomes.stream().filter(e -> e.getUserType().equals(1)
+                        && orderIds.contains(e.getObjectId())).collect(Collectors.toList());
+                for (Income income : platform) {
+                    platformMoney+=income.getMoney();
+                }
+                // driverMoney保留两位小数
+                driverMoney = new BigDecimal(driverMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                platformMoney = new BigDecimal(platformMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                map.put("driverMoney", driverMoney);
+                map.put("platformMoney", platformMoney);
+            }
+            Map<String, Object> result = new HashMap<>();
+            int totalOrderCount = maps.stream().mapToInt(e -> Integer.parseInt(e.get("privateCarTotalNum").toString())).sum();
+            result.put("totalOrderCount", totalOrderCount);
+            double totalPayMoney = maps.stream().mapToDouble(e -> Double.parseDouble(e.get("payMoney").toString())).sum();
+            result.put("totalPayMoney", totalPayMoney);
+            double totalIncome = maps.stream().mapToDouble(e -> Double.parseDouble(e.get("driverMoney").toString())).sum();
+            result.put("totalIncome", totalIncome);
+            double totalPlatformMoney = maps.stream().mapToDouble(e -> Double.parseDouble(e.get("platformMoney").toString())).sum();
+            result.put("totalPlatformMoney", totalPlatformMoney);
+            return result;
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
 
     /**
      * 导出司机收益排行

--
Gitblit v1.7.1