From e3892373f0c3c786eccb1d1de0774c3ecc103f53 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 27 十一月 2023 14:46:58 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai

---
 cloud-server-management/src/main/java/com/dsh/course/entity/SiteLock.java                               |   41 ++++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/DateComparisonExample.java       |   44 ++++
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java         |   65 ++++--
 cloud-server-management/src/main/resources/mapper/SiteLockMapper.xml                                    |   11 +
 cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js                        |   36 ++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteLock.java                   |   41 ++++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java |   27 ++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html                         |   35 ++
 cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java                         |   17 +
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java                        |    2 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java     |   30 ++-
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java         |   17 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java |  119 ++++++-----
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java            |   63 +++---
 14 files changed, 409 insertions(+), 139 deletions(-)

diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
index c0019bf..39ea1df 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -138,8 +138,7 @@
 
     private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
 
-    @Autowired
-    private TOrderService orderService;
+
 
     @Autowired
     private ICoursePackageOrderStudentService coursePackageOrderStudentService;
@@ -841,18 +840,28 @@
         return videoVos;
     }
 
+
+
+
     @PostMapping("/base/coursePack/allPaymentCourseList")
     @ResponseBody
     public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId) {
         List<CouponPaymentVo> paymentVos = new ArrayList<>();
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-        List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
-                .eq("appUserId", appUserId)
-                .eq("payType", 3)
+//        List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+//                .eq("appUserId", appUserId)
+//                .eq("payType", 3)
+//                .eq("payStatus", 2)
+//                .eq("state", 1));
+
+
+        List<CoursePackageOrder> list = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>().eq("appUserId", appUserId).eq("payType", 3)
                 .eq("payStatus", 2)
                 .eq("state", 1));
+
+
         if (list.size() > 0) {
-            for (TCoursePackagePayment tCoursePackagePayment : list) {
+            for (CoursePackageOrder tCoursePackagePayment : list) {
                 CouponPaymentVo couponPaymentVo = new CouponPaymentVo();
                 couponPaymentVo.setTime(simpleDateFormat.format(tCoursePackagePayment.getInsertTime()));
                 couponPaymentVo.setAmount(tCoursePackagePayment.getPlayPaiCoin());
@@ -1115,6 +1124,7 @@
     }
 
 
+
     /**
      * 已报名课程详情
      */
@@ -1138,10 +1148,12 @@
             CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId, lon, lat);
 
 
-            if (orderId != null) {
-                TOrder byId = orderService.getById(orderId);
-                courseDetailsResponse.setAmount(byId.getPrice());
-            }
+
+
+//            if (orderId != null) {
+//                TOrder byId = orderService.getById(orderId);
+//                courseDetailsResponse.setAmount(byId.getPrice());
+//            }
             return ResultUtil.success(courseDetailsResponse);
         } catch (Exception e) {
             e.printStackTrace();
@@ -2160,10 +2172,10 @@
             if (null == appUserId) {
                 return ResultUtil.tokenErr();
             }
-            List<TCoursePackagePayment> packagePayment = packagePaymentService.list(new LambdaQueryWrapper<TCoursePackagePayment>()
-                    .eq(TCoursePackagePayment::getCoursePackageId, courseID)
-                    .eq(TCoursePackagePayment::getAppUserId, appUserId)
-                    .eq(TCoursePackagePayment::getStudentId, stuId)
+            List<CoursePackageOrderStudent> packagePayment = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
+                    .eq("coursePackageId", courseID)
+                    .eq("appUserId", appUserId)
+                    .eq("studentId", stuId)
             );
 
             if (ToolUtil.isEmpty(packagePayment) || packagePayment.size() == 0) {
@@ -2175,7 +2187,7 @@
             );
 
             List<CoursePackageStudent> coursePackageStudent = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>()
-                    .in(CoursePackageStudent::getCoursePackagePaymentId, packagePayment.stream().map(TCoursePackagePayment::getId).collect(Collectors.toList()))
+                    .in(CoursePackageStudent::getCoursePackagePaymentId, packagePayment.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList()))
                     .in(CoursePackageStudent::getCoursePackageSchedulingId, coursePackageSchedulings.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList()))
                     .eq(CoursePackageStudent::getCoursePackageId, courseID)
                     .eq(CoursePackageStudent::getStudentId, stuId)
