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(); cloud-server-management/src/main/java/com/dsh/course/entity/SiteLock.java
New file @@ -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; } cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java
New file @@ -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); } 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; } cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteLock.java
New file @@ -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; } cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java
New file @@ -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); } cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java
New file @@ -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); } } cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/DateComparisonExample.java
New file @@ -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; } } } cloud-server-management/src/main/resources/mapper/SiteLockMapper.xml
New file @@ -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> 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() } } 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) { 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));