From 270a3c0208001e2db9577cb6d7d4fd7ec646dfd8 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 04 十一月 2025 21:27:51 +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  |    9 +
 cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java                                   |    3 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java                   |   15 ++
 cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java                   |   64 +++++----
 cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java                           |   11 -
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TSiteServiceImpl.java    |   29 +++-
 cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js                        |    9 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html                       |    4 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java               |    7 +
 cloud-server-other/src/main/java/com/dsh/other/controller/CodeCallBackController.java                   |    8 
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java                        |   26 +++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java |  120 ++++++++++---------
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html                        |   17 --
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html                        |   27 ++++
 cloud-server-management/src/main/webapp/static/modular/system/ball/ball_info.js                         |    5 
 15 files changed, 224 insertions(+), 130 deletions(-)

diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
index f1ae239..73fd2a4 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
@@ -754,8 +754,19 @@
                         coupon.setIntegral(BigDecimal.valueOf(dataVo.getRequiredPoints()));
                         break;
                     case 2:
-                        coupon.setIntegral(BigDecimal.valueOf(dataVo.getRequiredPoints()));
-                        coupon.setCash(dataVo.getRequiredCash());
+                        if (dataVo.getRequiredCash() != null){
+                            coupon.setCash(dataVo.getRequiredCash());
+                        }else{
+                            coupon.setCash(BigDecimal.ZERO);
+
+                        }
+                        if (dataVo.getRequiredPoints() != null){
+                            coupon.setIntegral(BigDecimal.valueOf(dataVo.getRequiredPoints()));
+
+                        }else{
+                            coupon.setIntegral(BigDecimal.ZERO);
+
+                        }
                         break;
                     case 3:
                         coupon.setCash(dataVo.getRequiredCash());
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java
index 6188bfa..b4aa058 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java
@@ -391,10 +391,10 @@
                                 if (new Date().after(start) && new Date().before(end)) {
 //                                    
                                     Date date1 = new Date();
-                                    jsonObject2.put("start_time", simpleDateFormat1.format( date1));
+                                    jsonObject2.put("start_time", date1.getTime()/ 1000);
                                     date1.setTime(date1.getTime() + 30 * 1000);
                                     if (start.before(end)) {
-                                        jsonObject2.put("end_time", simpleDateFormat1.format( date1));
+                                        jsonObject2.put("end_time", date1.getTime()/ 1000);
                                         jsonArray.add(jsonObject2);
                                     }
                                 }
@@ -405,8 +405,8 @@
                             JSONObject jsonObject3 = new JSONObject();
                             Date date1 = new Date();
                             date1.setTime(date1.getTime() - 300 * 1000);
-                            jsonObject3.put("end_time", simpleDateFormat1.format( date1));
-                            jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+                            jsonObject3.put("end_time", date1.getTime()/ 1000);
+                            jsonObject3.put("start_time", date1.getTime()/ 1000);
 
                             jsonArray.add(jsonObject3);
                         }
@@ -418,8 +418,8 @@
                         JSONObject jsonObject3 = new JSONObject();
                         Date date1 = new Date();
                         date1.setTime(date1.getTime() - 300 * 1000);
-                        jsonObject3.put("end_time", simpleDateFormat1.format( date1));
-                        jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+                        jsonObject3.put("end_time", date1.getTime()/ 1000);
+                        jsonObject3.put("start_time", date1.getTime()/ 1000);
 
                         jsonArray.add(jsonObject3);
                     }
@@ -429,13 +429,15 @@
                     TStudent tStudent = tStudents.stream().filter(e -> e.getId().equals(Integer.valueOf(payHuimin.getStudentId().split(",")[0]))).findFirst().orElse(null);
                     if (tStudent!=null){
                         huiminCardVO1.setStudentName(tStudent.getName());
-                        String temp = "{\"id\":"+payHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+payHuimin.getId()+"}";
+//                        String temp = "{\"id\":"+payHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+payHuimin.getId()+"}";
+                        String temp = "{\"id\":"+payHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 +"}";
                         huiminCardVO1.setQrCode(temp);
 
                     }else{
                         huiminCardVO1.setStudentName("");
 
-                        String temp = "{\"id\":"+payHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+payHuimin.getId()+"}";
+//                        String temp = "{\"id\":"+payHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+payHuimin.getId()+"}";
+                        String temp = "{\"id\":"+payHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 +"}";
                         huiminCardVO1.setQrCode(temp);
                     }
                     huiminCardVOS.add(huiminCardVO1);