@@ -2238,25 +2250,32 @@
         map.put("name", store.getName());
         map.put("lon", lon);
         map.put("lat", lat);
-
-
         // 找出门店的所有课程 排出体验
         List<TCoursePackage> list = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().eq(TCoursePackage::getStoreId, courseDetailReq.getStoreId()).ne(TCoursePackage::getType, 3).eq(TCoursePackage::getState, 1).like(TCoursePackage::getClassWeeks, week));
         List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList());
         if (collect.size() == 0) {
             collect.add(-1);
         }
+
+        List<CoursePackageScheduling> list8 = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>()
+                .eq(CoursePackageScheduling::getAppUserId, courseDetailReq.getAppUserId())
+                .eq(CoursePackageScheduling::getStudentId, courseDetailReq.getStuId())
+                .in(CoursePackageScheduling::getCoursePackageId, collect)
+        );
+        List<Integer> collect1 = list8.stream().map(CoursePackageScheduling::getCoursePackageId).collect(Collectors.toList());
         // 找出购买的课包
         List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
                 .eq("appUserId", courseDetailReq.getAppUserId())
                 .eq("studentId", courseDetailReq.getStuId())
-                .in("coursePackageId", collect)
+                .in("coursePackageId", collect1)
                 .eq("status", 1)
                 .eq("state", 1)
         );
 
-        List<Integer> collect1 = list1.stream().map(CoursePackageOrderStudent::getCoursePackageId).collect(Collectors.toList());
-        List<Long> ids = list1.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList());
+
+
+//        List<Integer> collect1 = list1.stream().map(CoursePackageOrderStudent::getCoursePackageId).collect(Collectors.toList());
+//        List<Long> ids = list1.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList());
 
 
         for (TCoursePackage tCoursePackage : list) {
@@ -2297,6 +2316,9 @@
                 detailsListVo.setMoney(cashPayment);
             }
             detailsListVo.setNum(tCoursePackage.getNeedNum());
+
+
+
             if (collect1.contains(tCoursePackage.getId())) {
                 // 找出排课记录
                 List<CoursePackageScheduling> list3 = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>()
@@ -2318,8 +2340,7 @@
                 List<CoursePackageStudent> list4 = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>()
                         .eq(CoursePackageStudent::getAppUserId, courseDetailReq.getAppUserId())
                         .eq(CoursePackageStudent::getCoursePackageId, tCoursePackage.getId())
-                        .in(CoursePackageStudent::getCoursePackageSchedulingId, collect2).
-                                in(CoursePackageStudent::getCoursePackagePaymentId, ids)
+                        .in(CoursePackageStudent::getCoursePackageSchedulingId, collect2)
                 );
 
                 List<CoursePackageStudent> list5 = cspsService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", courseDetailReq.getStuId()).eq("coursePackageId", tCoursePackage.getId()));
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
index 3f681cd..b057995 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -1416,8 +1416,7 @@
             return ResultUtil.error("当前课包课时数不足");
         }
         TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
-        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - req.getNum());
-        coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
+        TCoursePackage coursePackage1 = coursePackageService.getById(req.getCourseId());
         //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录
         List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>()
                 .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1)
@@ -1425,9 +1424,19 @@
         //已经排课但没有使用的课时数量
         int number = list1.size() * coursePackage.getNeedNum();
         Integer laveClassHours1 = coursePackageOrderStudent.getLaveClassHours();
+        laveClassHours1 -= number;
+        //需要购买使用的课时数
+        Integer num = req.getNum();
         //需要删除多余的排课记录
