From 099a92415ce0b0cdd91dcbc659865b80285630d2 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 29 四月 2026 23:50:46 +0800
Subject: [PATCH] update

---
 UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
index 9f0cb85..67ae9aa 100644
--- a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
+++ b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -1878,6 +1878,7 @@
 		String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId"));
 		map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1);
 		map.put("orderType", 2);
+		fillTaxiPrepayDisplayMoney(this.selectById(orderId), map);
 		return map;
 	}
 	
@@ -2155,6 +2156,33 @@
 			return spreadAmount.doubleValue();
 		}
 		return 0D;
+	}
+
+	private Double getTaxiPrepayDisplayPayAmount(OrderTaxi orderTaxi, Double finalAmount) {
+		if (!isTaxiPrepayFinalStage(orderTaxi)) {
+			return toMoney(finalAmount).doubleValue();
+		}
+		try {
+			BigDecimal paidAmount = getTaxiPrepayPaidAmount(orderTaxi);
+			if (paidAmount.compareTo(BigDecimal.ZERO) <= 0) {
+				return toMoney(finalAmount).doubleValue();
+			}
+			BigDecimal displayAmount = toMoney(finalAmount).subtract(paidAmount).setScale(2, RoundingMode.HALF_UP);
+			return displayAmount.compareTo(BigDecimal.ZERO) > 0 ? displayAmount.doubleValue() : 0D;
+		} catch (Exception e) {
+			e.printStackTrace();
+			return toMoney(finalAmount).doubleValue();
+		}
+	}
+
+	private void fillTaxiPrepayDisplayMoney(OrderTaxi orderTaxi, Map<String, Object> map) {
+		if (map == null || orderTaxi == null || !isTaxiPrepayFinalStage(orderTaxi)) {
+			return;
+		}
+		Double finalAmount = null != map.get("orderMoney") ? Double.valueOf(String.valueOf(map.get("orderMoney"))) : orderTaxi.getOrderMoney();
+		Double displayAmount = getTaxiPrepayDisplayPayAmount(orderTaxi, finalAmount);
+		map.put("orderMoney", displayAmount);
+		map.put("payMoney", displayAmount);
 	}
 
 	private ResultUtil settleTaxiPrepayIfNoSecondPay(OrderTaxi orderTaxi, UserInfo userInfo, Double finalAmount) throws Exception {
@@ -2967,6 +2995,7 @@
 			unPayOrderVO.setDriverInfoWarpper(driverInfoWarpper);
 			//鍏朵綑淇℃伅
 			BeanUtils.copyProperties(orderTaxi, unPayOrderVO);
+			unPayOrderVO.setPayMoney(getTaxiPrepayDisplayPayAmount(orderTaxi, orderTaxi.getOrderMoney()));
 			unPayOrderVOList.add(unPayOrderVO);
 			
 		}

--
Gitblit v1.7.1