@@ -564,10 +566,10 @@
                                     if (new Date().after(start) && new Date().before(end)) {
 //
                                         Date date1 = new Date();
-                                        jsonObject2.put("start_time", simpleDateFormat1.format( date1));
+                                        jsonObject2.put("start_time", date1.getTime()/ 1000);
                                         date1.setTime(date1.getTime() + 30 * 1000);
                                         if (start.before(end)) {
-                                            jsonObject2.put("end_time", simpleDateFormat1.format( date1));
+                                            jsonObject2.put("end_time", date1.getTime()/ 1000);
                                             jsonArray.add(jsonObject2);
                                         }
                                     }
@@ -578,8 +580,8 @@
                                 JSONObject jsonObject3 = new JSONObject();
                                 Date date1 = new Date();
                                 date1.setTime(date1.getTime() - 300 * 1000);
-                                jsonObject3.put("end_time", simpleDateFormat1.format( date1));
-                                jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+                                jsonObject3.put("end_time", date1.getTime()/ 1000);
+                                jsonObject3.put("start_time", date1.getTime()/ 1000);
 
                                 jsonArray.add(jsonObject3);
                             }
@@ -590,8 +592,8 @@
                             JSONObject jsonObject3 = new JSONObject();
                             Date date1 = new Date();
                             date1.setTime(date1.getTime() - 300 * 1000);
-                            jsonObject3.put("end_time", simpleDateFormat1.format( date1));
-                            jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+                            jsonObject3.put("end_time", date1.getTime()/ 1000);
+                            jsonObject3.put("start_time", date1.getTime()/ 1000);
 
                             jsonArray.add(jsonObject3);
                         }
@@ -697,10 +699,10 @@
                                 if (new Date().after(start) && new Date().before(end)) {
 //                                    
                                     Date date1 = new Date();
-                                    jsonObject2.put("start_time", simpleDateFormat1.format( date1));
+                                    jsonObject2.put("start_time", date1.getTime()/ 1000);
                                     date1.setTime(date1.getTime() + 30 * 1000);
                                     if (start.before(end)) {
-                                        jsonObject2.put("end_time", simpleDateFormat1.format( date1));
+                                        jsonObject2.put("end_time", date1.getTime()/ 1000);
                                         jsonArray.add(jsonObject2);
                                     }
                                 }
@@ -711,8 +713,8 @@
                             JSONObject jsonObject3 = new JSONObject();
                             Date date1 = new Date();
                             date1.setTime(date1.getTime() - 300 * 1000);
-                            jsonObject3.put("end_time", simpleDateFormat1.format( date1));
-                            jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+                            jsonObject3.put("end_time", date1.getTime()/ 1000);
+                            jsonObject3.put("start_time", date1.getTime()/ 1000);
 
                             jsonArray.add(jsonObject3);
                         }
@@ -723,8 +725,8 @@
                         JSONObject jsonObject3 = new JSONObject();
                         Date date1 = new Date();
                         date1.setTime(date1.getTime() - 300 * 1000);
-                        jsonObject3.put("end_time", simpleDateFormat1.format( date1));
-                        jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+                        jsonObject3.put("end_time", date1.getTime()/ 1000);
+                        jsonObject3.put("start_time", date1.getTime()/ 1000);
 
                         jsonArray.add(jsonObject3);
                     }
@@ -732,11 +734,13 @@
                 TStudent tStudent = tStudents.stream().filter(e -> e.getId().equals(studentId)).findFirst().orElse(null);
                 if (tStudent!=null){
                     huiminCardStudentVO.setStudentName(tStudent.getName());
-                    String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+tPayHuimin.getId()+"}";
+//                    String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+tPayHuimin.getId()+"}";
+                    String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 +"}";
                     huiminCardStudentVO.setQrCode(temp);
                 }else{
                     huiminCardStudentVO.setStudentName("");
-                    String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+tPayHuimin.getId()+"}";
+//                    String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+tPayHuimin.getId()+"}";
+                    String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 +"}";
                     huiminCardStudentVO.setQrCode(temp);
                 }
 
