From 1d07ee4cfa2965587f092e5295ce96f4079268b4 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 26 七月 2025 16:50:11 +0800
Subject: [PATCH] 更新微信三方

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java |   58 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 35 insertions(+), 23 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 520e941..abdd299 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
@@ -31,28 +31,28 @@
 
     @Resource
     private OrderTaxiMapper orderTaxiMapper;
-
+    
     @Autowired
     private IDriverService driverService;
-
+    
     @Autowired
     private PushUtil pushUtil;
-
+    
     @Autowired
     private GDFalconUtil gdFalconUtil;
     
-    @Autowired
-    private RedisTemplate redisTemplate;
-
+    @Resource
+    private RedisTemplate<String, Object> redisTemplate;
+    
     @Autowired
     private IOrderPositionService orderPositionService;
-
+    
     @Autowired
     private ISystemNoticeService systemNoticeService;
-
+    
     @Autowired
     private ChinaMobileUtil chinaMobileUtil;
-
+    
     @Autowired
     private GeodesyUtil geodesyUtil;
 
@@ -135,11 +135,11 @@
     @Override
     public synchronized 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);
@@ -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();
 
@@ -753,7 +768,7 @@
         }else{
             orderTaxi.setMileage(0D);
             this.updateById(orderTaxi);
-//            return true;//第一条数据不作处理,直接存储
+            return true;//第一条数据不作处理,直接存储
         }
         Map<String, Double> distance = geodesyUtil.getDistance(now, old);
         if(null != distance){
@@ -764,13 +779,10 @@
             if(orderTaxi.getState() == 5){//大于50米表示在移动,且正在服务中的时候存入里程
                 orderTaxi.setMileage(new BigDecimal(orderTaxi.getMileage()).add(new BigDecimal(distance1)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                 this.updateById(orderTaxi);
-//                return true;
+                return true;
             }
-//            return false;
-        }else{
-            System.err.println("调用高德计算距离出错");
         }
-        return true;
+        return false;
     }
 
 

--
Gitblit v1.7.1