From 00ccfc558eb39fb24486b05d452d6c3f3c9a7685 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 13 二月 2026 17:05:46 +0800
Subject: [PATCH] bug修改,计算费用工具类

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index fdfcc32..120faad 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -32,6 +32,7 @@
 import com.xiaopeng.api.model.operation.XpGeoQueryEntity;
 import com.xiaopeng.api.model.operation.XpFeedbackType;
 import com.xiaopeng.api.model.operation.XpPoint;
+import com.xiaopeng.api.model.operation.XpPricing;
 import com.xiaopeng.api.model.order.XpOrder;
 import com.xiaopeng.api.model.order.XpOrderCancel;
 import com.xiaopeng.api.model.order.XpOrderEvaluate;
@@ -921,6 +922,12 @@
 
             userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo);
         }
+        // 根据订单所属开通城市id 查询定价
+        R<XpPricing> pricingByCityId = xpPricingClient.getPricingByCityId(order.getCityId());
+        XpPricing pricing = pricingByCityId.getData();
+        if (pricing == null) {
+            throw new ServiceException("当前城市未配置定价规则", I18nKeyConstant.ORDER_PRICING_NOT_EXISTS);
+        }
         // 费用
         // 查询订单轨迹
         List<OrderTrajectory> trajectories = mongoTemplate.find(
@@ -930,7 +937,7 @@
         );
         List<TaxiPricingDemoService.GpsPoint> gpsPoints = new ArrayList<>();
         for (OrderTrajectory trajectory : trajectories) {
-            TaxiPricingDemoService.GpsPoint point = new TaxiPricingDemoService.GpsPoint(trajectory.getDistance(),trajectory.getLocatetime() );
+            TaxiPricingDemoService.GpsPoint point = new TaxiPricingDemoService.GpsPoint(trajectory.getDistance(), trajectory.getLocatetime());
             gpsPoints.add(point);
         }
         TaxiPricingDemoService.PricingConfig config = new TaxiPricingDemoService.PricingConfig();
@@ -938,6 +945,7 @@
         config.night = new TaxiPricingDemoService.PricingRule("夜间行驶", "14:47", "14:48", 18.0, 3.0, 5.0, 3.5, 1.0);
         config.holiday = new TaxiPricingDemoService.PricingRule("节假日", "18:47", "18:48", 18.0, 3.0, 5.0, 4, 2.0);
         config.normals.add(new TaxiPricingDemoService.PricingRule("普通时段", "14:46", "14:47", 10.0, 3.0, 5.0, 2.4, 0.5));
+        JSONArray objects = JSONArray.parseArray(pricing.getStartingFareJson());
         config.normals.add(new TaxiPricingDemoService.PricingRule("普通时段", "14:48", "17:59", 10.0, 3.0, 5.0, 2.4, 0.5));
 
         // --- 远途加价区间配置 (关键修改) ---
@@ -958,12 +966,7 @@
         System.err.println("应付总额: " + totalAmount + " 元");
 
 //        // 计算实际价格
-//        // 根据订单所属开通城市id 查询定价
-//        R<XpPricing> pricingByCityId = xpPricingClient.getPricingByCityId(order.getCityId());
-//        XpPricing pricing = pricingByCityId.getData();
-//        if (pricing == null) {
-//            throw new ServiceException("当前城市未配置定价规则", I18nKeyConstant.ORDER_PRICING_NOT_EXISTS);
-//        }
+
 //        // 查询订单轨迹
 //        List<OrderTrajectory> trajectories = mongoTemplate.find(
 //                new Query(Criteria.where("orderId").is(orderId))
@@ -1689,7 +1692,7 @@
         order.setAcceptanceTime(LocalDateTime.now());
 
         R<XpVehicle> byVehicleVin = xpVehicleClient.findByVehicleVin(dto.getXpVehicleVin());
-        if (byVehicleVin.getCode()==200){
+        if (byVehicleVin.getCode() == 200) {
             order.setVehicleId(byVehicleVin.getData().getId());
         }
         order.setStatus(2);

--
Gitblit v1.7.1