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 +++++++++----
 UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java         |   20 +++
 UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java                      |    7 +
 ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html                                  |   35 -----
 ManagementYKDTravel/guns-admin/src/main/webapp/static/modular/system/tSite/tSite_info.js                                 |   43 ++----
 ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html                                 |   35 -----
 UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml               |    8 +
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java |   92 ++++++++++----
 UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineSiteWarpper.java                 |   11 +
 9 files changed, 194 insertions(+), 139 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 6c589a9..aa425c1 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
@@ -27,6 +27,7 @@
 import com.stylefeng.guns.modular.system.warpper.MerchantCouponListWarpper;
 import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -684,35 +685,70 @@
             lineShiftDriver.setLaveSeatNumber("");
         }else{//拼车
             lineShiftDriver.setLaveSeat(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.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.substring(0, seatNumber.length() - 1) : "");
         }
         lineShiftDriverMapper.updateById(lineShiftDriver);
 
@@ -1607,11 +1643,11 @@
             return ResultUtil.error("该乘客有未完成的订单");
         }
 
-        // 9. 检查司机是否正在服务中
-        List<OrderCrossCity> orderCrossCities2 = orderCrossCityMapper.queryOrders(driverId, warpper.getLineShiftDriverId(), Arrays.asList(5));
-        if (orderCrossCities2.size() > 0) {
-            return ResultUtil.error("司机正在服务中");
-        }
+//        // 9. 检查司机是否正在服务中
+//        List<OrderCrossCity> orderCrossCities2 = orderCrossCityMapper.queryOrders(driverId, warpper.getLineShiftDriverId(), Arrays.asList(5));
+//        if (orderCrossCities2.size() > 0) {
+//            return ResultUtil.error("司机正在服务中");
+//        }
 
 //        // 10. 计算价格
 //        Map<String, String> distanceMap = gdMapElectricFenceUtil.getDistance(
diff --git a/ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html b/ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html
index 753e668..eadf0d9 100644
--- a/ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html
+++ b/ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html
@@ -44,42 +44,17 @@
                             <input type="text" class="form-control" id="areaName" name="areaName">
                         </div>
                         <label class="col-sm-1 control-label">类型:</label>
-                        <div class="col-sm-2"  style="display: flex;align-items: center;">
-                            <div class="radio radio-info radio-inline">
-                                <input type="radio" id="areaType1" value="1" name="areaType" checked="" onclick="TSiteInfoDlg.areaTypeClick(1)">
-                                <label for="areaType1"> 行政区域 </label>
-                            </div>
-                            <div class="radio radio-success radio-inline">
-                                <input type="radio" id="areaType2" value="2" name="areaType" onclick="TSiteInfoDlg.areaTypeClick(2)">
-                                <label for="areaType2"> 电子围栏 </label>
-                            </div>
+                        <div class="col-sm-2" style="display: flex;align-items: center;">
+                            <input type="hidden" id="areaType2" value="2" name="areaType">
+                            <span class="form-control-static">电子围栏</span>
                         </div>
                         <div class="col-sm-2">
                             <#button btnCss="info" name="添加" id="ensure" icon="fa-check" clickFun="TSiteInfoDlg.addArea()"/>
                         </div>
                     </div>
-                    <div class="form-group" id="areaType1Div">
-                        <label class="col-sm-2 control-label">行政区域:</label>
-                        <div class="col-sm-2">
-                            <select class="form-control" id="provinceCode1" onchange="TSiteInfoDlg.provinceChange1(this)">
-                                <option value="">选择省</option>
-                                @for(obj in provinceList){
-                                <option value="${obj.code}">${obj.name}</option>
-                                @}
-                            </select>
-                        </div>
-                        <div class="col-sm-2">
-                            <select class="form-control" id="cityCode1" onchange="TSiteInfoDlg.cityChange1(this)">
-                                <option value="">选择市</option>
-                            </select>
-                        </div>
-                        <div class="col-sm-2">
-                            <select class="form-control" id="districtCode1">
-                                <option value="">选择区</option>
-                            </select>
-                        </div>
+                    <div class="form-group" id="areaType1Div" style="display: none;">
                     </div>
-                    <div class="form-group" id="areaType2Div" style="display: none;">
+                    <div class="form-group" id="areaType2Div">
                         <label class="col-sm-2 control-label">电子围栏:</label>
                         <div class="col-sm-8">
                             <div id="container" style="height: 550px;width: 1000px;"></div>
diff --git a/ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html b/ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html
index b5cb585..a18a9ac 100644
--- a/ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html
+++ b/ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html
@@ -51,42 +51,17 @@
                             <input type="text" class="form-control" id="areaName" name="areaName">
                         </div>
                         <label class="col-sm-1 control-label">类型:</label>
