From cd1ab3efb6ca6433754dd7ea9b996e63f4a3e683 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 14 三月 2026 10:11:27 +0800
Subject: [PATCH] 处理结束行程动态计费
---
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java | 2 +-
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TaxiPricingDemoService.java | 14 +++++++-------
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 25 ++++++++++++++++++++++---
3 files changed, 30 insertions(+), 11 deletions(-)
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java
index b9624ef..abbf121 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java
+++ b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java
@@ -102,7 +102,7 @@
}
@PostMapping("/inner/appUserCoupon/useUserCoupon")
public R useUserCoupon(@RequestBody UseUserCouponDto dto) {
- XpAppUserCoupon appUserCoupon = xpAppUserCouponService.getById(dto.getUserId());
+ XpAppUserCoupon appUserCoupon = xpAppUserCouponService.getById(dto.getUserCouponId());
appUserCoupon.setStatus(2);
xpAppUserCouponService.updateById(appUserCoupon);
return R.ok();
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 414cf1e..7fe2b13 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
@@ -1677,7 +1677,7 @@
}
String durationAndMileage = key.split("\\|")[2];
startDetail.setDuration(Double.valueOf(durationAndMileage.split("&")[0]));
- startDetail.setMileage(new BigDecimal(durationAndMileage.split("&")[1]));
+ startDetail.setMileage(new BigDecimal(durationAndMileage.split("&")[1]).multiply(BigDecimal.valueOf(1000)));
start.add(startDetail);
}
// 封装里程费
@@ -1727,7 +1727,19 @@
// 封装时长费
FareBreakdownDetailVo timeDetail = new FareBreakdownDetailVo();
if (key.contains("时长费")) {
- timeDetail.setType(startDetail.getType());
+ if(key.contains("普通时段")){
+ timeDetail.setType(1);
+ }
+ if(key.contains("夜间行驶")){
+ timeDetail.setType(2);
+ }
+ if(key.contains("高峰")){
+ timeDetail.setType(3);
+ }
+ if(key.contains("节假")){
+ timeDetail.setType(4);
+ }
+
timeDetail.setMoney(stringBigDecimalEntry.getValue());
timeDetail.setDuration(Double.valueOf(key.split("&")[1]));
duration.add(timeDetail);
@@ -1737,7 +1749,7 @@
if (key.contains("远途费")) {
longDetail.setType(startDetail.getType());
longDetail.setMoney(stringBigDecimalEntry.getValue());
- longDetail.setMileage(new BigDecimal(key.split("&")[1]));
+// longDetail.setMileage(new BigDecimal(key.split("&")[1]));
longDistance.add(longDetail);
}
}
@@ -2394,6 +2406,13 @@
order.setStatus(9);
order.setAppUserId(null);
baseMapper.updateById(order);
+
+ if(order.getCouponId()!=null){
+ UseUserCouponDto useUserCouponDto = new UseUserCouponDto();
+ useUserCouponDto.setUserCouponId(order.getCouponId());
+ xpAppUserCouponClient.useUserCoupon(useUserCouponDto);
+ }
+
return R.ok();
}
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TaxiPricingDemoService.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TaxiPricingDemoService.java
index 236f9a0..05e6a7f 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TaxiPricingDemoService.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TaxiPricingDemoService.java
@@ -22,7 +22,7 @@
// 模拟总里程 25.0 km,以触发多级远途加价
double totalMillige = 2.984;
Calendar cal = Calendar.getInstance();
- cal.set(2026, Calendar.APRIL, 11, 15, 58, 15);
+ cal.set(2026, Calendar.APRIL, 11, 15, 57, 50);
orderTime = cal.getTime();
// 模拟 GPS 轨迹点
List<GpsPoint> points = createMockGpsPoints(orderTime);
@@ -262,13 +262,13 @@
public long getLocatetime() { return locatetime; }
}
- private static PricingConfig setupMockConfig() {
+ private static PricingConfig setupMockConfig() {
PricingConfig config = new PricingConfig();
- config.peaks.add(new PricingRule("高峰期", "04:00", "05:00", 15, 1, 10, 4, 4));
- config.peaks.add(new PricingRule("高峰期", "15:00", "16:00", 15, 1, 10, 4, 4));
- config.night = new PricingRule("夜间行驶", "20:04", "23:00", 15, 1, 10, 3, 3);
- config.holiday = new PricingRule("节假日", "00:00", "23:59", 20, 1, 10, 4, 4);
- config.normals.add(new PricingRule("普通时段", "00:00", "23:59", 10.0, 1, 10.0, 3, 3));
+ config.peaks.add(new PricingRule("高峰期", "04:00", "05:00", 15, 1, 1, 4, 4));
+ config.peaks.add(new PricingRule("高峰期", "15:00", "16:00", 15, 1, 1, 4, 4));
+ config.night = new PricingRule("夜间行驶", "20:04", "23:00", 15, 1, 1, 3, 3);
+ config.holiday = new PricingRule("节假日", "00:00", "23:59", 20, 1, 1, 4, 4);
+ config.normals.add(new PricingRule("普通时段", "00:00", "23:59", 10.0, 1, 1, 3, 3));
// --- 远途加价区间配置 (关键修改) ---
// 1. 超过 num1(12) 不足 num2(20), 加收 num3(1.2)
--
Gitblit v1.7.1