From cbc307682c0ca48d59e7b539d6a2ae58d49cabe1 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 20 八月 2025 22:33:02 +0800
Subject: [PATCH] refactor(driver): 重构司机端收入查询逻辑

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml           |  122 +++++-----------------------------------
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java           |   46 ++++++++-------
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java |    2 
 3 files changed, 43 insertions(+), 127 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index 1a13082..7f873d4 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -942,7 +942,7 @@
         String lat = orderPosition.getLat();
         OrderCrossCity order = this.selectById(orderId);
         if(null == order){
-            System.err.println("订单数据异常:" + orderId);
+            System.err.println("跨城订单数据异常:" + orderId);
             return false;
         }
 
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml
index 08b48b0..f701b96 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml
@@ -78,57 +78,16 @@
 
     </select>
     <select id="queryOrderMoneyDataFromDriver" resultType="com.stylefeng.guns.modular.system.model.vo.DriverOrderDataNextVo">
-        select * from (
         select
-        orderNum,
-        1 as type,
+        orderType as type,
         insertTime as orderTime,
-        id as orderId,
-        boardingAddress as startAddress,
-        getoffAddress as endAddress,
-        state,
-        orderMoney
-        from t_order_private_car
-        where driverId = #{uid} and state in (8,9)
+        money as orderMoney
+        from t_income
+        where userType =2  and objectId = #{uid} and type =2
         <if test="sTime !=null">
             and insertTime between #{sTime} and #{eTime}
         </if>
-
-        union all
-
-        select
-        orderNum,
-        2 as type,
-        insertTime as orderTime,
-        id as orderId,
-        boardingAddress as startAddress,
-        getoffAddress as endAddress,
-        state,
-        orderMoney
-        from t_order_taxi
-        where driverId = #{uid} and state in (8,9)
-        <if test="sTime !=null">
-            and insertTime between #{sTime} and #{eTime}
-        </if>
-
-        union all
-
-        select
-        orderNum,
-        3 as type,
-        insertTime as orderTime,
-        id as orderId,
-        boardingAddress as startAddress,
-        getoffAddress as endAddress,
-        state,
-        orderMoney
-        from t_order_cross_city
-        where driverId = #{uid} and state in (8,9)
-        <if test="sTime !=null">
-            and insertTime between #{sTime} and #{eTime}
-        </if>
-        ) t1
-        order by t1.orderTime desc
+        order by insertTime desc
 
 
 
@@ -138,65 +97,18 @@
 
     </select>
     <select id="queryOrderMoneyDataFromDriverAll" resultType="com.stylefeng.guns.modular.system.model.vo.DriverOrderDataNextVo">
-        select * from (
         select
-        orderNum,
-        1 as type,
+        orderType as type,
         insertTime as orderTime,
-        id as orderId,
-        boardingAddress as startAddress,
-        getoffAddress as endAddress,
-        state,
-        orderMoney
-        from t_order_private_car
-        where driverId = #{uid} and state in (8,9)
+        money as orderMoney
+        from t_income
+        where userType =2  and objectId = #{uid} and type =2
         <if test="sTime !=null">
             and insertTime between #{sTime} and #{eTime}
         </if>
-
-        union all
-
-        select
-        orderNum,
-        2 as type,
-        insertTime as orderTime,
-        id as orderId,
-        boardingAddress as startAddress,
-        getoffAddress as endAddress,
-        state,
-        orderMoney
-        from t_order_taxi
-        where driverId = #{uid} and state in (8,9)
-        <if test="sTime !=null">
-            and insertTime between #{sTime} and #{eTime}
-        </if>
-
-        union all
-
-        select
-        orderNum,
-        3 as type,
-        insertTime as orderTime,
-        id as orderId,
-        boardingAddress as startAddress,
-        getoffAddress as endAddress,
-        state,
-        orderMoney
-        from t_order_cross_city
-        where driverId = #{uid} and state in (8,9)
-        <if test="sTime !=null">
-            and insertTime between #{sTime} and #{eTime}
-        </if>
-        ) t1
-        order by t1.orderTime desc
-
-
-
-
-
-
-
+        order by insertTime desc
     </select>