-                        <div class="col-sm-2"  style="display: flex;align-items: center;">
-                            <div class="radio radio-info radio-inline">
-                                <input type="radio" id="areaType1" value="1" name="areaType" ${checked1} disabled onclick="TSiteInfoDlg.areaTypeClick(1)">
-                                <label for="areaType1"> 行政区域 </label>
-                            </div>
-                            <div class="radio radio-success radio-inline">
-                                <input type="radio" id="areaType2" value="2" name="areaType" ${checked2} disabled onclick="TSiteInfoDlg.areaTypeClick(2)">
-                                <label for="areaType2"> 电子围栏 </label>
-                            </div>
+                        <div class="col-sm-2" style="display: flex;align-items: center;">
+                            <input type="hidden" id="areaType2" value="2" name="areaType">
+                            <span class="form-control-static">电子围栏</span>
                         </div>
                         <div class="col-sm-2">
                             <#button btnCss="info" name="添加" id="ensure" icon="fa-check" clickFun="TSiteInfoDlg.addArea()"/>
                         </div>
                     </div>
-                    <div class="form-group" id="areaType1Div" style="display: ${type1};">
-                        <label class="col-sm-2 control-label">行政区域:</label>
-                        <div class="col-sm-2">
-                            <select class="form-control" id="provinceCode1" onchange="TSiteInfoDlg.provinceChange1(this)">
-                                <option value="">选择省</option>
-                                @for(obj in provinceList){
-                                <option value="${obj.code}">${obj.name}</option>
-                                @}
-                            </select>
-                        </div>
-                        <div class="col-sm-2">
-                            <select class="form-control" id="cityCode1" onchange="TSiteInfoDlg.cityChange1(this)">
-                                <option value="">选择市</option>
-                            </select>
-                        </div>
-                        <div class="col-sm-2">
-                            <select class="form-control" id="districtCode1">
-                                <option value="">选择区</option>
-                            </select>
-                        </div>
+                    <div class="form-group" id="areaType1Div" style="display: none;">
                     </div>
-                    <div class="form-group" id="areaType2Div" style="display: ${type2};">
+                    <div class="form-group" id="areaType2Div">
                         <label class="col-sm-2 control-label">电子围栏:</label>
                         <div class="col-sm-8">
                             <div id="container" style="height: 550px;width: 1000px;"></div>
diff --git a/ManagementYKDTravel/guns-admin/src/main/webapp/static/modular/system/tSite/tSite_info.js b/ManagementYKDTravel/guns-admin/src/main/webapp/static/modular/system/tSite/tSite_info.js
index 85ed5a7..00d0771 100644
--- a/ManagementYKDTravel/guns-admin/src/main/webapp/static/modular/system/tSite/tSite_info.js
+++ b/ManagementYKDTravel/guns-admin/src/main/webapp/static/modular/system/tSite/tSite_info.js
@@ -273,13 +273,8 @@
  * @param e
  */
 TSiteInfoDlg.areaTypeClick = function (e) {
-    if (1 == e){//行政区域
-        $("#areaType1Div").show();
-        $("#areaType2Div").hide();
-    } else if (2 == e){
-        $("#areaType2Div").show();
-        $("#areaType1Div").hide();
-    }
+    $("#areaType2Div").show();
+    $("#areaType1Div").hide();
 }
 
 //站点区域省改变
@@ -323,7 +318,7 @@
         Feng.error("区域名称不能为空");
         return;
     }
