From 6209aee60fd4a4a0253a701659c411e4dc35063b Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 11 八月 2025 19:36:39 +0800
Subject: [PATCH] 修改bug

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |  131 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 104 insertions(+), 27 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 62b52d7..b714768 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
@@ -18,6 +18,7 @@
 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.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,6 +39,9 @@
 
     @Resource
     private SystemPriceMapper systemPriceMapper;
+
+    @Autowired
+    private ISystemPriceCityService systemPriceCityService;
 
     @Autowired
     private IDriverService driverService;
@@ -102,8 +106,13 @@
     
     @Resource
     private RedisTemplate<String, Object> redisTemplate;
-    
-    
+
+
+
+    @Resource
+    private IOpenCityService openCityService;
+
+
     /**
      * 获取司机端首页订单列表
      *
@@ -239,24 +248,49 @@
 
 
         // 是否推广订单
-        Integer promotion = isPromotion(uid);
-        if(promotion!=null){
+        Integer promotion = isPromotion(orderPrivateCar.getUserId());
+        if(null != promotion){
             orderPrivateCar.setPromotion(2);
             Driver driver1 = driverService.selectById(promotion);
             orderPrivateCar.setPromotionUser(driver1.getName());
             orderPrivateCar.setPromotionPhone(driver1.getPhone());
             orderPrivateCar.setPromotionDriverId(promotion);
+        }else{
+            orderPrivateCar.setPromotion(1);
         }
-
-        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
+        
+        if(null == oldDriverId){
+            UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId());
+            Company company = companyService.selectById(driver.getCompanyId());
+            //调三方订单中心创建行程单
+            CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+            request.setOrderNo("PR" + orderPrivateCar.getId());
+            request.setCustomerId(userInfo.getOnconUUID());
+            request.setDriverId(driver.getEmpId().toString());
+            request.setSupplierShopId(company.getEnterCode());
+            if(2 == orderPrivateCar.getPromotion()){
+                Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+                request.setPromoterId(driver1.getEmpId().toString());
+            }
+            request.setServiceType(2);
+            String travelItinerary = OrderUtil.createTravelItinerary(request);
+            orderPrivateCar.setTravelId(travelItinerary);
+        }else{
+            //改派抢单
+            Company company1 = companyService.selectById(driver.getCompanyId());
+            //中台修改订单状态
+            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+            request1.setOrderId(orderPrivateCar.getTravelId());
+            request1.setStatus(orderPrivateCar.getState());
+            request1.setDriverId(driver.getEmpId().toString());
+            if(2 == orderPrivateCar.getPromotion()){
+                Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+                request1.setPromoterId(driver1.getEmpId().toString());
+            }
+            request1.setSupplierShopId(company1.getEnterCode());
+            OrderUtil.modifyTravelItinerary(request1);
+        }
+        
         this.updateById(orderPrivateCar);
 
         //处理摆渡车的情况
@@ -343,11 +377,11 @@
 
     private Integer isPromotion(Integer userId){
         UserInfo userInfo = userInfoMapper.selectById(userId);
-        if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
+        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"));
+            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("state",1).eq("districtCode", registAreaCode).last(" and between now() startTime and endTime AND FIND_IN_SET(" + 1 + ", bizType) limit 1"));
             if(tDriverPromotionActivity!=null){
-                return 2;
+                return userInfo.getBindDriverId();
             }
         }
         return null;
@@ -374,7 +408,7 @@
             if(order!=null){
                 orders.addAll(order);
             }
-            String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
+            String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
             order = this.baseMapper.queryOrderInfo(orderId,5,value.split(",")[0],value.split(",")[1]);
             if(order!=null){
                 orders.addAll(order);
@@ -389,7 +423,7 @@
             if(order!=null){
                 orders.addAll(order);
             }
-            String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
+            String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
             order = this.baseMapper.queryOrderInfo(orderPrivateCar.getPid(),5,value.split(",")[0],value.split(",")[1]);
             if(order!=null){
                 orders.addAll(order);
@@ -423,7 +457,7 @@
             orders.addAll(order);
         }
         OrderPrivateCar orderPrivateCar = this.baseMapper.selectById(orderId);
-        String value = redisUtil.getValue("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
+        String value = redisUtil.getValue("dache:DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
         order = this.baseMapper.queryOrderInfo(orderId,5,value.split(",")[0],value.split(",")[1]);
         if(order!=null){
             orders.addAll(order);
@@ -443,7 +477,9 @@
         map.put("emergencyCall",  "110");
         map.put("orders", JSON.toJSONString(orders));
         return map;*/
-        Map<String,Object> map = orderPrivateCarMapper.queryOrderInfo2(orderId);
+        OrderPrivateCar orderPrivateCar1 = orderPrivateCarMapper.selectById(orderId);
+        OpenCity openCity = openCityService.openCity1(orderPrivateCar1.getStartLon().toString(), orderPrivateCar1.getStartLat().toString());
+        Map<String,Object> map = orderPrivateCarMapper.queryOrderInfo2(orderId, openCity.getId());
         OrderPrivateCar orderPrivateCar = this.baseMapper.selectById(orderId);
         Integer canOperation=1;
         if(orderPrivateCar.getState()<5){
@@ -533,6 +569,20 @@
                 break;
         }
         this.updateById(orderPrivateCar);
