From c96fbe6b0aeb413a17c429133ee6d81d138144b9 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 09 六月 2026 10:58:52 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/XpPricingUtil.java | 31 +++++--------------------------
1 files changed, 5 insertions(+), 26 deletions(-)
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/XpPricingUtil.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/XpPricingUtil.java
index c07030a..f7debcc 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/XpPricingUtil.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/XpPricingUtil.java
@@ -115,21 +115,19 @@
}
XpPricingCardVo xpPricingCardVo = new XpPricingCardVo();
- double amount = 0;
-
double realDistance = distance / 1000;//实际公里
double realTime = duration / 60;//实际时间
double exceedDistance = (realDistance - rule.getDouble("num2")) < 0 ? 0 : realDistance - rule.getDouble("num2");//超出起步里程的公里
double exceedTime = (realTime - rule.getDouble("num3")) < 0 ? 0 : realTime - rule.getDouble("num3");//超过起步分钟数的时间
// 起步价
- Double startPrice = rule.getDouble("num1");
+ Double startPrice = rule.getDouble("num1") * priceRate;
// 超出公里数价格
- Double distancePrice = rule.getDouble("num4") * exceedDistance;
+ Double distancePrice = rule.getDouble("num4") * exceedDistance * priceRate;
// 超出时间价格
- Double durationPrice = rule.getDouble("num5") * exceedTime;
+ Double durationPrice = rule.getDouble("num5") * exceedTime * priceRate;
startPrice = new BigDecimal(startPrice).multiply(BigDecimal.valueOf(priceRate)).setScale(2, RoundingMode.HALF_UP).doubleValue();
@@ -140,7 +138,6 @@
// 里程
xpPricingCardVo.setDistance(realDistance);
xpPricingCardVo.setDuration(realTime);
-
return xpPricingCardVo;
}
@@ -157,8 +154,6 @@
* @throws Exception
*/
public XpPricingCardVo calculationPrice(String uid,JSONObject rule, JSONArray startingFareJson, double distance, long duration, long wait, Double waitMoney,Integer isDynamicPriceStatus,Long openCityId,String dynamicPricingJson) {
-
-
// 默认费率1
double priceRate=1;
if(isDynamicPriceStatus==1){
@@ -208,7 +203,6 @@
XpPricingCardVo xpPricingCardVo = new XpPricingCardVo();
- double amount = 0;
//等待费
Date date = new Date();
// 计算出是在那个时间段内
@@ -270,8 +264,6 @@
if (realDistance > rule.getDouble("num12")) {
longDistanceThree = rule.getDouble("num34") * (realDistance - rule.getDouble("num12"));
}
- amount = rule.getDouble("num29") + (exceedDistance * rule.getDouble("num30")) + (exceedTime * rule.getDouble("num31")) + (wait * waitMoney) + longDistanceOne + longDistanceTwo + longDistanceThree;
-
// 起步价
xpPricingCardVo.setStartPrice(rule.getDouble("num29"));
@@ -304,8 +296,6 @@
if (realDistance > rule.getDouble("num12")) {
longDistanceThree = rule.getDouble("num20") * (realDistance - rule.getDouble("num12"));
}
- amount = rule.getDouble("num15") + (exceedDistance * rule.getDouble("num16")) + (exceedTime * rule.getDouble("num17")) + (wait * waitMoney) + longDistanceOne + longDistanceTwo + longDistanceThree;
-
// 起步价
xpPricingCardVo.setStartPrice(rule.getDouble("num15"));
@@ -359,8 +349,6 @@
if (realDistance > rule.getDouble("num12")) {
longDistanceThree = rule.getDouble("num28") * (realDistance - rule.getDouble("num12"));
}
- amount = rule.getDouble("num23") + (exceedDistance * rule.getDouble("num24")) + (exceedTime * rule.getDouble("num25")) + (wait * waitMoney) + longDistanceOne + longDistanceTwo + longDistanceThree;
-
// 起步价
xpPricingCardVo.setStartPrice(rule.getDouble("num23"));
@@ -396,8 +384,6 @@
if (realDistance > rule.getDouble("num12")) {
longDistanceThree = rule.getDouble("num13") * (realDistance - rule.getDouble("num12"));
}
- amount = rule.getDouble("num1") + (exceedDistance * rule.getDouble("num4")) + (exceedTime * rule.getDouble("num5")) + (wait * waitMoney) + longDistanceOne + longDistanceTwo + longDistanceThree;
-
// 起步价
xpPricingCardVo.setStartPrice(rule.getDouble("num1"));
@@ -427,15 +413,8 @@
}
// 订单总额
- Double startPrice = xpPricingCardVo.getStartPrice();
- // 先减去起步价重新计算
- amount = amount - startPrice;
- // 动态计算费用
- startPrice= new BigDecimal(startPrice).multiply(new BigDecimal(priceRate)).setScale(2, RoundingMode.HALF_UP).doubleValue();
- amount = amount+startPrice;
- xpPricingCardVo.setTotalPrice(amount);
-
-
+ double amount = xpPricingCardVo.getStartPrice() + xpPricingCardVo.getDistancePrice() + xpPricingCardVo.getDurationPrice();
+ xpPricingCardVo.setTotalPrice(new BigDecimal(amount).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
return xpPricingCardVo;
}
/**
--
Gitblit v1.7.1