@@ -965,10 +969,10 @@
                             if (new Date().after(start) && new Date().before(end)) {
 //                                    
                                 Date date1 = new Date();
-                                jsonObject2.put("start_time", simpleDateFormat1.format( date1));
+                                jsonObject2.put("start_time", date1.getTime()/ 1000);
                                 date1.setTime(date1.getTime() + 30 * 1000);
                                 if (start.before(end)) {
-                                    jsonObject2.put("end_time", simpleDateFormat1.format( date1));
+                                    jsonObject2.put("end_time", date1.getTime()/ 1000);
                                     jsonArray.add(jsonObject2);
                                 }
                             }
@@ -979,8 +983,8 @@
                         JSONObject jsonObject3 = new JSONObject();
                         Date date1 = new Date();
                         date1.setTime(date1.getTime() - 300 * 1000);
-                        jsonObject3.put("end_time", simpleDateFormat1.format( date1));
-                        jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+                        jsonObject3.put("end_time", date1.getTime()/ 1000);
+                        jsonObject3.put("start_time", date1.getTime()/ 1000);
 
                         jsonArray.add(jsonObject3);
                     }
@@ -991,14 +995,15 @@
                     JSONObject jsonObject3 = new JSONObject();
                     Date date1 = new Date();
                     date1.setTime(date1.getTime() - 300 * 1000);
-                    jsonObject3.put("end_time", simpleDateFormat1.format( date1));
-                    jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+                    jsonObject3.put("end_time", date1.getTime()/ 1000);
+                    jsonObject3.put("start_time", date1.getTime()/ 1000);
 
                     jsonArray.add(jsonObject3);
                 }
             }
 
-            String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tPayHuimin.getStudentId().split(",")[0] + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+tPayHuimin.getId()+"}";
+//            String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tPayHuimin.getStudentId().split(",")[0] + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + ",\"codeType\":"+4+"\"dataId\":"+tPayHuimin.getId()+"}";
+            String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tPayHuimin.getStudentId().split(",")[0] + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 +"}";
             myHuiminCardDetailVO.setQrCode(temp);
             myHuiminCardDetailVO.setCardId(tPayHuimin.getCardId());
             myHuiminCardDetailVO.setHuiminCard(byId);
@@ -1014,6 +1019,7 @@
         }
     }
 
+
     /**
      * 获取添加人员、选择人员说明文案
      */
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
index 6d2402f..b1f1fcb 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
@@ -169,6 +169,13 @@
             if (null == uid) {
                 return ResultUtil.tokenErr();
             }
+            if(!StringUtils.hasLength(lon)){
+                return ResultUtil.success(new ArrayList<>());
+            }
+            if (lon.equals("0.0")){
+                return ResultUtil.success(new ArrayList<>());
+
+            }
             List<CouponListVo> listVos = userCouponService.querySiteCouponList(uid, siteId, price, lon, lat);
             return ResultUtil.success(listVos);
         } catch (Exception e) {
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 2bd1a66..14acdf8 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
@@ -354,7 +354,9 @@
         }
         model.addAttribute("halfNames",strings2);
         model.addAttribute("halfName",halfName);
-        
+        // 显式传递运营商ID和是否可预约字段,确保回显正确
+        model.addAttribute("operatorId", site.getOperatorId());
+        model.addAttribute("reservation", site.getReservation());
         // 添加价格配置相关字段
         TSite fullSite = siteService.getById(id);
         model.addAttribute("targetAudience", fullSite.getTargetAudience());
@@ -466,6 +468,11 @@
         model.addAttribute("objectType",objectType);
         model.addAttribute("objectId",objectId);
         model.addAttribute("stores",stores);
