From 899a2d18a38619ae2f3a60d704258da694a84bb5 Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期四, 10 八月 2023 09:34:12 +0800
Subject: [PATCH] 超省2.0

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java |   51 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 38 insertions(+), 13 deletions(-)

diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
index 583abd5..1d847c9 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
@@ -316,8 +316,6 @@
             JSONObject jsonObject1 = JSON.parseObject(systemConfig.getContent());
             Integer num11 = jsonObject1.getInteger("num1");//开启恶劣天气计价
             if(1 == num11){
-                boolean badWeather = WeatherUtil.isBadWeather(city);
-                if(badWeather){
                     order.setBadWeatherDistance(num5);//恶劣天气公里
                     order.setBadWeatherPrice(num6);//恶劣天气费
                     if(distance.compareTo(num7) > 0){
@@ -336,7 +334,6 @@
                             BigDecimal subtract = new BigDecimal(num9).subtract(new BigDecimal(add));
                             order.setOverBadWeatherPrice(subtract.doubleValue());//恶劣天气超出公里费
                         }
-                    }
                 }
             }
         }
@@ -966,8 +963,26 @@
      * @throws Exception
      */
     @Override
-    public ResultUtil transferOrder(Integer uid, Long orderId, String cause) throws Exception {
+    public ResultUtil transferOrder(Integer uid, Long orderId, String cause,String phone) throws Exception {
+        // 7.13改动
+        OrderTransfer orderTransfer = new OrderTransfer();
         Order order = this.selectById(orderId);
+        if(phone!=null && !"".equals(phone)) {
+            List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("phone", phone));
+            if (drivers.size() == 0) {
+                return ResultUtil.error("暂无该司机,无法转单");
+            } else {
+                Driver driver = drivers.get(0);
+                if (driver.getServerStatus() != 1) {
+                    return ResultUtil.error("司机正在服务中,无法转单。");
+                }
+                if (driver.getStatus() != 1) {
+                    return ResultUtil.error("该司机已被冻结,无法转单。");
+                }
+                order.setDriverId(driver.getId());
+                orderTransfer.setNewDriverId(driver.getId());
+            }
+        }
         if(order.getDriverId().compareTo(uid) != 0){
             return ResultUtil.error("无权操作");
         }
@@ -978,22 +993,24 @@
         order.setState(201);
         this.updateById(order);
 
-        OrderTransfer orderTransfer = new OrderTransfer();
+
         orderTransfer.setOrderId(orderId);
         orderTransfer.setOldDriverId(order.getDriverId());
         orderTransfer.setCause(cause);
         orderTransfer.setStatus(1);
         orderTransfer.setCreateTime(new Date());
         orderTransferService.insert(orderTransfer);
+        if(phone==null ||"".equals(phone)){
+            //开始派单
+            Order finalOrder = order;
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushOrder(finalOrder);
+                }
+            }).start();
+        }
 
-        //开始派单
-        Order finalOrder = order;
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                pushOrder(finalOrder);
-            }
-        }).start();
         return ResultUtil.success();
     }
 
@@ -1529,6 +1546,14 @@
         }
         if(type == 3){//收入
             performanceRankingWarppers = revenueService.queryDriverRank(1, time, dayType);
+
+            // 通过司机id 去差订单的优惠金额
+            for (PerformanceRankingWarpper performanceRankingWarpper : performanceRankingWarppers) {
+                List<Order> orders = this.baseMapper.selectList(new EntityWrapper<Order>().eq("driverId", performanceRankingWarpper.getDriverId()).isNotNull("payMoney"));
+                double sum = orders.stream().mapToDouble(Order::getDiscountedPrice).sum();
+                double sum1 = orders.stream().mapToDouble(Order::getDiscountAmount).sum();
+                performanceRankingWarpper.setAmountOfData(new BigDecimal(performanceRankingWarpper.getAmountOfData()+sum+sum1).setScale(2,RoundingMode.HALF_UP).doubleValue());
+            }
         }
         for (int i = 0; i < performanceRankingWarppers.size(); i++) {
             PerformanceRankingWarpper performanceRankingWarpper = performanceRankingWarppers.get(i);

--
Gitblit v1.7.1