From c29395d786cfebf83659924a0477b5d0aed2a093 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 16 八月 2023 19:21:49 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/SuperSaveDriving

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java |   38 +++++++++++++++++++++++++++-----------
 1 files changed, 27 insertions(+), 11 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 87f68da..0a93d93 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
@@ -161,10 +161,14 @@
             return ResultUtil.error("该用户还有未完成的订单", "");
         }
         Driver driver = driverService.selectById(uid);
+
         DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", uid).eq("status", 1));
         Order order1 = this.selectOne(new EntityWrapper<Order>().eq("driverId", uid).eq("status", 1).in("state", Arrays.asList(102, 103, 104, 105, 201, 401)));
         Order order = new Order();
-        if(driverWork != null && null == order1){
+        if(driver.getServerStatus().equals(1)){
+            order.setDriverId(driver.getId());
+            order.setState(104);
+        }else if(driverWork != null && null == order1){
             order.setDriverId(uid);
             driver.setServerStatus(2);
             order.setOrderTakingTime(new Date());
@@ -218,12 +222,10 @@
         }
         order.setCreateTime(new Date());
         order = getOrderPrice(1, d, 0, order, city);
-        order.setState(null == order.getDriverId() ? 101 : 102);
-        order.setStatus(1);
-        if(driver.getServerStatus().equals(1)){
-            order.setDriverId(driver.getId());
-            order.setState(105);
+        if(!driver.getServerStatus().equals(1)) {
+            order.setState(null == order.getDriverId() ? 101 : 102);
         }
+        order.setStatus(1);
 
         this.insert(order);
         driverService.updateById(driver);
@@ -1171,14 +1173,16 @@
     @Override
     public ResultUtil transferOrder(Integer uid, Long orderId, String cause, String phone) throws Exception {
         // 7.13改动
+        Driver driver=null;
         OrderTransfer orderTransfer = new OrderTransfer();
         Order order = this.selectById(orderId);
         if(phone!=null && !"".equals(phone)) {
+            Integer oldId = order.getDriverId();
             List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("phone", phone));
             if (drivers.size() == 0) {
                 return ResultUtil.error("暂无该司机,无法转单");
             } else {
-                Driver driver = drivers.get(0);
+                 driver = drivers.get(0);
                 if (driver.getServerStatus() != 1) {
                     return ResultUtil.error("司机正在服务中,无法转单。");
                 }
@@ -1188,15 +1192,20 @@
                 order.setDriverId(driver.getId());
                 orderTransfer.setNewDriverId(driver.getId());
             }
-        }
-        if(order.getDriverId().compareTo(uid) != 0){
-            return ResultUtil.error("无权操作");
+            order.setState(104);
+            driver.setServerStatus(2);
+            driverService.updateById(driver);
+            Driver driver1 = driverService.selectById(oldId);
+            driver1.setServerStatus(1);
+            driverService.updateById(driver1);
+        }else {
+            order.setState(201);
         }
         if(order.getState() > 104){
             return ResultUtil.error("订单不支持转单");
         }
         order.setOldState(order.getState());
-        order.setState(201);
+
         this.updateById(order);
 
 
@@ -1215,6 +1224,13 @@
                     pushOrder(finalOrder.getId());
                 }
             }).start();
+        }else {
+            if(driver!=null){
+                PushOrderInfoWarpper pushOrderInfoWarpper = new PushOrderInfoWarpper();
+                pushOrderInfoWarpper.setId(order.getId());
+                pushOrderInfoWarpper.setState(201);
+                pushUtil.pushGrabOrder(driver.getId(), 2, order.getId(),1);
+            }
         }
 
         return ResultUtil.success();

--
Gitblit v1.7.1