+        // 显式传递运营商ID和是否可预约字段,确保回显正确
+        model.addAttribute("operatorId", site.getOperatorId());
+        model.addAttribute("reservation", site.getReservation());
+        model.addAttribute("targetAudience", site.getTargetAudience());
+        model.addAttribute("walkinCapacity", site.getWalkinCapacity());
         return PREFIX + "TSite_edit.html";
     }
     /**
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
index 40475ec..5cfb963 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
@@ -898,73 +898,80 @@
         }
         System.out.println("========strings1=====" + strings1);
 
-//时间段
-        List<String> strings = new ArrayList<>();
-//        List<SiteBooking> siteBookings = siteClient.listBooks(book.getSiteId());
-        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", book.getSiteId()).like("times", split1[0].substring(0, 10)));
-        System.out.println("=======siteBookings======" + siteBookings);
-        for (SiteBooking siteBooking : siteBookings) {
-            String[] split = siteBooking.getTimes().split(";");
-            for (String s : split) {
-
-                String convertedValue = s.substring(11);
-                strings.add(convertedValue);
-            }
-
-        }
-        System.out.println("======strings=======" + strings);
+////时间段
+//        List<String> strings = new ArrayList<>();
+////        List<SiteBooking> siteBookings = siteClient.listBooks(book.getSiteId());
+//        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", book.getSiteId()).like("times", split1[0].substring(0, 10)));
+//        System.out.println("=======siteBookings======" + siteBookings);
+//        for (SiteBooking siteBooking : siteBookings) {
+//            String[] split = siteBooking.getTimes().split(";");
+//            for (String s : split) {
+//
+//                String convertedValue = s.substring(11);
+//                strings.add(convertedValue);
+//            }
+//
+//        }
+//        System.out.println("======strings=======" + strings);
 
 
         List<OrderDto> timeRanges = new ArrayList<>();
 
         TSite site = siteService.getById(book.getSiteId());
         System.out.println("================" + site);
-        String appointmentStartTime = site.getAppointmentStartTime();
-        String appointmentEndTime = site.getAppointmentEndTime();
-        //生成用于比较日期是否超过的当前日期
-        LocalDate currentDate = LocalDate.now();
-        LocalDate parsedDate = LocalDate.parse(split1[0].substring(0, 10), DateTimeFormatter.ISO_DATE);
-        boolean isAfterCurrentDate = parsedDate.isBefore(currentDate);
-        System.out.println("是否超过当前日期" + isAfterCurrentDate);
-        String currentTime = appointmentStartTime;
-        while (currentTime.compareTo(appointmentEndTime) < 0) {
-            String nextTime = getNextTime(currentTime);
-
-
-            String timeRange = currentTime + "-" + nextTime;
-            OrderDto orderDto = new OrderDto();
-            orderDto.setTime(timeRange);
-
-            LocalTime currentTime1 = LocalTime.now();
-            LocalTime targetTime = LocalTime.parse(currentTime);
-
-            boolean hasExceeded = currentTime1.isAfter(targetTime);
-            //是否超过当前时间
-            if (hasExceeded) {
-                orderDto.setState(0);
-            }
-            //是否已经预定
-            if (strings.contains(timeRange)) {
-                orderDto.setState(0);
-            }
-            //日期是否超过
-            if (isAfterCurrentDate) {
-                orderDto.setState(0);
-            }
-            //是否是当前场地当前日期预定的
-            if (strings1.contains(timeRange)) {
-                orderDto.setState(1);
-            }
-
-
-            timeRanges.add(orderDto);
-            currentTime = nextTime;
-        }
+//        String appointmentStartTime = site.getAppointmentStartTime();
+//        String appointmentEndTime = site.getAppointmentEndTime();
+//        //生成用于比较日期是否超过的当前日期
+//        LocalDate currentDate = LocalDate.now();
+//        LocalDate parsedDate = LocalDate.parse(split1[0].substring(0, 10), DateTimeFormatter.ISO_DATE);
+//        boolean isAfterCurrentDate = parsedDate.isBefore(currentDate);
+//        System.out.println("是否超过当前日期" + isAfterCurrentDate);
+//        String currentTime = appointmentStartTime;
+//        while (currentTime.compareTo(appointmentEndTime) < 0) {
+//            String nextTime = getNextTime(currentTime);
+//
+//
+//            String timeRange = currentTime + "-" + nextTime;
+//            OrderDto orderDto = new OrderDto();
+//            orderDto.setTime(timeRange);
+//
+//            LocalTime currentTime1 = LocalTime.now();
+//            LocalTime targetTime = LocalTime.parse(currentTime);
+//
+//            boolean hasExceeded = currentTime1.isAfter(targetTime);
+//            //是否超过当前时间
+//            if (hasExceeded) {
+//                orderDto.setState(0);
+//            }
+//            //是否已经预定
+//            if (strings.contains(timeRange)) {
+//                orderDto.setState(0);
+//            }
+//            //日期是否超过
+//            if (isAfterCurrentDate) {
+//                orderDto.setState(0);
+//            }
+//            //是否是当前场地当前日期预定的
+//            if (strings1.contains(timeRange)) {
+//                orderDto.setState(1);
+//            }
+//            timeRanges.add(orderDto);
+//            currentTime = nextTime;
+//        }
         System.out.println("-------------" + timeRanges);
         model.addAttribute("timeRanges", timeRanges);
         System.out.println("======timeRanges========" + timeRanges);
         Integer objectType = UserExt.getUser().getObjectType();
         model.addAttribute("province", book.getProvince());
+        String yuyueTime = "";
+        if (strings1.size()>1){
+            String start = strings1.get(0).split("-")[0];
+            String end = strings1.get(strings1.size()-1).split("-")[1];
+            yuyueTime = start +"-"+end;
+        }else{
+            yuyueTime = strings1.get(0);
+        }
+        model.addAttribute("yuyueTime", yuyueTime);
         model.addAttribute("city", book.getCity());
         model.addAttribute("store", storeService.getById(book.getStoreId()).getName());
         model.addAttribute("siteName", siteService.getById(book.getSiteId()).getName());
@@ -1522,6 +1529,7 @@
         String money = siteBooking.getMoney();
         String[] moneys = money.split(",");
         siteBooking.setPayMoney(Double.valueOf(moneys[0]));
+        siteBooking.setMoney(money);
         // 查询当前预约人是否是会员
         String phone = siteBooking.getPhone();
         String booker = siteBooking.getBooker();
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TSiteServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TSiteServiceImpl.java
index 84e2622..97b8db3 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TSiteServiceImpl.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TSiteServiceImpl.java
@@ -101,6 +101,7 @@
         List<TSitePrice> sitePrice = itSitePriceService.list(tSitePriceLambdaQueryWrapper);
 
 
+        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
         for (TSitePrice tSitePrice : sitePrice) {
             QuerySiteTimes querySiteTimes = new QuerySiteTimes();
             querySiteTimes.setTime(tSitePrice.getStartTime().substring(0, tSitePrice.getStartTime().length() - 3) + "-" + tSitePrice.getEndTime().substring(0, tSitePrice.getEndTime().length() - 3));
@@ -113,6 +114,9 @@
             String temp = tSitePrice.getStartTime().substring(0, tSitePrice.getStartTime().length() - 3) + "-" + tSitePrice.getEndTime().substring(0, tSitePrice.getEndTime().length() - 3);
             String timePriceStart = day + " " + tSitePrice.getStartTime().substring(0, tSitePrice.getStartTime().length() - 3);
             String timePriceEnd = day + " " + tSitePrice.getEndTime().substring(0, tSitePrice.getEndTime().length() - 3);
+            Date now = new Date();
+            Date start = simpleDateFormat1.parse(timePriceStart);
+            Date end = simpleDateFormat1.parse(timePriceEnd);
             // 已经预约了 判断是散客模式还是订场模式
             Integer flag = 0;
             // 散客预约人数
@@ -124,6 +128,8 @@
                 String[] split = timeRange.split("-");
                 String bookingStart = day + " " + split[0];
                 String bookingEnd = day + " " + split[1];
+
+
                 if (!isTimePeriodsIntersect(timePriceStart, timePriceEnd, bookingStart, bookingEnd)) {
                     // 不相交
                 } else {
@@ -136,23 +142,34 @@
                     }
                     count++;
                 }
+
+            }
+            if (querySiteTimes.getSelectable() == 1&&end.before(now)){
+                querySiteTimes.setSelectable(0);
             }
             querySiteTimes.setSelectCount(count);
-            if (flag == 0) {
+            if (flag == 0 &&  querySiteTimes.getSelectable() == 1) {
                 // 当前时间段还没有预约
                 Integer walkinCapacity = site.getWalkinCapacity();
                 // 计算散客预约人数和最大散客容纳数
                 System.err.println("预约人数" + count);
                 System.err.println("最大散客容纳数" + walkinCapacity);
                 if (walkinCapacity <= count) {
-                    // 不可预约 也不能散客
-                    System.err.println("不可预约 也不能散客");
-                    querySiteTimes.setSelectable(0);
-                    querySiteTimes.setIsReserve(0);
+                    if (targetAudience==1 && walkinCapacity!=0){
+                        // 不可预约
+                        System.err.println("不可预约 也不能散客");
+                        querySiteTimes.setSelectable(0);
+                        querySiteTimes.setIsReserve(0);
+                    }else{
+                        // 不能散客
+                        System.err.println("不可预约 也不能散客");
+                        querySiteTimes.setSelectable(0);
+                        querySiteTimes.setIsReserve(0);
+                    }
+
                 }else{
                     if (targetAudience==2){
                         // 散客只能预约当前时间段
-                        Date now = new Date();
                         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                         String nowStr = simpleDateFormat.format(now);
                         // 判断当前时间有没有在timePriceStart和timePriceEnd之间
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html
index 512135e..05ec304 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html
@@ -84,21 +84,8 @@
 
                 <div class="form-group">
                     <label class="col-sm-3 control-label">*预约时间段:</label>
-                    <div class="col-sm-5" id="ttt1" disabled="">
-                        <div class="layui-btn-group" id="ttt2">
-
-
-                        </div>
-
-                        <div class="layui-btn-group" id="ttt3">
-
-                            @for(obj in timeRanges){
-                            <button  disabled name="has" type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary' disabled style='background-color: red'" : obj.state == 1 ? "class = 'layui-btn layui-btn-primary green-button'" : "class = 'layui-btn layui-btn-primary'"} onclick="toggleColor(this)">${obj.time}</button>
-                            <!--                            <button type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary' disabled style='background-color: red'" : "class = 'layui-btn layui-btn-primary' "} onclick="toggleColor(this)">${obj.time}</button>-->
-                            <!--                            <button type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary green-button'" : "class = 'layui-btn layui-btn-primary'"} onclick="toggleColor(this)">${obj.time}</button>-->
-                            @}
-                        </div>
-
+                    <div class="col-sm-4">
+                    <input class="form-control" id="yuyueTime" name="yuyueTime" type="text" value="${yuyueTime}" disabled >
                     </div>
                 </div>
 
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html
index 9b192cf..2e0c81e 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html
@@ -313,14 +313,16 @@
                         <div class="form-group">
                             <label class="col-sm-3 control-label head-scu-label">*实景图片(请上传不超过五张图片): </label>
                             <div class="col-sm-2" style="width: 100%;margin-left: 11%;margin-top: 1%">
+                                <!-- 修改 #selectedCode 中的 el-upload 组件,添加 :before-upload 属性 -->
                                 <el-upload
-                                        :limit="5"
+                                        ref="upload"
                                         class="avatar-uploader"
                                         action="/tCouponManage/uploadPic"
                                         list-type="picture-card"
                                         accept="."
                                         :on-success="handleAvatarSuccess"
-                                        :on-remove="handleRemove">
+                                        :on-remove="handleRemove"
+                                        :before-upload="beforeUpload">
                                     <i class="el-icon-plus"></i>
                                 </el-upload>
                                 <el-dialog :visible.sync="dialogVisible">
@@ -518,6 +520,27 @@
             dialogVisible: false
         },
         methods: {
+            beforeUpload(file) {
+                // 检查当前已上传的文件数量
+                const currentFiles = this.$refs.upload ? this.$refs.upload.fileList.length : 0;
+
+                console.log("数量"+currentFiles)
+                console.log(TSite.goodsPicArray.length)
+                // 如果已达到限制数量,则阻止上传并显示提示
+                if (TSite.goodsPicArray.length>=5) {
+                    this.$message.warning('最多只能上传5张图片!');
+                    return false;
+                }
+
+                // 检查文件大小
+                const isLt2M = file.size / 1024 / 1024 < 10;
+                if (!isLt2M) {
+                    this.$message.error('上传图片大小不能超过 10MB!');
+                    return false;
+                }
+
+                return true;
+            },
             handleAvatarSuccess(res, file) {
                 TSite.goodsPicArray.push(file);
             },
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html
index 2ecee07..13c4ffc 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html
@@ -238,8 +238,8 @@
         <div class="form-horizontal" id="carInfoForm">
 
             <input id="type_" value="${list.ishalf}" hidden>
-            <input id="reservation" value="${reservation!''}" hidden>
-            <input id="operatorIdValue" value="${operatorId!''}" hidden>
+            <input id="reservation" value="${reservation}" hidden>
+            <input id="operatorIdValue" value="${operatorId}" hidden>
             <input id="objectType" value="${objectType}" hidden>
             <input type="hidden" id="siteId" value="${list.id}">
             <input type="hidden" id="targetAudience" value="${targetAudience}">
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/ball_info.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/ball_info.js
index eaad8d9..0448814 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/ball/ball_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/ball_info.js
@@ -61,6 +61,8 @@
     let codeTime = $('#codeTime').val();
     let type = $('#type').val();
     let holitime = $('#holitime').val();
+    let cash = $('#cash').val();
+    let play = $('#play').val();
 
 
     // let classStartTime = JSON.stringify($('#classStartTime').val());
@@ -179,7 +181,8 @@
         validDays: validDays,
         coursePackagePaymentConfig: JSON.stringify(price),
         type:type,
-        holitime:holitime
+        holitime:holitime,
+        money:cash+","+play
     }
 
     //提交信息
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js
index 80bd0f1..05519ed 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js
@@ -49,7 +49,8 @@
     
     // 获取入场方式
     var targetAudience = $('input[name="targetAudience"]:checked').val() || 1;
-    
+    var type = $('input[name="type"]:checked').val() || 1;
+
     // 获取半场名称
     var halfId = document.getElementById("half");
     var halfName = halfId && halfId.options[halfId.selectedIndex] ? halfId.options[halfId.selectedIndex].text : "";
@@ -166,8 +167,10 @@
     ajax.set("id", $('#siteId').val());
     ajax.set("day", $('#time').val());
     ajax.set("targetAudience", targetAudience);
-    
-    if(halfName && halfName != "") {
+
+    console.log("类型")
+    console.log(type)
+    if(type==2 && halfName && halfName != "") {
         ajax.set("halfName", halfName);
     }
     if(siteName && siteName != "") {
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 f5e23aa..af2b9f9 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,6 +1,7 @@
 package com.dsh.other.controller;
 
 import com.dsh.other.util.ResultUtil;
+import io.swagger.annotations.Api;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -19,13 +20,14 @@
  * @date 2023/6/24 11:27
  */
 @RestController
