From d04bcbfa85b97e4444bac2a66bbee611d05f0f0e Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 30 七月 2025 16:34:38 +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/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   75 +++++++++++++++++++++++++++++--------
 1 files changed, 59 insertions(+), 16 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index eca95fe..62b52d7 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -12,9 +12,12 @@
 import com.stylefeng.guns.modular.system.dao.CarServiceMapper;
 import com.stylefeng.guns.modular.system.dao.RegionMapper;
 import com.stylefeng.guns.modular.system.dao.SystemPriceMapper;
+import com.stylefeng.guns.modular.system.dao.UserInfoMapper;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.CreateTravelItineraryRequest;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -89,6 +92,13 @@
     
     @Resource
     private CarServiceMapper carServiceMapper;
+
+    @Resource
+    private UserInfoMapper userInfoMapper;
+
+
+    @Autowired
+    private TDriverPromotionActivityService driverPromotionActivityService;
     
     @Resource
     private RedisTemplate<String, Object> redisTemplate;
@@ -141,7 +151,7 @@
      * @throws Exception
      */
     @Override
-    public synchronized ResultUtil grabOrder(Integer orderId, Integer uid) throws Exception {
+    public ResultUtil grabOrder(Integer orderId, Integer uid) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
         if(null == orderPrivateCar){
             return ResultUtil.error("订单已被抢了");
@@ -215,17 +225,38 @@
         orderPrivateCar.setSnatchOrderTime(new Date());
 
         //调用高德创建轨迹
-        String s = gdFalconUtil.selectTerminal(driver.getPhone());
-        String track = gdFalconUtil.createTrack(s);
-        orderPrivateCar.setTrackId(track);
+//        String s = gdFalconUtil.selectTerminal(driver.getPhone());
+//        String track = gdFalconUtil.createTrack(s);
+//        orderPrivateCar.setTrackId(track);
 
         //调用移动的小号接口
-        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
-            if(String.valueOf(map.get("code")).equals("200")){
-            orderPrivateCar.setTelX(map.get("telX"));
-            orderPrivateCar.setBindId(map.get("bindId"));
+//        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
+//            if(String.valueOf(map.get("code")).equals("200")){
+//            orderPrivateCar.setTelX(map.get("telX"));
+//            orderPrivateCar.setBindId(map.get("bindId"));
+//        }
+
+
+
+        // 是否推广订单
+        Integer promotion = isPromotion(uid);
+        if(promotion!=null){
+            orderPrivateCar.setPromotion(2);
+            Driver driver1 = driverService.selectById(promotion);
+            orderPrivateCar.setPromotionUser(driver1.getName());
+            orderPrivateCar.setPromotionPhone(driver1.getPhone());
+            orderPrivateCar.setPromotionDriverId(promotion);
         }
 
+        orderPrivateCar.setPromotion(promotion);
+        UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId());
+        //调三方订单中心创建行程单
+        CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+        request.setOrderNo("PR" + orderPrivateCar.getId());
+        request.setCustomerId(userInfo.getOnconUUID());
+        request.setDriverId(driver.getEmpId().toString());
+        String travelItinerary = OrderUtil.createTravelItinerary(request);
+//        orderPrivateCar.set
         this.updateById(orderPrivateCar);
 
         //处理摆渡车的情况
@@ -293,23 +324,35 @@
 
         systemNoticeService.addSystemNotice(2, "您已成功抢得快车订单,请及时联系客户!", orderPrivateCar.getDriverId(), 1);
         systemNoticeService.addSystemNotice(1, "您的订单已指派给" + driver.getName().substring(0, 1) + "师傅,请保持电话畅通!", orderPrivateCar.getUserId(), 1);
-
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                if(pushMinistryOfTransport){
+    
+        if(pushMinistryOfTransport){
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
                     //上传数据
                     pushMinistryOfTransportUtil.orderCreate(orderId);
                     pushMinistryOfTransportUtil.orderMatch(orderId);
                 }
-            }
-        }).start();
-
+            }).start();
+        }
+        
+    
         return ResultUtil.success(orderPrivateCar.getId());
     }
 
 
+    private Integer isPromotion(Integer userId){
+        UserInfo userInfo = userInfoMapper.selectById(userId);
+        if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
+            String registAreaCode = userInfo.getRegistAreaCode();
+            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 1 + ", bizType) limit 1"));
+            if(tDriverPromotionActivity!=null){
+                return 2;
+            }
+        }
+        return null;
 
+    }
     /**
      * 获取订单详情页(服务中的页面)
      * @param orderId

--
Gitblit v1.7.1