+    
+        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+        Company company = companyService.selectById(driver.getCompanyId());
+        //中台修改订单状态
+        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+        request.setOrderId(orderPrivateCar.getTravelId());
+        request.setStatus(orderPrivateCar.getState());
+        request.setDriverId(driver.getEmpId().toString());
+        if(2 == orderPrivateCar.getPromotion()){
+            Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+            request.setPromoterId(driver1.getEmpId().toString());
+        }
+        request.setSupplierShopId(company.getEnterCode());
+        OrderUtil.modifyTravelItinerary(request);
 
         // TODO: 2020/6/5 推送状态
         OrderPrivateCar finalOrderPrivateCar = orderPrivateCar;
@@ -600,20 +650,33 @@
         orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney());
         orderPrivateCar.setState(7);
         this.updateById(orderPrivateCar);
+        
+        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+        Company company = companyService.selectById(driver.getCompanyId());
+        //中台修改订单状态
+        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+        request.setOrderId(orderPrivateCar.getTravelId());
+        request.setStatus(7);
+        request.setDriverId(driver.getEmpId().toString());
+        if(2 == orderPrivateCar.getPromotion()){
+            Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+            request.setPromoterId(driver1.getEmpId().toString());
+        }
+        request.setSupplierShopId(company.getEnterCode());
+        OrderUtil.modifyTravelItinerary(request);
+        
 
         pushUtil.removeTask(orderId, 1);//删除定时任务,结束推送数据
         systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId(), 1);
 
         //回滚司机状态为空闲
         if(orderPrivateCar.getSpellSuccess()==0){
-            Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
             driver.setState(2);
             driverService.updateById(driver);
         }else{
             if(orderPrivateCar.getPid()==null){
                 Integer number = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid",orderPrivateCar.getPid()==null?orderPrivateCar.getId():orderPrivateCar.getPid()).lt("state",6));
                 if(number<=0){
-                    Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                     driver.setState(2);
                     driverService.updateById(driver);
                 }
@@ -621,7 +684,6 @@
                 Integer number = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid",orderPrivateCar.getPid()==null?orderPrivateCar.getId():orderPrivateCar.getPid()).lt("state",6));
                 Integer number1 = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("id",orderPrivateCar.getPid()).lt("state",6));
                 if(number<=0 && number1<=0){
-                    Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                     driver.setState(2);
                     driverService.updateById(driver);
                 }
@@ -782,12 +844,25 @@
         orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney() + orderPrivateCar.getHolidayFee() + t);
         orderPrivateCar.setState(7);
         this.updateById(orderPrivateCar);
+    
+        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+        Company company1 = companyService.selectById(driver.getCompanyId());
+        //中台修改订单状态
+        ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+        request1.setOrderId(orderPrivateCar.getTravelId());
+        request1.setStatus(orderPrivateCar.getState());
+        request1.setDriverId(driver.getEmpId().toString());
+        if(2 == orderPrivateCar.getPromotion()){
+            Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+            request1.setPromoterId(driver1.getEmpId().toString());
+        }
+        request1.setSupplierShopId(company1.getEnterCode());
+        OrderUtil.modifyTravelItinerary(request1);
 
         pushUtil.removeTask(orderId, 1);//删除定时任务,结束推送数据
         systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId(), 1);
 
         //回滚司机状态为空闲
-        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
         driver.setState(2);
         driverService.updateById(driver);
 
@@ -831,7 +906,7 @@
         }
 
         Map<String, Object> map = new HashMap<>();
-        map.put("orderMoney", new BigDecimal(orderPrivateCar.getOrderMoney()).setScale(2,BigDecimal.ROUND_DOWN));//订单金额
+        map.put("orderMoney", orderPrivateCar.getOrderMoney()==null?0:new BigDecimal(orderPrivateCar.getOrderMoney()).setScale(2,BigDecimal.ROUND_DOWN));//订单金额
         map.put("startMileage", orderPrivateCar.getStartMileage());//起步价
         map.put("startMoney", orderPrivateCar.getStartMoney());//起步价
         map.put("mileageKilometers", orderPrivateCar.getMileageKilometers());//里程费
@@ -978,7 +1053,9 @@
      * @throws Exception
      */
     public OrderPrivateCar setMoney(OrderPrivateCar orderPrivateCar, Double parkingFee, Double crossingFee) throws Exception {
-        Map<String, Object> query1 = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId());
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
+        SystemPriceCity systemPriceCity = systemPriceCityService.queryOne(geocode.get("provinceCode"), geocode.get("cityCode"), geocode.get("districtCode"));
+        Map<String, Object> query1 = systemPriceMapper.query(systemPriceCity.getId(), 1, orderPrivateCar.getServerCarModelId());
         //开始根据不同的方式计算金额
         double amount = 0;
         JSONObject jsonObject = JSON.parseObject(String.valueOf(query1.get("content")));

--
Gitblit v1.7.1