From b89169e3a9fe51ac578c2c181f9269d32dc1f858 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期日, 08 三月 2026 17:21:55 +0800
Subject: [PATCH] 修改bug

---
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/OrderCrossCityScanWarpper.java       |    3 +++
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java   |   28 +++++++++++++++++++---------
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java |    8 ++++++--
 3 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index 57d4e74..62a95bd 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -269,8 +269,12 @@
         map.put("totalMoney", new BigDecimal(totalMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
         map.put("serverMoney", new BigDecimal(serverMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
         OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
-        Phone phone = phoneMapper.queryInfo(openCity.getId(), 1, 1);
-        map.put("emergencyCall", null != phone ? phone.getPhone() : "110");
+        if(null != openCity){
+            Phone phone = phoneMapper.queryInfo(openCity.getId(), 1, 1);
+            map.put("emergencyCall", null != phone ? phone.getPhone() : "110");
+        }else{
+            map.put("emergencyCall", "110");
+        }
         map.put("orders", JSON.toJSONString(order));
 
         System.out.println("map"+map);
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index 8845193..aa3f8ce 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -3100,13 +3100,24 @@
 			return ResultUtil.error("其他费用不能为负数");
 		}
 
-		/**
-		 * 先判断司机座位数是否符合出行人数
-		 */
-		LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(warpper.getLineShiftDriverId());
-		if (lineShiftDriver.getLaveSeat() < warpper.getPeopleNumber()) {
-			return ResultUtil.error("司机剩余座位数小于出行人数");
-		}
+        /**
+         * 先判断司机座位数是否符合出行人数
+         */
+        LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(warpper.getLineShiftDriverId());
+        if (warpper.getTravelMode() == 1) {//拼车判断座位数
+            if (lineShiftDriver.getLaveSeat() < warpper.getPeopleNumber()) {
+                return ResultUtil.error("司机剩余座位数小于出行人数");
+            }
+        } else {
+            if (lineShiftDriver.getLaveSeat() != lineShiftDriver.getTotalSeat()) {
+                return ResultUtil.error("司机车辆上已经有人占座了,不能下包车订单");
+            }
+            if (lineShiftDriver.getLaveSeat() == 0) {
+                return ResultUtil.error("司机车辆没有剩余空位了");
+            }
+        }
+
+
 		Driver driver = driverService.selectById(lineShiftDriver.getDriverId());
 		if (driver == null) {
 			return ResultUtil.error("司机信息不存在");
@@ -3211,6 +3222,7 @@
 		orderCrossCity.setLineId(lineSite.getLineId());
 		orderCrossCity.setCarId(driver.getCarId());
 		orderCrossCity.setOrderNum(this.getOrderNum(driver.getId(), warpper.getLineShiftDriverId()));
+        orderCrossCity.setTravelMode(warpper.getTravelMode());
 
 		// 下单地点
 		orderCrossCity.setPlacementLat(warpper.getPlacementLat());
@@ -3257,7 +3269,6 @@
 		orderCrossCity.setTravelTime(calendar.getTime());
 
 		orderCrossCity.setSnatchOrderTime(new Date());
-		orderCrossCity.setTravelMode(1); // 固定拼车
 		orderCrossCity.setIsDelete(1);
 		orderCrossCity.setIsReassign(1);
 		orderCrossCity.setLineShiftDriverId(warpper.getLineShiftDriverId());
@@ -3275,7 +3286,6 @@
 		}else{
 			orderCrossCity.setPromotion(1);
 		}
-
 		this.insert(orderCrossCity);
 
 		// 13. 更新司机状态
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/OrderCrossCityScanWarpper.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/OrderCrossCityScanWarpper.java
index d161546..d1fa20a 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/OrderCrossCityScanWarpper.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/OrderCrossCityScanWarpper.java
@@ -48,4 +48,7 @@
 
     @ApiModelProperty(value = "其他费用(远程费、高速费、等待费等),>=0,保留两位小数", required = false, dataType = "BigDecimal")
     private BigDecimal otherFee;
+
+    @ApiModelProperty(value = "出行方式(1=拼车,2=包车)", required = true, dataType = "int")
+    private Integer travelMode = 1;
 }

--
Gitblit v1.7.1