-        if(number > laveClassHours1){
-            int n = number - laveClassHours1;
+        if(num.compareTo(laveClassHours1) > 0){
+            //课时数差额
+            int number1 = num - laveClassHours1;
+            double o = number1 % coursePackage.getNeedNum();
+            int l = 0;
+            if(0 != o){
+                l = 1;
+            }
+            int n = Double.valueOf(number1 / coursePackage.getNeedNum()).intValue() + l;
             for (int i = 0; i < n; i++) {
                 CoursePackageScheduling coursePackageScheduling = list1.get(i);
                 coursePackageSchedulingService.getBaseMapper().deleteById(coursePackageScheduling.getId());
@@ -1438,9 +1447,9 @@
         }
 
 
-        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-        String classStartTime = coursePackage.getClassStartTime();
-        String classEndTime = coursePackage.getClassEndTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String classStartTime = coursePackage1.getClassStartTime();
+        String classEndTime = coursePackage1.getClassEndTime();
         String[] split5 = classStartTime.split(",");
         String[] split6 = classEndTime.split(",");
         List<String> time = req.getTime();
@@ -1450,7 +1459,7 @@
                 coursePackageScheduling.setType(3);
                 coursePackageScheduling.setAppUserId(userId);
                 coursePackageScheduling.setStudentId(req.getStuId());
-                coursePackageScheduling.setCoursePackageId(coursePackage.getId());
+                coursePackageScheduling.setCoursePackageId(req.getCourseId());
                 try {
                     Date parse = format.parse(s + " " + split5[i]);
                     Date parse1 = format.parse(s + " " + split6[i]);
@@ -1462,7 +1471,7 @@
                     CoursePackageStudent student1 = new CoursePackageStudent();
                     student1.setAppUserId(userId);
                     student1.setStudentId(req.getStuId());
-                    student1.setCoursePackageId(coursePackage.getId());
+                    student1.setCoursePackageId(req.getCourseId());
                     student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId());
                     student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                     student1.setSignInOrNot(1);
@@ -1477,7 +1486,8 @@
             }
         }
 
-
+        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - req.getNum());
+        coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
 
 
         CourseCounsum courseCounsum = new CourseCounsum();
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
index 9db33b0..5d772cf 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1140,6 +1140,7 @@
         coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice());
         coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId());
         coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice));
+        coursePackageOrder.setPlayPaiCoin(paymentCourseVo.getPrice().intValue());
         coursePackageOrder.setPayUserType(1);
         coursePackageOrder.setPayStatus(2);
         coursePackageOrder.setPayUserId(appUser.getId());
@@ -1280,20 +1281,21 @@
 
                 for (int i = 0; i < num; i++) {
                     Date time = calendar.getTime();
+
+                    //判断当天是否在排课星期内
+                    int day = calendar.get(Calendar.DAY_OF_WEEK);
+                    day = day - 1 == 0 ? 7 : day - 1;
+                    if (!week.contains(day)) {
+                        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+                        continue;
+                    }
+
+
+                    //大于有效期不进行排课
+                    if (calendar.getTimeInMillis() >= useTime.getTime()) {
+                        break;
+                    }
                     for (int j = 0; j < split.length; j++) {
-                        //判断当天是否在排课星期内
-                        int day = calendar.get(Calendar.DAY_OF_WEEK);
-                        day = day - 1 == 0 ? 7 : day - 1;
-                        if (!week.contains(day)) {
-                            calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
-                            continue;
-                        }
-
-
-                        //大于有效期不进行排课
-                        if (calendar.getTimeInMillis() >= useTime.getTime()) {
-                            break;
-                        }
                         //剩余数量不足以排课
                         if (laveClassHours.compareTo(codeTime) < 0) {
                             break;
@@ -1322,10 +1324,9 @@
                         student1.setReservationStatus(1);
                         student1.setInsertTime(new Date());
                         cpsMapper.insert(student1);
-
-                        //增加日期,用于判断
-                        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                     }
+                    //增加日期,用于判断
+                    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                 }
             }
 
