From c788ca1640f080f821cb1cbe07da741302d355ef Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期四, 02 七月 2026 14:43:08 +0800
Subject: [PATCH] Merge branch 'feature/3.0' into feature/fangxinxing
---
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 42 insertions(+), 6 deletions(-)
diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index 3f4a72f..ab93e43 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -231,7 +231,7 @@
public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception {
Map<String, Object> map = new HashMap<>();
OrderCrossCity orderCrossCity = this.selectById(orderId);
- List<Map<String, Object>> order = orderCrossCityMapper.queryOrderInfo(orderCrossCity.getOrderNum());
+ List<Map<String, Object>> order = orderCrossCityMapper.queryOrderInfo(orderCrossCity.getOrderNum(), orderCrossCity.getLineShiftDriverId());
int num = 0;
Double serverMoney = 0D;
@@ -1161,9 +1161,17 @@
Map<String, Object> map = new HashMap<>();
map.put("distance", distance);
- Integer pricePeopleNumber = travelMode != null && travelMode == 2 && totalSeat != null && totalSeat > 0 ? totalSeat : peopleNumber;
+
+ // 包车模式:使用线路包车价格
+ if (travelMode != null && travelMode == 2) {
+ BigDecimal charterPrice = getLineCharterPrice(lineId, totalSeat);
+ map.put("price", charterPrice == null ? -1 : charterPrice.doubleValue());
+ return ResultUtil.success(map);
+ }
+
+ // 拼车模式:使用目的地单人价格 × 人数
BigDecimal unitPrice = queryDefaultLineDestinationPrice(lineId, totalSeat);
- map.put("price", unitPrice == null ? -1 : multiplyPeopleNumber(unitPrice, pricePeopleNumber).doubleValue());
+ map.put("price", unitPrice == null ? -1 : multiplyPeopleNumber(unitPrice, peopleNumber).doubleValue());
return ResultUtil.success(map);
}
@@ -1354,9 +1362,14 @@
if (destination == null) {
return null;
}
- BigDecimal price = totalSeat != null && totalSeat == 6
- ? getBigDecimal(destination.get("price7"))
- : getBigDecimal(destination.get("price5"));
+ BigDecimal price;
+ if (totalSeat != null && totalSeat == 7) {
+ price = getBigDecimal(destination.get("price7"));
+ } else if (totalSeat != null && totalSeat == 6) {
+ price = getBigDecimal(destination.get("price6"));
+ } else {
+ price = getBigDecimal(destination.get("price5"));
+ }
return price == null ? getBigDecimal(destination.get("price5")) : price;
}
@@ -1367,6 +1380,29 @@
return price.multiply(new BigDecimal(peopleNumber)).setScale(2, BigDecimal.ROUND_HALF_UP);
}
+ /**
+ * 获取线路包车价格(根据座位数选择)
+ */
+ private BigDecimal getLineCharterPrice(Integer lineId, Integer totalSeat) {
+ if (lineId == null || lineId <= 0) {
+ return null;
+ }
+ Map<String, Object> line = lineMapper.queryLineCharterPrices(lineId);
+ if (line == null) {
+ return null;
+ }
+ BigDecimal price;
+ if (totalSeat != null && totalSeat == 7) {
+ price = getBigDecimal(line.get("charterPrice7"));
+ } else if (totalSeat != null && totalSeat == 6) {
+ price = getBigDecimal(line.get("charterPrice6"));
+ } else {
+ price = getBigDecimal(line.get("charterPrice5"));
+ }
+ // 如果选择的价格为空,回退到5座价格
+ return price == null ? getBigDecimal(line.get("charterPrice5")) : price;
+ }
+
@Override
public List<OrderCrossCity> taskMidAxbUnBindSend() throws Exception {
return this.baseMapper.taskMidAxbUnBindSend();
--
Gitblit v1.7.1