+
     <select id="queryOrderPromotionFromDriver" resultType="com.stylefeng.guns.modular.system.model.vo.DriverOrderDataNextVo">
         select * from (
         select
@@ -209,7 +121,7 @@
         state,
         promotionMoney as orderMoney
         from t_order_private_car
-        where promotionDriverId = #{uid} and state in (8,9)
+        where promotionDriverId = #{uid} and state in (8,9)  and successTime is not null
         <if test="sTime !=null">
             and successTime between #{sTime} and #{eTime}
         </if>
@@ -226,7 +138,7 @@
         state,
         promotionMoney as orderMoney
         from t_order_taxi
-        where promotionDriverId = #{uid} and state in (8,9)
+        where promotionDriverId = #{uid} and state in (8,9) and successTime is not null
         <if test="sTime !=null">
             and successTime between #{sTime} and #{eTime}
         </if>
@@ -243,7 +155,7 @@
         state,
         promotionMoney as orderMoney
         from t_order_cross_city
-        where promotionDriverId = #{uid} and state in (8,9)
+        where promotionDriverId = #{uid} and state in (8,9) and successTime is not null
         <if test="sTime !=null">
             and successTime between #{sTime} and #{eTime}
         </if>
@@ -270,7 +182,7 @@
         state,
         promotionMoney as orderMoney
         from t_order_private_car
-        where promotionDriverId = #{uid} and state in (8,9)
+        where promotionDriverId = #{uid} and state in (8,9) and successTime is not null
         <if test="sTime !=null">
             and successTime between #{sTime} and #{eTime}
         </if>
@@ -287,7 +199,7 @@
         state,
         promotionMoney as orderMoney
         from t_order_taxi
-        where promotionDriverId = #{uid} and state in (8,9)
+        where promotionDriverId = #{uid} and state in (8,9) and successTime is not null
         <if test="sTime !=null">
             and successTime between #{sTime} and #{eTime}
         </if>
@@ -304,7 +216,7 @@
         state,
         promotionMoney as orderMoney
         from t_order_cross_city
-        where promotionDriverId = #{uid} and state in (8,9)
+        where promotionDriverId = #{uid} and state in (8,9) and successTime is not null
         <if test="sTime !=null">
             and successTime between #{sTime} and #{eTime}
         </if>
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index 1fd04c3..5e4db32 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -1696,33 +1696,37 @@
         DriverOrderMoneyDataVo driverOrderDataVo = new DriverOrderMoneyDataVo();
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM");
-        // 总的订单数
-        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().in("state",Arrays.asList(8,9)).eq("driverId", uid));
-        // 跨城订单
-        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().in("state",Arrays.asList(8,9)).eq("driverId", uid));
-        // 出租车订单
-        List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().in("state",Arrays.asList(8,9)).eq("driverId", uid));
+//        // 总的订单数
+//        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().in("state",Arrays.asList(8,9)).eq("driverId", uid));
+//        // 跨城订单
+//        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().in("state",Arrays.asList(8,9)).eq("driverId", uid));
+//        // 出租车订单
+//        List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().in("state",Arrays.asList(8,9)).eq("driverId", uid));
 
 
-        double sum = orderPrivateCars.stream().mapToDouble(OrderPrivateCar::getOrderMoney).sum();
-        double sum1 = orderCrossCities.stream().mapToDouble(OrderCrossCity::getOrderMoney).sum();
-        double sum2 = orderTaxis.stream().mapToDouble(OrderTaxi::getOrderMoney).sum();
-        driverOrderDataVo.setAllOrderMoney(new BigDecimal(sum +sum1+sum2));
+        List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("objectId", uid).eq("objectType", 2).eq("type", 2));
+
+
+//        double sum = orderPrivateCars.stream().mapToDouble(OrderPrivateCar::getOrderMoney).sum();
+//        double sum1 = orderCrossCities.stream().mapToDouble(OrderCrossCity::getOrderMoney).sum();
+//        double sum2 = orderTaxis.stream().mapToDouble(OrderTaxi::getOrderMoney).sum();
+        double sum4 = incomes.stream().mapToDouble(Income::getMoney).sum();
+        driverOrderDataVo.setAllOrderMoney(new BigDecimal(sum4));
 
 
 
-        double count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderPrivateCar::getOrderMoney).sum();
-        double count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderCrossCity::getOrderMoney).sum();
-        double count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderTaxi::getOrderMoney).sum();
-        driverOrderDataVo.setTodayOrderMoney(new BigDecimal(count+count1+count2));
+        double count = incomes.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(Income::getMoney).sum();
+//        double count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderCrossCity::getOrderMoney).sum();
+//        double count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderTaxi::getOrderMoney).sum();
+        driverOrderDataVo.setTodayOrderMoney(new BigDecimal(count));
 
 
         Date date = new Date();
         String month = simpleDateFormat1.format(date);
-        double count3 = orderPrivateCars.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).mapToDouble(OrderPrivateCar::getOrderMoney).sum();
-        double count4 = orderCrossCities.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).mapToDouble(OrderCrossCity::getOrderMoney).sum();
-        double count5 = orderTaxis.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).mapToDouble(OrderTaxi::getOrderMoney).sum();
-        driverOrderDataVo.setMonthOrderMoney(new BigDecimal(count3+count4+count5));
+        double count3 = incomes.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).mapToDouble(Income::getMoney).sum();
+//        double count4 = orderCrossCities.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).mapToDouble(OrderCrossCity::getOrderMoney).sum();
+//        double count5 = orderTaxis.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).mapToDouble(OrderTaxi::getOrderMoney).sum();
+        driverOrderDataVo.setMonthOrderMoney(new BigDecimal(count3));
 
         String sTime=null;
         String eTime=null;
@@ -1744,11 +1748,11 @@
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM");
         // 总的订单数
-        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().in("state",Arrays.asList(8,9)).eq("promotionDriverId", uid));
+        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().in("state",Arrays.asList(8,9)).eq("promotionDriverId", uid).isNotNull("successTime"));
         // 跨城订单
-        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().in("state",Arrays.asList(8,9)).eq("promotionDriverId", uid));
+        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().in("state",Arrays.asList(8,9)).eq("promotionDriverId", uid).isNotNull("successTime"));
         // 出租车订单
-        List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().in("state",Arrays.asList(8,9)).eq("promotionDriverId", uid));
+        List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().in("state",Arrays.asList(8,9)).eq("promotionDriverId", uid).isNotNull("successTime"));
 
 
         BigDecimal sum = orderPrivateCars.stream().map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add);

--
Gitblit v1.7.1