From 6771fff413935485b5dce61769f133a44533d15c Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期六, 30 五月 2026 14:35:14 +0800
Subject: [PATCH] fix

---
 ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 50 insertions(+), 6 deletions(-)

diff --git a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java
index c3e64a8..47d814b 100644
--- a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java
+++ b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java
@@ -244,6 +244,9 @@
     @ResponseBody
     public ResultUtil add(TLine tLine,Integer startSiteId,Integer endSiteId,@RequestParam String subArr,
                           @RequestParam String shuArr, @RequestParam(required = false) String destArr) {
+        if (!hasCommissionSetting(tLine.getOutSetting())) {
+            return ResultUtil.error("请设置司机抽成");
+        }
         JSONArray jsonArray1 = JSON.parseArray(shuArr);
         int size1 = jsonArray1.size();
         for (int i = 0; i < size1; i++) {
@@ -251,9 +254,9 @@
             String shiftTime = jsonObject.getString("shiftTime");
             if (SinataUtil.isNotEmpty(shiftTime)){
                 String[] timeArray = shiftTime.split(" - ");
-                String startTime = timeArray[0].split(":")[0];
-                String endTime = timeArray[1].split(":")[0];
-                if(Integer.valueOf(startTime) >= Integer.valueOf(endTime)){
+                String startTime = timeArray[0];
+                String endTime = timeArray[1];
+                if(startTime.compareTo(endTime) >= 0){
                     return ResultUtil.error("班次结束时间不能小于开始时间");
                 }
             }
@@ -766,6 +769,9 @@
     @ResponseBody
     public ResultUtil update(TLine tLine,Integer startSiteId,Integer endSiteId,@RequestParam String subArr,
                              @RequestParam String shuArr, @RequestParam(required = false) String destArr) {
+        if (!hasCommissionSetting(tLine.getOutSetting())) {
+            return ResultUtil.error("请设置司机抽成");
+        }
         JSONArray jsonArray1 = JSON.parseArray(shuArr);
         int size1 = jsonArray1.size();
         for (int i = 0; i < size1; i++) {
@@ -773,9 +779,9 @@
             String shiftTime = jsonObject.getString("shiftTime");
             if (SinataUtil.isNotEmpty(shiftTime)){
                 String[] timeArray = shiftTime.split(" - ");
-                String startTime = timeArray[0].split(":")[0];
-                String endTime = timeArray[1].split(":")[0];
-                if(Integer.valueOf(startTime) >= Integer.valueOf(endTime)){
+                String startTime = timeArray[0];
+                String endTime = timeArray[1];
+                if(startTime.compareTo(endTime) >= 0){
                     return ResultUtil.error("班次结束时间不能小于开始时间");
                 }
             }
@@ -841,6 +847,44 @@
     /**
      * 添加线路目的地配置
      */
+    private boolean hasCommissionSetting(String outSetting) {
+        if (SinataUtil.isEmpty(outSetting)) {
+            return false;
+        }
+        try {
+            JSONObject config = JSON.parseObject(outSetting);
+            JSONArray rules = config.getJSONArray("rules");
+            if (hasCommissionRule(rules)) {
+                return true;
+            }
+            JSONArray timeRules = config.getJSONArray("time_rules");
+            if (timeRules != null) {
+                for (int i = 0; i < timeRules.size(); i++) {
+                    JSONArray oneTimeRules = timeRules.getJSONArray(i);
+                    if (hasCommissionRule(oneTimeRules)) {
+                        return true;
+                    }
+                }
+            }
+        } catch (Exception e) {
+            return false;
+        }
+        return false;
+    }
+
+    private boolean hasCommissionRule(JSONArray rules) {
+        if (rules == null || rules.size() <= 0) {
+            return false;
+        }
+        for (int i = 0; i < rules.size(); i++) {
+            JSONObject rule = rules.getJSONObject(i);
+            if (rule != null && rule.containsKey("percent") && SinataUtil.isNotEmpty(rule.getString("percent"))) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     private ResultUtil addDestination(Integer lineId, String destArr) {
         if (SinataUtil.isEmpty(destArr)) {
             return ResultUtil.error("请至少设置一个目的地");

--
Gitblit v1.7.1