From 1569ec5a8a0f8d2cccb1c18ce78658a3e358b2d8 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 24 九月 2025 16:44:44 +0800
Subject: [PATCH] 更新代码

---
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   81 ++++++++++++++++++++--------------------
 1 files changed, 40 insertions(+), 41 deletions(-)

diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index d1cded1..8b8cff2 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -25,6 +25,8 @@
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
 import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpEntity;
@@ -55,6 +57,8 @@
 
 @Service
 public class OrderPrivateCarServiceImpl extends ServiceImpl<OrderPrivateCarMapper, OrderPrivateCar> implements IOrderPrivateCarService {
+
+    Logger logger = LoggerFactory.getLogger(OrderPrivateCarServiceImpl.class);
 
     @Resource
     private OrderPrivateCarMapper orderPrivateCarMapper;
@@ -154,6 +158,9 @@
 
     @Autowired
     private GDMapElectricFenceUtil gdMapElectricFenceUtil;
+    
+    @Autowired
+    private GeodesyUtil geodesyUtil;
 
     @Autowired
     private IOrderPositionService orderPositionService;
@@ -225,10 +232,10 @@
         if(orderPrivateCars.size() > 0){
             return ResultUtil.error("有未完成的订单");
         }
-        List<OrderTaxi> list = orderTaxiMapper.queryByState_(uid, 1, 1, 1, 2, 3, 4, 5, 6, 11);
-        if(list.size() > 0){
-            return ResultUtil.error("有未完成的订单");
-        }
+//        List<OrderTaxi> list = orderTaxiMapper.queryByState_(uid, 1, 1, 1, 2, 3, 4, 5, 6, 11);
+//        if(list.size() > 0){
+//            return ResultUtil.error("有未完成的订单");
+//        }
 
         orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 2, 1, 1, 2, 3, 4, 5, 6,  11);
         if(orderPrivateCars.size() > 0 && reservation == 2){
@@ -244,10 +251,10 @@
         }
 
 
-        list = orderTaxiMapper.queryByState_(uid, 2, 1, 1, 2, 3, 4, 5, 6, 11);
-        if(list.size() > 0 && reservation == 2){
-            return ResultUtil.error("有未完成的订单");
-        }
+//        list = orderTaxiMapper.queryByState_(uid, 2, 1, 1, 2, 3, 4, 5, 6, 11);
+//        if(list.size() > 0 && reservation == 2){
+//            return ResultUtil.error("有未完成的订单");
+//        }
 
         startAddress = startAddress.replaceAll("& #40;", "(");
         startAddress = startAddress.replaceAll("& #41;", ")");
@@ -323,7 +330,11 @@
             orderPrivateCar.setSnatchOrderTime(new Date());
             driver2.setState(3);
             driverService.updateById(driver2);
+            serverCarModelId = query1.getServerCarModelId();
         }
+        long timeMillis1 = System.currentTimeMillis();
+        logger.info("第一段用时:" + (timeMillis1 - timeMillis));
+        timeMillis = timeMillis1;
         // 查询城市的订单额度
         OpenCity openCity = openCityService.selectOne(new EntityWrapper<OpenCity>()
                 .eq("code", cityCode)
@@ -340,30 +351,17 @@
         }
 
         // 查询预估价格
