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