From faaf4ce0e117cd3f841fd06003e3dfdb2d0f7ebb Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 05 十一月 2025 15:13:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java |    7 +++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html                        |    3 +
 cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js                           |   29 +++++++-------
 cloud-server-other/src/main/java/com/dsh/other/controller/CodeCallBackController.java                  |   34 ++++++++++++++++-
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java                       |    6 ++
 cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java                          |    2 +
 cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js                      |    7 +++
 7 files changed, 71 insertions(+), 17 deletions(-)

diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
index 14acdf8..2ba8e6d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
@@ -540,6 +540,7 @@
         site.setInsertTime(new Date());
         site.setState(1);
         site.setOperatorId(store.getOperatorId());
+
 //        site.setOperatorId(UserExt.getUser().getObjectId());
 
         // 添加场地
@@ -554,6 +555,9 @@
         String area_id = data.getString("area_id");
         Integer integer = Integer.valueOf(area_id);
         site.setId(integer);
+        if (site.getIshalf()==2){
+            site.setHalfName("");
+        }
         Integer integer1 = siteClient.addSite1(site);
 //        Integer integer = Integer.valueOf(spaceId);
 
@@ -620,6 +624,9 @@
         site.setCityManagerId(store.getOperatorId());
         site.setInsertTime(new Date());
         site.setState(1);
+        if (site.getIshalf()==2){
+            site.setHalfName("");
+        }
         siteClient.addSite(site);
         // 保存价格数据
         if (site.getPriceDTOS() != null && !site.getPriceDTOS().isEmpty()) {
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html
index e673b40..fdf9793 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html
@@ -257,6 +257,8 @@
                     htmlStr += '<option value="' + data[i].id + '">' + data[i].name + '</option>'
                 }
                 $('#siteId').html(htmlStr);
+                $('#nextSite').html("");
+
             }, function (data) {
                 Feng.error("获取失败!" + data.responseJSON.message + "!");
             });
@@ -297,6 +299,7 @@
                     htmlStr += '<option value="' + data[i].id + '">' + data[i].name + '</option>'
                 }
                 $('#siteId').html(htmlStr);
+                $('#nextSite').html("");
             }, function (data) {
                 Feng.error("获取失败!" + data.responseJSON.message + "!");
             });
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
index 25d24db..56181ad 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
@@ -1336,7 +1336,6 @@
 TSite.removeTimeSlot = function(btn) {
     $(btn).closest('tr').remove();
 }
-
 /**
  * 检查时段是否重叠
  */
@@ -1346,12 +1345,12 @@
         var parts = time.split(':');
         return parseInt(parts[0]) * 60 + parseInt(parts[1]);
     };
-    
+
     var s1 = toMinutes(start1);
     var e1 = toMinutes(end1);
     var s2 = toMinutes(start2);
     var e2 = toMinutes(end2);
-    
+
     // 检查重叠:时段1的结束时间 > 时段2的开始时间 且 时段1的开始时间 < 时段2的结束时间
     return (e1 > s2 && s1 < e2);
 }
@@ -1362,7 +1361,7 @@
 TSite.validateNoTimeOverlap = function() {
     var bookingTimeSlots = [];
     var walkinTimeSlots = [];
-    
+
     // 收集订场时段
     $("#booking_price_tbody tr").each(function() {
         var index = $(this).data('index');
@@ -1372,7 +1371,7 @@
             bookingTimeSlots.push({start: startTime, end: endTime});
         }
     });
-    
+
     // 收集散客时段
     $("#walkin_price_tbody tr").each(function() {
         var index = $(this).data('index');
@@ -1382,7 +1381,7 @@
             walkinTimeSlots.push({start: startTime, end: endTime});
         }
     });
-    
+
     // 检查订场时段之间是否重叠
     for (var i = 0; i < bookingTimeSlots.length; i++) {
         for (var j = i + 1; j < bookingTimeSlots.length; j++) {
@@ -1390,14 +1389,14 @@
                 bookingTimeSlots[i].start, bookingTimeSlots[i].end,
                 bookingTimeSlots[j].start, bookingTimeSlots[j].end
             )) {
-                Feng.error("订场价格表中存在重叠的时段:" + 
+                Feng.error("订场价格表中存在重叠的时段:" +
                     bookingTimeSlots[i].start + "-" + bookingTimeSlots[i].end + " 与 " +
                     bookingTimeSlots[j].start + "-" + bookingTimeSlots[j].end);
                 return false;
             }
         }
     }
-    
+
     // 检查散客时段之间是否重叠
     for (var i = 0; i < walkinTimeSlots.length; i++) {
         for (var j = i + 1; j < walkinTimeSlots.length; j++) {
@@ -1405,17 +1404,16 @@
                 walkinTimeSlots[i].start, walkinTimeSlots[i].end,
                 walkinTimeSlots[j].start, walkinTimeSlots[j].end
             )) {
-                Feng.error("散客价格表中存在重叠的时段:" + 
+                Feng.error("散客价格表中存在重叠的时段:" +
                     walkinTimeSlots[i].start + "-" + walkinTimeSlots[i].end + " 与 " +
                     walkinTimeSlots[j].start + "-" + walkinTimeSlots[j].end);
                 return false;
             }
         }
     }
-    
+
     return true;
 }
-
 /**
  * 保存所有数据(基本信息+价格配置)
  */
@@ -1425,7 +1423,10 @@
         Feng.error("请先点击【生成价格表】按钮生成价格配置表!");
         return;
     }