-        ResultUtil<List<ServerCarModelWarpper>> listResultUtil = serverCarModelService.queryServerCarModel(startLon + "," + startLat, endLon + "," + endLat, 1);
-        List<ServerCarModelWarpper> data = listResultUtil.getData();
-        if(Objects.isNull(serverCarModelId)){
-            //获取经营业务
-            CarService query = new CarService();
-            query.setCarId(driver2.getCarId());
-            CarService service = carServiceMapper.selectOne(query);
-            if(Objects.nonNull(service)){
-                serverCarModelId = service.getServerCarModelId();
-            }
+        ResultUtil<ServerCarModelWarpper> listResultUtil = serverCarModelService.queryServerCarModel1(serverCarModelId, startLon + "," + startLat, endLon + "," + endLat, 1);
+        if(200 != listResultUtil.getCode()){
+            return ResultUtil.error(listResultUtil.getMsg());
         }
-        Integer finalServerCarModelId = serverCarModelId;
-        data = data.stream().filter(e -> finalServerCarModelId.equals(e.getId())).sorted(Comparator.comparing(ServerCarModelWarpper::getAmount)).collect(Collectors.toList());
-        if(Objects.nonNull(openCity) && !CollectionUtils.isEmpty(data) && BigDecimal.valueOf(data.get(0).getAmount()).compareTo(openCity.getOrderMagnitude()) > 0){
+        ServerCarModelWarpper data = listResultUtil.getData();
+        if(Objects.nonNull(openCity) && BigDecimal.valueOf(data.getAmount()).compareTo(openCity.getOrderMagnitude()) > 0){
             orderPrivateCar.setIsReassign(1);
             orderPrivateCar.setIsDelete(1);
             orderPrivateCar.setState(7);
-            if(orderSource == 2){
-                orderPrivateCar.setOrderMoney(data.get(0).getAmount());
-                orderPrivateCar.setEstimatedPrice(data.get(0).getAmount());
-            }else {
-                orderPrivateCar.setOrderMoney(data.get(carIndex).getAmount());
-                orderPrivateCar.setEstimatedPrice(data.get(carIndex).getAmount());
-            }
+            orderPrivateCar.setOrderMoney(data.getAmount());
+            orderPrivateCar.setEstimatedPrice(data.getAmount());
             orderPrivateCar.setPayMethod(0);
             this.insert(orderPrivateCar);
             BaseWarpper baseWarpper = new BaseWarpper();
@@ -373,13 +371,7 @@
             baseWarpper.setAmount(orderPrivateCar.getOrderMoney());
             return ResultUtil.success(baseWarpper);
         }else {
-            if(orderSource == 2){
-                if(!CollectionUtils.isEmpty(data)){
-                    orderPrivateCar.setEstimatedPrice(data.get(0).getAmount());
-                }
-            }else {
-                orderPrivateCar.setEstimatedPrice(data.get(carIndex).getAmount());
-            }
+            orderPrivateCar.setEstimatedPrice(data.getAmount());
             orderPrivateCar.setIsReassign(1);
             orderPrivateCar.setIsDelete(1);
             orderPrivateCar.setPayMethod(1);
@@ -395,7 +387,9 @@
                     }
                 }).start();
             }
-
+            long timeMillis2 = System.currentTimeMillis();
+            logger.info("第二段用时:" + (timeMillis2 - timeMillis));
+            timeMillis = timeMillis2;
 
             // TODO: 2021/5/11 修改,根据后台设定的派单范围查询范围内有无司机,将单子指派给距离最近的司机(距离相同随机取),范围内没有司机再进行推单流程
             if(orderPrivateCar.getState() == 1){
@@ -458,11 +452,11 @@
                                 for (Driver driver : ds) {
                                     String value = redisUtil.getValue("DRIVER" + driver.getId());
                                     if (null != value) {
-                                        Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1);//计算距离
-                                        Integer d = Integer.valueOf(distance1.get("distance"));
-                                        if ((0 == m && null == dr) || (d.intValue() < m.intValue())) {
+                                        Map<String, Double> distance = geodesyUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value);
+                                        Double wgs84 = distance.get("WGS84");
+                                        if ((0 == m && null == dr) || (wgs84.intValue() < m.intValue())) {
                                             dr = driver;
-                                            m = d;
+                                            m = wgs84.intValue();
                                         }
                                     }
                                 }
@@ -507,7 +501,9 @@
                     }
                 }
             }
-
+            long timeMillis3 = System.currentTimeMillis();
+            logger.info("第三段用时:" + (timeMillis3 - timeMillis));
+            timeMillis = timeMillis3;
 
             //推单操作
             if(orderPrivateCar.getState() == 1){
@@ -519,6 +515,9 @@
             baseWarpper.setState(orderPrivateCar.getState());
             baseWarpper.setId(orderPrivateCar.getId());
             baseWarpper.setPayMethod(1);
+            long timeMillis4 = System.currentTimeMillis();
+            logger.info("第四段用时:" + (timeMillis4 - timeMillis));
+            timeMillis = timeMillis4;
             return ResultUtil.success(baseWarpper);
         }
     }

--
Gitblit v1.7.1