nickchange
2023-11-29 d4fbea2ac7f7c98ffd83480f8f2535ca92f3baea
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
@@ -29,7 +29,7 @@
import com.dsh.guns.modular.system.util.DateComparisonExample;
import com.dsh.guns.modular.system.util.HttpRequestUtil;
import com.dsh.guns.modular.system.util.ResultUtil;
import com.dsh.course.entity.SiteLock;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -1023,9 +1023,13 @@
    @Autowired
    private ISiteLockService siteLockService;
    @RequestMapping("/yuyuetimes/{id}")
    @ResponseBody
    public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id,String day,String siteName,String halfName) {
    public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id,String date,String siteName,String halfName) {
//        System.out.println("=======date======"+date);
//
//        List<String> strings = new ArrayList<>();
@@ -1053,7 +1057,7 @@
//        String appointmentEndTime = site.getAppointmentEndTime();
//
//        String currentTime = appointmentStartTime;
//        while (currentTime.compareTo(appointmentEndTime) < 0) {
//        while (currentTime.compareTo(appointmentEndTime) < 0){
//            String nextTime = null;
//            if("智慧场地".equals(site.getTypeName())){
//                nextTime=getNextTimeOne(currentTime);
@@ -1087,7 +1091,113 @@
return null;
        System.out.println("=======date======" + date);
        List<String> strings = new ArrayList<>();
        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status", 5).eq("nextName", siteName).like("times", date));
        if (siteName == null || siteName.equals("")) {
            siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status", 5).like("times", date));
        }
        System.out.println("=======siteBookings======" + siteBookings);
        for (SiteBooking siteBooking : siteBookings) {
            String[] split = siteBooking.getTimes().split(";");
            if (siteBooking.getIsHalf() == 2) {
                for (String s : split) {
                    String convertedValue = s.substring(11);
                    strings.add(convertedValue);
                }
            } else {
                if (halfName == null) {
                    for (String s : split) {
                        String convertedValue = s.substring(11);
                        strings.add(convertedValue);
                    }
                }
                if (siteBooking.getHalfName().equals(halfName)) {
                    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(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.setSelectable(0);
//            }
            if (strings.contains(timeRange)) {
                orderDto.setState(0);
            } else {
                String stime = date + " " + currentTime;
                String etime = date + " " + nextTime;
                orderDto.setState(1);
                // 查出lock
                List<SiteLock> list = siteLockService.list(new LambdaQueryWrapper<SiteLock>().eq(SiteLock::getSiteId, id));
                for (SiteLock siteLock : list) {
                    boolean stringDateBetween = DateComparisonExample.isStringDateBetween(stime + " - " + etime, siteLock.getStartTime(), siteLock.getEndTime());
                    if (stringDateBetween) {
                        orderDto.setState(0);
                    }
                    if (DateComparisonExample.isStringWithinTimeRange(stime, siteLock.getStartTime(), siteLock.getEndTime())) {
                        orderDto.setState(0);
                    }
                    if (DateComparisonExample.isStringWithinTimeRange(etime, siteLock.getStartTime(), siteLock.getEndTime())) {
                        orderDto.setState(0);
                    }
                }
            }
            timeRanges.add(orderDto);
            currentTime = nextTime;
        }
        System.out.println("-------------" + timeRanges);
        return timeRanges;
    }