From e1a1ae7d3976963647e5878d3f12e42338ad163a Mon Sep 17 00:00:00 2001
From: yanderong <307678080@qq.com>
Date: 星期二, 30 六月 2026 14:55:51 +0800
Subject: [PATCH] feat: 专车价格计算逻辑修改

---
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |    4 +++-
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml                 |    6 +++++-
 UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java         |    1 -
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 6308898..f19359a 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -1244,7 +1244,9 @@
             double estimateMileage = (null == orderPrivateCar.getEstimateMileage() ? 0D : orderPrivateCar.getEstimateMileage());
             System.out.println("预估里程数"+estimateMileage);
             //在价格区间按照一口价算,不在区间按实时价格算
-            if(d<estimateMileage+contentPrice.getDouble("exceedMileageInner")*1000 && d>estimateMileage-contentPrice.getDouble("belowMileageInner")*1000){
+            double exceedMileageInner = Optional.ofNullable(query1.get("exceedMileageInner")).map(Object::toString).map(Double::parseDouble).orElse(0d);
+            double belowMileageInner = Optional.ofNullable(query1.get("belowMileageInner")).map(Object::toString).map(Double::parseDouble).orElse(0d);
+            if(d<estimateMileage+exceedMileageInner*1000 && d>estimateMileage-belowMileageInner*1000) {
                 System.out.println("在区间===============");
                 orderPrivateCar = calculationPrice(orderPrivateCar,contentPrice,jsonObject.getLongValue("num1"),jsonObject.getDouble("num2"),parkingFee,crossingFee);
                 System.out.println("返回订单数据"+orderPrivateCar);
diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml
index d4070cd..b9cadd4 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml
@@ -23,7 +23,11 @@
         contentNotThree as contentNotThree,
         contentExclusive as contentExclusive,
         contentPrice as contentPrice,
-        isOpen as isOpen
+        isOpen as isOpen,
+        exceedMileageInner as exceedMileageInner,
+        exceedMileageOut as exceedMileageOut,
+        belowMileageOut as belowMileageOut,
+        belowMileageInner as belowMileageInner
         from t_system_price where state = 1 and systemPriceCityId = #{systemPriceCityId}
         <if test="null != type">
             and `type` = #{type}
diff --git a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
index bd79066..1ac8fa2 100644
--- a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
+++ b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -422,7 +422,6 @@
         return serverCarModelWarpper;
     }
 
-
     /**
      * 专车费用计算
      */

--
Gitblit v1.7.1