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