From 729a5a0592cac7750e8b476c5fcb25bfc3ff8d25 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期日, 27 七月 2025 09:06:31 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java |   59 +++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 37 insertions(+), 22 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
index 6f5a29e..c8da649 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -133,13 +133,13 @@
      * @throws Exception
      */
     @Override
-    public synchronized ResultUtil grabOrder(Integer orderId, Integer uid) throws Exception {
+    public ResultUtil grabOrder(Integer orderId, Integer uid) throws Exception {
         OrderPrivateCar orderPrivateCar1 = orderPrivateCarService.selectById(orderId);
-        if(null != orderPrivateCar1 && orderPrivateCar1.getType() == 3 && orderPrivateCar1.getState() != 1){
+        if(null != orderPrivateCar1 && orderPrivateCar1.getType() == 3 && orderPrivateCar1.getState() != 1&& orderPrivateCar1.getState() != 11){
             return ResultUtil.error("订单已被抢了");
         }
         OrderTaxi orderTaxi = null;
-        if(null != orderPrivateCar1 && orderPrivateCar1.getType() == 3 && orderPrivateCar1.getState() == 1){
+        if(null != orderPrivateCar1 && orderPrivateCar1.getType() == 3 && orderPrivateCar1.getState() == 1&& orderPrivateCar1.getState() == 11){
             orderPrivateCarService.deleteById(orderId);
             OrderTaxi orderTaxi1 = setOrderTaxi(orderPrivateCar1);
             this.insert(orderTaxi1);
@@ -179,8 +179,13 @@
         if(orderTaxi.getState() == 10){
             return ResultUtil.error("订单已取消");
         }
-        if(orderTaxi.getState() != 1){
+        if(orderTaxi.getState() != 1 && orderTaxi.getState() != 11 ){
             return ResultUtil.error("手速有点慢哦,订单已被抢啦!");
+        }
+
+        Integer oldDriverId = null;
+        if(orderTaxi.getState()==11){
+            oldDriverId= orderTaxi.getDriverId();
         }
         Driver driver = driverService.selectById(uid);
         orderTaxi.setDriverId(uid);
@@ -191,16 +196,16 @@
         orderTaxi.setSnatchOrderTime(new Date());
 
         //调用高德创建轨迹
-        String s = gdFalconUtil.selectTerminal(driver.getPhone());
-        String track = gdFalconUtil.createTrack(s);
-        orderTaxi.setTrackId(track);
-
-        //调用移动的小号接口
-        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
-        if(String.valueOf(map.get("code")).equals("200")){
-            orderTaxi.setTelX(map.get("telX"));
-            orderTaxi.setBindId(map.get("bindId"));
-        }
+//        String s = gdFalconUtil.selectTerminal(driver.getPhone());
+//        String track = gdFalconUtil.createTrack(s);
+//        orderTaxi.setTrackId(track);
+//
+//        //调用移动的小号接口
+//        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
+//        if(String.valueOf(map.get("code")).equals("200")){
+//            orderTaxi.setTelX(map.get("telX"));
+//            orderTaxi.setBindId(map.get("bindId"));
+//        }
 
         this.updateById(orderTaxi);
 
@@ -240,15 +245,25 @@
 
         //推送相关代码------------------start----------------
         OrderTaxi finalOrderTaxi = orderTaxi;
+        Integer finalOldDriverId = oldDriverId;
         new Thread(new Runnable() {
             @Override
             public void run() {
-                pushUtil.pushOrderState(1, finalOrderTaxi.getUserId(), finalOrderTaxi.getId(), 2, finalOrderTaxi.getState());
-                pushUtil.pushOrderState(2, finalOrderTaxi.getDriverId(), finalOrderTaxi.getId(), 2, finalOrderTaxi.getState());
-                if(finalOrderTaxi.getType() == 2){
-                    pushUtil.pushFerryOrderState(1, finalOrderTaxi.getUserId(), finalOrderTaxi.getId(), 2, 2);
-                    System.err.println("----------------------------------推送摆渡订单-----------------------------");
+                if(finalOldDriverId !=null){
+                    // 推送3个 1推送原司机 2推送新司机 3推送用户
+                    pushUtil.pushOrderState(2, finalOrderTaxi.getDriverId(), finalOrderTaxi.getId(), 2, finalOrderTaxi.getState());
+                    pushUtil.pushOrderReassign(finalOrderTaxi.getUserId(),1 , finalOrderTaxi.getId(), 2);
+                    pushUtil.pushOrderReassign(finalOldDriverId,2, finalOrderTaxi.getId(), 2);
+
+                }else {
+                    pushUtil.pushOrderState(1, finalOrderTaxi.getUserId(), finalOrderTaxi.getId(), 2, finalOrderTaxi.getState());
+                    pushUtil.pushOrderState(2, finalOrderTaxi.getDriverId(), finalOrderTaxi.getId(), 2, finalOrderTaxi.getState());
+                    if(finalOrderTaxi.getType() == 2){
+                        pushUtil.pushFerryOrderState(1, finalOrderTaxi.getUserId(), finalOrderTaxi.getId(), 2, 2);
+                        System.err.println("----------------------------------推送摆渡订单-----------------------------");
+                    }
                 }
+
             }
         }).start();
 
@@ -341,9 +356,9 @@
         }
     
         //调用高德创建轨迹
-        String s = gdFalconUtil.selectTerminal(driver.getPhone());
-        String track = gdFalconUtil.createTrack(s);
-        orderTaxi.setTrackId(track);
+//        String s = gdFalconUtil.selectTerminal(driver.getPhone());
+//        String track = gdFalconUtil.createTrack(s);
+//        orderTaxi.setTrackId(track);
 
         //调用移动的小号接口 TODO 车载端使用真实号码
 //        Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());

--
Gitblit v1.7.1