@@ -1350,19 +1351,20 @@
                 int num = 8 - day_week + 7;
                 for (int i = 0; i < num; i++) {
                     Date time = calendar.getTime();
-                    for (int j = 0; j < split.length; j++) {
-                        //判断当天是否在排课星期内
-                        int day = calendar.get(Calendar.DAY_OF_WEEK);
-                        day = day - 1 == 0 ? 7 : day - 1;
-                        if (!week.contains(day)) {
-                            calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
-                            continue;
-                        }
 
-                        //大于有效期不进行排课
-                        if (calendar.getTimeInMillis() >= endTime.getTime()) {
-                            break;
-                        }
+                    //判断当天是否在排课星期内
+                    int day = calendar.get(Calendar.DAY_OF_WEEK);
+                    day = day - 1 == 0 ? 7 : day - 1;
+                    if (!week.contains(day)) {
+                        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+                        continue;
+                    }
+
+                    //大于有效期不进行排课
+                    if (calendar.getTimeInMillis() >= endTime.getTime()) {
+                        break;
+                    }
+                    for (int j = 0; j < split.length; j++) {
                         CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                         coursePackageScheduling.setType(tCoursePackage.getType());
                         coursePackageScheduling.setAppUserId(userId);
@@ -1384,10 +1386,9 @@
                         student1.setReservationStatus(1);
                         student1.setInsertTime(new Date());
                         cpsMapper.insert(student1);
-
-                        //增加日期,用于判断
-                        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                     }
+                    //增加日期,用于判断
+                    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                 }
             }
         } catch (Exception e) {
diff --git a/cloud-server-management/src/main/java/com/dsh/course/entity/SiteLock.java b/cloud-server-management/src/main/java/com/dsh/course/entity/SiteLock.java
new file mode 100644
index 0000000..5790b73
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/entity/SiteLock.java
@@ -0,0 +1,41 @@
+package com.dsh.course.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/7/18 14:41
+ */
+@Data
+@TableName("t_site_lock")
+public class SiteLock {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 场地id
+     */
+    @TableField("siteId")
+    private Integer siteId;
+    /**
+     * 锁定开始时间
+     */
+    @TableField("startTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+    /**
+     * 锁定结束时间
+     */
+    @TableField("endTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java
new file mode 100644
index 0000000..985d5f6
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java
@@ -0,0 +1,17 @@
+package com.dsh.course.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import com.dsh.course.feignClient.other.model.TSiteLockDTO;
+import com.dsh.guns.modular.system.model.SiteLock;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/7/18 14:43
+ */
+public interface SiteLockMapper extends BaseMapper<SiteLock> {
+    List<TSiteLockDTO> getListById(@Param("id") Integer id);
+}
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 51a35a9..32c31f1 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
@@ -26,6 +26,7 @@
 import com.dsh.guns.modular.system.model.*;
 import com.dsh.guns.modular.system.model.dto.*;
 import com.dsh.guns.modular.system.service.*;
+import com.dsh.guns.modular.system.util.DateComparisonExample;
 import com.dsh.guns.modular.system.util.HttpRequestUtil;
 import com.dsh.guns.modular.system.util.ResultUtil;
 
@@ -1021,70 +1022,72 @@
    private SiteClient siteClient;
 
 
+
     @RequestMapping("/yuyuetimes/{id}")
     @ResponseBody
-    public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id,String date) {
-        System.out.println("=======date======"+date);
-
-        List<String> strings = new ArrayList<>();
-
-//        List<SiteBooking> siteBookings = siteClient.listBooks(id);
-        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>()
-                .eq("siteId", id).like("times",date));
-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);
+    public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id,String day,String siteName,String halfName) {
+//        System.out.println("=======date======"+date);
+//
+//        List<String> strings = new ArrayList<>();
+//
+////        List<SiteBooking> siteBookings = siteClient.listBooks(id);
+//        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>()
+//                .eq("siteId", id).like("times",date));
+//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<>();
+//
+//       Site site =  siteClient.listById(id);
+//System.out.println("================"+site);
+//        String appointmentStartTime = site.getAppointmentStartTime();
+//        String appointmentEndTime = site.getAppointmentEndTime();
+//
+//        String currentTime = appointmentStartTime;
+//        while (currentTime.compareTo(appointmentEndTime) < 0) {
+//            String nextTime = null;
+//            if("智慧场地".equals(site.getTypeName())){
+//                nextTime=getNextTimeOne(currentTime);
+//            }else {
+//                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);
+//    }
+//
+//
+//            timeRanges.add(orderDto);
+//            currentTime = nextTime;
+//        }
+//        System.out.println("-------------"+timeRanges);
+//
+//        return timeRanges;
 
 
-        List<OrderDto> timeRanges = new ArrayList<>();
 
 
-       Site site =  siteClient.listById(id);
-System.out.println("================"+site);
-        String appointmentStartTime = site.getAppointmentStartTime();
-        String appointmentEndTime = site.getAppointmentEndTime();
-
-        String currentTime = appointmentStartTime;
-        while (currentTime.compareTo(appointmentEndTime) < 0) {
-            String nextTime = null;
-            if("智慧场地".equals(site.getTypeName())){
-                nextTime=getNextTimeOne(currentTime);
-            }else {
-                nextTime= getNextTime(currentTime);
-            }
-//            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);
-    }
-
-
-            timeRanges.add(orderDto);
-            currentTime = nextTime;
-        }
-        System.out.println("-------------"+timeRanges);
-
-        return timeRanges;
+return null;
     }
 
 
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteLock.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteLock.java
new file mode 100644
index 0000000..5016680
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteLock.java
@@ -0,0 +1,41 @@
+package com.dsh.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/7/18 14:41
+ */
+@Data
+@TableName("t_site_lock")
+public class SiteLock {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 场地id
+     */
+    @TableField("siteId")
+    private Integer siteId;
+    /**
+     * 锁定开始时间
+     */
+    @TableField("startTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+    /**
+     * 锁定结束时间
+     */
+    @TableField("endTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java
new file mode 100644
index 0000000..c4dc93f
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java
@@ -0,0 +1,17 @@
+package com.dsh.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.other.entity.SiteLock;
+import com.dsh.other.model.dto.siteDto.TSiteLockDTO;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/7/18 14:44
+ */
+public interface ISiteLockService extends IService<SiteLock> {
+    List<TSiteLockDTO> getListById(Integer id);
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java
new file mode 100644
index 0000000..076e1f1
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java
@@ -0,0 +1,27 @@
+package com.dsh.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.other.entity.SiteLock;
+import com.dsh.other.mapper.SiteLockMapper;
+import com.dsh.other.model.dto.siteDto.TSiteLockDTO;
+import com.dsh.other.service.ISiteLockService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/7/18 14:45
+ */
+@Service
+public class SiteLockServiceImpl extends ServiceImpl<SiteLockMapper, SiteLock> implements ISiteLockService {
+    @Autowired
+    private SiteLockMapper siteLockMapper;
+
+    @Override
+    public List<TSiteLockDTO> getListById(Integer id) {
+        return siteLockMapper.getListById(id);
+    }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/DateComparisonExample.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/DateComparisonExample.java
new file mode 100644
index 0000000..4eb4ac0
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/DateComparisonExample.java
@@ -0,0 +1,44 @@
+package com.dsh.guns.modular.system.util;
+
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class DateComparisonExample {
+
+    private static Date parseDate(String dateString) {
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+        try {
+            return formatter.parse(dateString);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static boolean isStringDateBetween(String stringValue, Date startDate, Date endDate) {
+        String[] dateRange = stringValue.split(" - ");
+        Date valueStartDate = parseDate(dateRange[0]);
+        Date valueEndDate = parseDate(dateRange[1]);
+
+        return (valueStartDate.after(startDate) || valueStartDate.equals(startDate))
+                && (valueEndDate.before(endDate) || valueEndDate.equals(endDate));
+    }
+
+    public static boolean isStringWithinTimeRange(String stringValue, Date startTime, Date endTime) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+        try {
+            Date dateValue = sdf.parse(stringValue);
+            return dateValue.after(startTime) && dateValue.before(endTime);
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+}
\ No newline at end of file
diff --git a/cloud-server-management/src/main/resources/mapper/SiteLockMapper.xml b/cloud-server-management/src/main/resources/mapper/SiteLockMapper.xml
new file mode 100644
index 0000000..2a736a2
--- /dev/null
+++ b/cloud-server-management/src/main/resources/mapper/SiteLockMapper.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dsh.other.mapper.SiteLockMapper">
+
+
+    <select id="getListById" resultType="com.dsh.other.model.dto.siteDto.TSiteLockDTO">
+        select * from t_site_lock
+        where siteId = #{id}
+        and endTime > NOW()
+    </select>
+</mapper>
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 5af26e3..47b7fb1 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
@@ -41,6 +41,8 @@
                     </div>
                 </div>
 
+
+
                 <div class="form-group">
                     <label class="col-sm-3 control-label">*预约类型:</label>
                     <div class="col-sm-4">
@@ -54,7 +56,7 @@
                 <div class="form-group">
                     <label class="col-sm-3 control-label">*上课场地:</label>
                     <div class="col-sm-4">
-                        <select class="form-control" id="siteId" name="siteId"  >
+                        <select class="form-control" id="siteId" name="siteId" onchange="CoursePackageInfo.queryHalf()" >
                             <option >请选择场地</option>
                             @for(obj in site){
                             <option value="${obj.id}"  data-custom-data="1">${obj.name}</option>
@@ -63,11 +65,19 @@
                     </div>
                 </div>
 
+
+                <div class="form-group"  id="half1"  hidden="hidden">
+                    <label class="col-sm-3 control-label">*选择半场:</label>
+                    <div class="col-sm-4">
+                        <select class="form-control"  name="half" id="half">
+                        </select>
+                    </div>
+                </div>
+
                 <div class="form-group">
                     <label class="col-sm-3 control-label">预约时间:</label>
                     <div class="col-sm-4">
                         <input class="form-control" id="time" name="time" type="text" onchange="CoursePackageInfo.addTime()">
-
                     </div>
                 </div>
 
@@ -80,13 +90,7 @@
                     </div>
                 </div>
 
-                <div class="form-group"  id="half1"  hidden="hidden">
-                    <label class="col-sm-3 control-label">*选择半场:</label>
-                    <div class="col-sm-4">
-                        <select class="form-control"  name="half" id="half">
-                        </select>
-                    </div>
-                </div>
+
 
                 <div class="form-group">
                     <label class="col-sm-3 control-label">现金价格:</label>
@@ -219,6 +223,19 @@
             })
             ajax3.start()
 
+
+            var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){
+                console.log("================"+data)
+                if(data!=null){
+                    let htmlStr = '';
+                    for (let i = 0; i < data.length; i++) {
+                        htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>'
+                    }
+                    $("#half").empty().append(htmlStr);
+                }
+            })
+            ajax1.start()
+
         }
 
     }
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 7bb4003..13d0683 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
@@ -63,8 +63,36 @@
         }
     })
     ajax.set("date",$('#time').val());
