From 838ec6603d7b9a114a55bcc12004128da9d1b65c Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期六, 21 三月 2026 13:53:07 +0800
Subject: [PATCH] feat:专车、出租车下单增加先付

---
 UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java |   52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 51 insertions(+), 1 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 3d27663..4f70808 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
@@ -21,6 +21,7 @@
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.system.warpper.*;
+import com.stylefeng.guns.modular.system.service.impl.ServerCarModelServiceImpl;
 import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
@@ -182,6 +183,12 @@
 
 	@Autowired
 	private ITSysPushTypeService tSysPushTypeService;
+
+	@Autowired
+	private ITSysPaymentModeService tSysPaymentModeService;
+
+	@Autowired
+	private ServerCarModelServiceImpl serverCarModelService;
 	
 	public static List<Integer> orderIds = new ArrayList<>();
 	
@@ -305,6 +312,45 @@
 			orderTaxi.setPassengersPhone(userInfo.getPhone());
 		}
 		orderTaxi.setState(1);//待接单
+		if (orderTaxi.getOrderSource() != 2) {
+			TSysPaymentMode paymentMode = tSysPaymentModeService.selectOne(new EntityWrapper<TSysPaymentMode>().last("LIMIT 1"));
+			if (paymentMode != null && Integer.valueOf(1).equals(paymentMode.getTaxiType())) {
+				try {
+					Map<String, String> startGeocode = gdMapGeocodingUtil.geocode(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));
+					if (orderTaxi.getEndLon() != null && orderTaxi.getEndLat() != null && startGeocode != null) {
+						Map<String, String> distance = gdMapElectricFenceUtil.getDistance(
+								orderTaxi.getStartLon() + "," + orderTaxi.getStartLat(),
+								orderTaxi.getEndLon() + "," + orderTaxi.getEndLat(),
+								1
+						);
+						if (distance != null) {
+							double distanceMeters = Double.parseDouble(distance.get("distance"));
+							long durationSeconds = Long.parseLong(distance.get("duration"));
+							ServerCarModelWarpper textPrice = serverCarModelService.getTextPrice(query.getId(), distanceMeters, durationSeconds, 0, 2, startGeocode);
+							if (textPrice != null && textPrice.getAmount() != null && textPrice.getAmount().get("zongfeiyong") != null) {
+								Double estimateAmount = Double.valueOf(textPrice.getAmount().get("zongfeiyong").toString());
+								orderTaxi.setEstimateAmount(estimateAmount);
+								orderTaxi.setOrderMoney(estimateAmount);
+								orderTaxi.setPaymentMode(1);
+								orderTaxi.setState(7);
+							} else {
+								orderTaxi.setPaymentMode(2);
+							}
+						} else {
+							orderTaxi.setPaymentMode(2);
+						}
+					} else {
+						orderTaxi.setPaymentMode(2);
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+					orderTaxi.setPaymentMode(2);
+					orderTaxi.setState(1);
+				}
+			} else {
+				orderTaxi.setPaymentMode(paymentMode != null && paymentMode.getTaxiType() != null ? paymentMode.getTaxiType() : 2);
+			}
+		}
 		if (orderTaxi.getOrderSource() == 2 && null != orderTaxi.getDriverId()) {//扫码下单,
 			Driver driver = driverService.selectById(orderTaxi.getDriverId());
 			if (null == driver) {
@@ -372,7 +418,11 @@
 		}
 		
 		//添加消息
-		systemNoticeService.addSystemNotice(1, "您的出租车订单已下单成功,我们正在为您指派司机,请稍后!", orderTaxi.getUserId(), 1);
+		if (orderTaxi.getState() == 7) {
+			systemNoticeService.addSystemNotice(1, "您的出租车订单已生成,请先完成支付。", orderTaxi.getUserId(), 1);
+		} else {
+			systemNoticeService.addSystemNotice(1, "您的出租车订单已下单成功,我们正在为您指派司机,请稍后!", orderTaxi.getUserId(), 1);
+		}
 		
 		BaseWarpper baseWarpper = new BaseWarpper();
 		baseWarpper.setId(orderTaxi.getId());

--
Gitblit v1.7.1