From 0ffd0dc267f12e7208ea4c636ff1bf6771d43ad1 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期一, 18 五月 2026 19:13:45 +0800
Subject: [PATCH] fix bugs
---
UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 82 +++++++++++++++++++++++++++++------------
1 files changed, 58 insertions(+), 24 deletions(-)
diff --git a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index 7353c59..5e4f752 100644
--- a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -32,6 +32,7 @@
import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
import com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl;
+import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -1398,36 +1399,69 @@
lineShiftDriver.setLaveSeatNumber("");
} else {//拼车
lineShiftDriver.setLaveSeat((lineShiftDriver.getLaveSeat() - orderCrossCity.getPeopleNumber()) < 0 ? 0 : lineShiftDriver.getLaveSeat() - orderCrossCity.getPeopleNumber());
- String[] split = orderCrossCity.getSeatNumber().split(",");
String[] split1 = lineShiftDriver.getLaveSeatNumber().split(",");
- String seatNumber = "";
- //先判断选中座位号和剩余座位号是否匹配
- for (String spl : split) {
- boolean b = true;
- for (String sp : split1) {
- if (ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)) {
- b = false;
- break;
- }
- }
- if (b) {
- throw new SystemException("您选中的" + spl + "号座位已被占用,请选择其他座位!");
- }
- }
- for (String sp : split1) {
- boolean b = true;
+ if (StringUtils.isNotEmpty(orderCrossCity.getSeatNumber())){
+ String[] split = orderCrossCity.getSeatNumber().split(",");
+ String seatNumber = "";
+ //先判断选中座位号和剩余座位号是否匹配
for (String spl : split) {
- if (ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)) {
- b = false;
- break;
+ boolean b = true;
+ for (String sp : split1) {
+ if (ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)) {
+ b = false;
+ break;
+ }
+ }
+ if (b) {
+ throw new SystemException("您选中的" + spl + "号座位已被占用,请选择其他座位!");
}
}
- if (b && ToolUtil.isNotEmpty(sp)) {
- seatNumber += (sp + ",");
+ for (String sp : split1) {
+ boolean b = true;
+ for (String spl : split) {
+ if (ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)) {
+ b = false;
+ break;
+ }
+ }
+ if (b && ToolUtil.isNotEmpty(sp)) {
+ seatNumber += (sp + ",");
+ }
}
+ lineShiftDriver.setLaveSeatNumber((ToolUtil.isNotEmpty(seatNumber) && seatNumber.length() > 0) ?
+ seatNumber.substring(0, seatNumber.length() - 1) : "");
+ } else {
+ // 用户未选座的情况,自动分配剩余座位的前peopleNumber个
+ StringBuilder assignedSeats = new StringBuilder();
+ StringBuilder remainingSeats = new StringBuilder();
+
+ for (int i = 0; i < split1.length; i++) {
+ if (ToolUtil.isEmpty(split1[i])) {
+ continue;
+ }
+
+ if (i < orderCrossCity.getPeopleNumber()) {
+ // 分配给当前订单的座位
+ if (assignedSeats.length() > 0) {
+ assignedSeats.append(",");
+ }
+ assignedSeats.append(split1[i]);
+ } else {
+ // 剩余的座位
+ if (remainingSeats.length() > 0) {
+ remainingSeats.append(",");
+ }
+ remainingSeats.append(split1[i]);
+ }
+ }
+
+ // 设置订单的座位号
+ orderCrossCity.setSeatNumber(assignedSeats.toString());
+ this.updateById(orderCrossCity);
+
+ // 更新班次的剩余座位号
+ lineShiftDriver.setLaveSeatNumber(remainingSeats.toString());
}
- lineShiftDriver.setLaveSeatNumber((ToolUtil.isNotEmpty(seatNumber) && seatNumber.length() > 0) ?
- seatNumber.substring(0, seatNumber.length() - 1) : "");
}
lineShiftDriverMapper.updateById(lineShiftDriver);
--
Gitblit v1.7.1