-    
+    // 验证时段不重叠
+    if (!TSite.validateNoTimeOverlap()) {
+        return;
+    }
     // 验证人群选择
     var bookingChecked = $("#audience_booking").is(':checked');
     var walkinChecked = $("#audience_walkin").is(':checked');
@@ -1443,12 +1444,12 @@
             return;
         }
     }
-    
+
     // 验证时段不重叠
     if (!TSite.validateNoTimeOverlap()) {
         return;
     }
-    
+
     // 收集价格数据
     var priceDTOS = TSite.collectPriceData();
     
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
index 7f8d604..1ab07ce 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
@@ -435,6 +435,13 @@
     //     Feng.info("请上传场地责任有效期图片")
     //     return;
     // }
+    // 验证价格配置时间段不重叠
+    // 检查是否有价格配置数据(如果页面上有价格表)
+    if ($("#booking_price_tbody tr").length > 0 || $("#walkin_price_tbody tr").length > 0) {
+        if (!TSiteInfo.validateNoTimeOverlap()) {
+            return;
+        }
+    }
     if($('#courseVideo').val()==''){
         Feng.info("请上传消防及应急管理方案")
         return;
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/CodeCallBackController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/CodeCallBackController.java
index af2b9f9..a4c3862 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/CodeCallBackController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/CodeCallBackController.java
@@ -1,7 +1,12 @@
 package com.dsh.other.controller;
 
+import com.dsh.other.entity.SiteBooking;
+import com.dsh.other.model.QuerySiteTimes;
+import com.dsh.other.service.ISiteBookingService;
+import com.dsh.other.service.ISiteService;
 import com.dsh.other.util.ResultUtil;
 import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -10,6 +15,7 @@
 import javax.annotation.Resource;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -23,12 +29,16 @@
 @Api(tags = "硬件方调用 存储玩湃惠民卡使用记录")
 @RequestMapping("/base/code")
 public class CodeCallBackController {
+    @Autowired
+    private ISiteBookingService siteBookingService;
+    @Autowired
+    private ISiteService siteService;
     // 进场二维码新增参数codeType 1=订场 2=散客,3=门票,玩湃惠民卡codeType=4
     /**
      * 硬件开门后回调 是否可进场检查接口 sid门店id rid场地id
      */
     @GetMapping("/verify")
-    public ResultUtil verify(Integer codeType,Integer dataId, Integer rid, Integer sid) {
+    public ResultUtil verify(Integer codeType,Integer dataId, Integer rid, Integer sid) throws Exception {
         System.err.println("硬件开门后回调 校验是否可入场");
         System.err.println("codeType:"+codeType);
         System.err.println("dataId:"+dataId);
@@ -37,9 +47,29 @@
         Date date = new Date();
 
         // codeType二维码类型1=订场 2=散客,3=门票,玩湃惠民卡codeType=4 234需要校验能否进场
-        if (codeType==1){
+        if (codeType==1 || codeType==2){
+            // 将订单设置为已核销
+            SiteBooking siteBooking = siteBookingService.getById(dataId);
+            if (siteBooking==null){
+                System.err.println("未查询到订场记录"+dataId);
+                System.err.println("codeType"+codeType);
+                return ResultUtil.error("未查询到订场记录");
+            }else{
+                siteBooking.setStatus(3);
+                siteBookingService.updateById(siteBooking);
+            }
             return ResultUtil.success();
         }
+        if (codeType==3){
+            // 远程调用将门票设置为已使用 然后判断是否能入场
+            LocalDate now = LocalDate.now();
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            String day = simpleDateFormat.format(now);
+            List<QuerySiteTimes> querySiteTimes = siteService.querySiteTimes(rid, day, null, null, 2);
+        }
+        if (codeType==4){
+            // 判断能否入场
+        }
 
         return ResultUtil.success();
     }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
index 08b01fb..42c9ced 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -649,6 +649,8 @@
             // 进场二维码新增参数codeType 1=订场 2=散客,3=门票,玩湃惠民卡codeType=4
             map.put("codeType", targetAudience);
             map.put("dataId", siteBooking.getId());
+//            map.put("siteName", siteBooking.getNextName()==null?"":siteBooking.getNextName());
+//            map.put("halfName", siteBooking.getHalfName()==null?"":siteBooking.getHalfName());
             System.err.println("订场类型:"+targetAudience);
 
             map.put("name", site.getName());
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
index 1bb2d1f..63b537f 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -108,6 +108,7 @@
                 .stream().collect(Collectors.groupingBy(TSitePrice::getSiteId));
         List<QuerySiteListVo> querySiteListVos = this.baseMapper.querySiteList(querySiteList);
         for (QuerySiteListVo querySiteListVo : querySiteListVos) {
+            querySiteListVo.setPrice(0.0);
             if (ToolUtil.isEmpty(querySiteList.getLon())) {
                 querySiteListVo.setDistance(0D);
                 continue;
@@ -317,7 +318,10 @@
             if (querySiteTimes.getSelectable() == 1&&end.before(now)){
                 querySiteTimes.setSelectable(0);
                 querySiteTimes.setTimeAfter(1);
-
+            }
+            if (end.before(now)){
+                querySiteTimes.setSelectable(0);
+                querySiteTimes.setTimeAfter(1);
             }
             querySiteTimes.setSelectCount(count);
             if (flag == 0 &&  querySiteTimes.getSelectable() == 1) {

--
Gitblit v1.7.1