+    var siteId = document.getElementById("siteId");
+    var siteName = siteId.options[siteId.selectedIndex].text;
+
+    var halfId = document.getElementById("half");
+    var halfName = halfId.options[halfId.selectedIndex].text;
+    ajax.set("siteName",siteName);
+    ajax.set("halfName",halfName);
+
     ajax.start()
 
+    // var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){
+    //     console.log("================"+data)
+    //     if(data!=null){
+    //         let htmlStr = '';
+    //         for (let i = 0; i < data.length; i++) {
+    //             htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>'
+    //         }
+    //         $("#half").empty().append(htmlStr);
+    //     }
+    // })
+    // ajax1.start()
+
+
+
+
+
+};
+
+
+CoursePackageInfo.queryHalf = function (a) {
     var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){
         console.log("================"+data)
         if(data!=null){
@@ -76,13 +104,7 @@
         }
     })
     ajax1.start()
-
-
-
-
-
-};
-
+}
 
 
 CoursePackageInfo.addTime1 = function (a) {
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 ade018d..c35c64a 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
@@ -174,9 +174,7 @@
         System.out.println("=======date======" + day);
         List<String> strings = new ArrayList<>();
 
-//        List<SiteBooking> siteBookings = siteClient.listBooks(id);
         List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status", 5).eq("nextName", siteName).like("times", day));
-
 
         if (siteName == null || siteName.equals("")) {
             siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status", 5).like("times", day));

--
Gitblit v1.7.1