+@Api(tags = "硬件方调用 存储玩湃惠民卡使用记录")
 @RequestMapping("/base/code")
 public class CodeCallBackController {
     // 进场二维码新增参数codeType 1=订场 2=散客,3=门票,玩湃惠民卡codeType=4
     /**
      * 硬件开门后回调 是否可进场检查接口 sid门店id rid场地id
      */
-    @PostMapping("/verify")
+    @GetMapping("/verify")
     public ResultUtil verify(Integer codeType,Integer dataId, Integer rid, Integer sid) {
         System.err.println("硬件开门后回调 校验是否可入场");
         System.err.println("codeType:"+codeType);
@@ -36,9 +38,9 @@
 
         // codeType二维码类型1=订场 2=散客,3=门票,玩湃惠民卡codeType=4 234需要校验能否进场
         if (codeType==1){
-            return ResultUtil.success(true);
+            return ResultUtil.success();
         }
 
-        return ResultUtil.success(true);
+        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 661414f..08b01fb 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
@@ -363,12 +363,11 @@
     })
     public ResultUtil reservationSite(ReservationSite reservationSite) {
         try {
-//            Integer uid = tokenUtil.getUserIdFormRedis();
-//            if (null == uid) {
-//                return ResultUtil.tokenErr();
-//            }
-            Integer uid = 201;
-
+            Integer uid = tokenUtil.getUserIdFormRedis();
+            if (null == uid) {
+                return ResultUtil.tokenErr();
+            }
+//            Integer uid = 201;
             return siteService.reservationSite(uid, reservationSite);
         } catch (Exception e) {
             e.printStackTrace();
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 0aab774..89d94a6 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
@@ -91,6 +91,7 @@
 
 
 
+
     /**
      * 获取场地列表
      *
@@ -101,11 +102,27 @@
     @Override
     public List<QuerySiteListVo> querySiteList(QuerySiteList querySiteList) throws Exception {
         querySiteList.setPageNum((querySiteList.getPageNum() - 1) * querySiteList.getPageSize());
+        DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek();
+        Map<Integer, List<TSitePrice>> priceMap = sitePriceService.lambdaQuery().eq(TSitePrice::getDayOfWeek, dayOfWeek.getValue())
+                .eq(TSitePrice::getTargetAudience,1).list()
+                .stream().collect(Collectors.groupingBy(TSitePrice::getSiteId));
         List<QuerySiteListVo> querySiteListVos = this.baseMapper.querySiteList(querySiteList);
         for (QuerySiteListVo querySiteListVo : querySiteListVos) {
             if (ToolUtil.isEmpty(querySiteList.getLon())) {
                 querySiteListVo.setDistance(0D);
                 continue;
+            }
+            List<TSitePrice> tSitePrices = priceMap.get(querySiteListVo.getId());
+            if (tSitePrices!=null&& !tSitePrices.isEmpty()){
+                BigDecimal bigDecimal = tSitePrices.get(0).getCashPrice();
+                // 遍历 查询最小的价格
+                for (TSitePrice tSitePrice : tSitePrices) {
+                    if (bigDecimal.compareTo(tSitePrice.getCashPrice()) > 0) {
+                        bigDecimal = tSitePrice.getCashPrice();
+                    }
+                }
+                querySiteListVo.setPrice(bigDecimal.doubleValue());
+                querySiteListVo.setTimes(tSitePrices.get(0).getStartTime() + "-" + tSitePrices.get(tSitePrices.size()-1).getEndTime());
             }
             Map<String, Double> distance = GeodesyUtil.getDistance(querySiteList.getLon() + "," + querySiteList.getLat(), querySiteListVo.getStoreLon() + "," + querySiteListVo.getStoreLat());
             double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
@@ -255,6 +272,7 @@
         }
         List<TSitePrice> sitePrice = sitePriceService.list(tSitePriceLambdaQueryWrapper);
 
+        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
 
         for (TSitePrice tSitePrice : sitePrice) {
             QuerySiteTimes querySiteTimes = new QuerySiteTimes();
@@ -268,6 +286,9 @@
             String temp = tSitePrice.getStartTime().substring(0, tSitePrice.getStartTime().length() - 3) + "-" + tSitePrice.getEndTime().substring(0, tSitePrice.getEndTime().length() - 3);
             String timePriceStart = day + " " + tSitePrice.getStartTime().substring(0, tSitePrice.getStartTime().length() - 3);
             String timePriceEnd = day + " " + tSitePrice.getEndTime().substring(0, tSitePrice.getEndTime().length() - 3);
+            Date now = new Date();
+            Date start = simpleDateFormat1.parse(timePriceStart);
+            Date end = simpleDateFormat1.parse(timePriceEnd);
             // 已经预约了 判断是散客模式还是订场模式
             Integer flag = 0;
             // 散客预约人数
@@ -293,7 +314,7 @@
                 }
             }
             querySiteTimes.setSelectCount(count);
-            if (flag == 0) {
+            if (flag == 0 &&  querySiteTimes.getSelectable() == 1) {
                 // 当前时间段还没有预约
                 Integer walkinCapacity = site.getWalkinCapacity();
                 // 计算散客预约人数和最大散客容纳数
@@ -307,7 +328,6 @@
                 }else{
                     if (targetAudience==2){
                         // 散客只能预约当前时间段
-                        Date now = new Date();
                         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                         String nowStr = simpleDateFormat.format(now);
                         // 判断当前时间有没有在timePriceStart和timePriceEnd之间
@@ -591,7 +611,7 @@
         siteBooking.setState(1);
         siteBooking.setTargetAudience(reservationSite.getTargetAudience());
         siteBooking.setInsertTime(new Date());
-
+        siteBooking.setMoney(money+","+playCoin);
         siteBooking.setNextName(reservationSite.getNextName());
         siteBooking.setIsHalf(reservationSite.getIsHalf());
         siteBooking.setHalfName(reservationSite.getHalfName());
diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
index f36d263..6a79717 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java
@@ -54,7 +54,8 @@
 
     private String key = "6f5e0c2dcabfa9c27b5da5836a362fef";//微信商户号
 
-    private String callbackPath = "https://online.daowepark.com:443/other";//支付回调网关地址
+//    private String callbackPath = "https://online.daowepark.com:443/other";//支付回调网关地址
+    private String callbackPath = "https://y6cgd7wo3ooa.guyubao.com/other";//支付回调网关地址
 
     private String app_cert_path = "C:/cert/alipay/user/app_cert_path.crt";//应用公钥证书路径
 

--
Gitblit v1.7.1