-    var areaType = $("input[name='areaType']:checked").val();
+    var areaType = $("input[name='areaType']").val();
     var b = false;
     $(".areaValueClass").each(function () {
         var areaType1 = $(this).find("input[name*='areaType1']").val();
@@ -336,23 +331,15 @@
         Feng.error("电子围栏和行政区域不能混合使用");
         return;
     }
-
-    if (1 == areaType){
-        var provinceCode1 = $("#provinceCode1").val();
-        var province1 = $("#provinceCode1 option:selected").text();
-        var cityCode1 = $("#cityCode1").val();
-        var city1 = $("#cityCode1 option:selected").text();
-        var districtCode1 = $("#districtCode1").val();
-        var district1 = $("#districtCode1 option:selected").text();
-        if ("" == provinceCode1){
-            Feng.error("请选择行政区域所属省");
-            return;
-        }
-    }else if (2 == areaType) {
-        if("" == coordinate){
-            Feng.error('请在地图上规划区域');
-            return;
-        }
+    var provinceCode1 = "";
+    var province1 = "";
+    var cityCode1 = "";
+    var city1 = "";
+    var districtCode1 = "";
+    var district1 = "";
+    if("" == coordinate){
+        Feng.error('请在地图上规划区域');
+        return;
     }
     var subArr=[];
     $(".areaValueClass").each(function () {
@@ -394,4 +381,8 @@
 //删除数据
 function deleteSub(e) {
     $(e).parent().parent().remove();
-}
\ No newline at end of file
+}
+
+$(function() {
+    TSiteInfoDlg.areaTypeClick(2);
+});
diff --git a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java
index a912504..a5b6961 100644
--- a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java
+++ b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java
@@ -29,4 +29,11 @@
      */
     List<Map<String, Object>> queryDriverBySelfTripId(@Param("selfTripId") Integer selfTripId, @Param("day") Date day,
                                                        @Param("driverId") Integer driverId);
+
+    /**
+     * 根据司机id查询企业是否开启选座(1=是,2=否)
+     * @param driverId 司机id
+     * @return 开关值
+     */
+    Integer queryChooseSeatByDriverId(@Param("driverId") Integer driverId);
 }
diff --git a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
index 790e5cd..4e92a50 100644
--- a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
+++ b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
@@ -93,4 +93,12 @@
         </if>
         limit 1
     </select>
+
+    <select id="queryChooseSeatByDriverId" resultType="java.lang.Integer">
+        select ifnull(c.isCanSelectSeat, 2)
+        from t_driver d
+        left join t_company c on c.id = ifnull(d.companyId, d.franchiseeId)
+        where d.id = #{driverId}
+        limit 1
+    </select>
 </mapper>
diff --git a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
index 51e56b2..acd8a8e 100644
--- a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
+++ b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
@@ -71,8 +71,19 @@
         if(c.getTimeInMillis() > sdf.parse(day).getTime()){
             throw new SystemException("日期不能小于当天");
         }
+
+        Boolean chooseSeat = false;
+        if (driverId != null) {
+            Integer chooseSeatValue = lineSiteMapper.queryChooseSeatByDriverId(driverId);
+            chooseSeat = (chooseSeatValue != null && chooseSeatValue.intValue() == 1);
+        }
+
         if (lineId != null && lineId < 0) {
-            return lineSiteMapper.queryDriverBySelfTripId(Math.abs(lineId), sdf.parse(day), driverId);
+            List<Map<String, Object>> result = lineSiteMapper.queryDriverBySelfTripId(Math.abs(lineId), sdf.parse(day), driverId);
+            for (Map<String, Object> map : result) {
+                map.put("chooseSeat", chooseSeat);
+            }
+            return result;
         }
         List<Map<String, Object>> list = new ArrayList<>();
         List<LineShift> lineShifts = lineShiftMapper.queryByLineId(lineId);
@@ -128,6 +139,12 @@
                     String content = map.get("content").toString();
                     JSONObject jsonObject = JSON.parseObject(content);
                     map.put("price", jsonObject.getString("num1"));
+                    if (chooseSeat){
+                        map.put("chooseSeat", chooseSeat);
+                    }else if (driverId == null){
+                        Integer chooseSeatValue = lineSiteMapper.queryChooseSeatByDriverId(Integer.parseInt(map.get("driverId").toString()));
+                        map.put("chooseSeat", chooseSeatValue != null && chooseSeatValue.intValue() == 1);
+                    }
                     data = map;
                     list.add(data);
                 }
@@ -135,6 +152,7 @@
             if(b){
                 data.put("id", lineShift.getId());
                 data.put("startTime", lineShift.getStartTime() + "-" + lineShift.getEndTime());
+                data.put("chooseSeat", chooseSeat);
                 list.add(data);
             }
         }
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);
 		
diff --git a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineSiteWarpper.java b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineSiteWarpper.java
index 7f96b62..9b73c82 100644
--- a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineSiteWarpper.java
+++ b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineSiteWarpper.java
@@ -43,6 +43,8 @@
     private String laveSeatNumber;
     @ApiModelProperty("剩余座位数")
     private Integer laveSeat;
+    @ApiModelProperty("是否可以选座")
+    private Boolean chooseSeat;
 
 
     public Integer getId() {
@@ -181,6 +183,14 @@
         this.laveSeat = laveSeat;
     }
 
+    public Boolean getChooseSeat() {
+        return chooseSeat;
+    }
+
+    public void setChooseSeat(Boolean chooseSeat) {
+        this.chooseSeat = chooseSeat;
+    }
+
     @Override
     public String toString() {
         return "LineSiteWarpper{" +
@@ -226,6 +236,7 @@
                     lineSiteWarpper.setServerCarModelId(null != map.get("serverCarModelId") ? Integer.valueOf(map.get("serverCarModelId").toString()) : 0);
                     lineSiteWarpper.setLaveSeatNumber(null != map.get("laveSeatNumber") ? map.get("laveSeatNumber").toString() : "");
                     lineSiteWarpper.setLaveSeat(null != map.get("laveSeat") ? Integer.valueOf(map.get("laveSeat").toString()) : 0);
+                    lineSiteWarpper.setChooseSeat(null != map.get("chooseSeat") ? Boolean.valueOf(map.get("chooseSeat").toString()) : false);
                     data.add(lineSiteWarpper);
                 }
             }

--
Gitblit v1.7.1