From 709a4a10be56952ead6340e4822fce41a66e47cd Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 26 七月 2023 18:39:28 +0800
Subject: [PATCH] Merge branch '1.1' of http://120.76.84.145:10101/gitblit/r/java/SuperSaveDriving into dev

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java |   51 +++++++++++++++++++++++++++++----------------------
 1 files changed, 29 insertions(+), 22 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 6443d6d..60e3ef1 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
@@ -388,7 +388,6 @@
                             BigDecimal subtract = new BigDecimal(num9).subtract(new BigDecimal(add));
                             order.setOverBadWeatherPrice(subtract.doubleValue());//恶劣天气超出公里费
                         }
-                    }
                 }
             }
         }
@@ -1149,7 +1148,25 @@
      */
     @Override
     public ResultUtil transferOrder(Integer uid, Long orderId, String cause) 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("无权操作");
         }
@@ -1160,22 +1177,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.getId());
-            }
-        }).start();
         return ResultUtil.success();
     }
 
@@ -2172,10 +2191,6 @@
             if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){
                 break;
             }
-            if(i == performanceRankingWarppers.size() - 1){
-                position = 0;
-                d = 0D;
-            }
         }
         MyAchievementWarpper myAchievementWarpper = new MyAchievementWarpper();
         myAchievementWarpper.setType("订单");
@@ -2198,10 +2213,6 @@
             if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){
                 break;
             }
-            if(i == performanceRankingWarppers.size() - 1){
-                position = 0;
-                d = 0D;
-            }
         }
         myAchievementWarpper = new MyAchievementWarpper();
         myAchievementWarpper.setType("收入");
@@ -2223,10 +2234,6 @@
             }
             if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){
                 break;
-            }
-            if(i == performanceRankingWarppers.size() - 1){
-                position = 0;
-                d = 0D;
             }
         }
         myAchievementWarpper = new MyAchievementWarpper();

--
Gitblit v1.7.1