From 1e790795f4e2c365f604ecc0fc1b290e3ff3c35f Mon Sep 17 00:00:00 2001 From: liujie <liujie> Date: 星期五, 20 十月 2023 09:34:22 +0800 Subject: [PATCH] 更新bug --- cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java | 65 ++++++++++++++++++++------------ 1 files changed, 41 insertions(+), 24 deletions(-) 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 0a7c8a6..b7f4243 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 @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.other.entity.*; @@ -87,7 +88,8 @@ continue; } Map<String, Double> distance = GeodesyUtil.getDistance(querySiteList.getLon() + "," + querySiteList.getLat(), querySiteListVo.getStoreLon() + "," + querySiteListVo.getStoreLat()); - querySiteListVo.setDistance(distance.get("WGS84")); + double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + querySiteListVo.setDistance(wgs84); } return querySiteListVos; } @@ -245,11 +247,7 @@ } } - - } - - } System.out.println("======strings======="+strings); @@ -264,7 +262,12 @@ String currentTime = appointmentStartTime; while (currentTime.compareTo(appointmentEndTime) < 0) { - String nextTime = getNextTime(currentTime); + String nextTime=null; + if("智慧场地".equals(site.getTypeName())){ + nextTime=getNextTimeOne(currentTime); + }else { + nextTime= getNextTime(currentTime); + } String timeRange = currentTime + "-" + nextTime; @@ -279,9 +282,23 @@ // orderDto.setSelectable(0); // } if (strings.contains(timeRange)){ + orderDto.setSelectable(0); }else { + + String stime = day+" "+currentTime; + String etime = day+" "+nextTime; orderDto.setSelectable(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.setSelectable(0); + } + } + + } @@ -291,8 +308,6 @@ System.out.println("-------------"+timeRanges); return timeRanges; - - @@ -313,23 +328,25 @@ return String.format("%02d:%02d", hour, minute); -// String[] parts = currentTime.split(":"); -// int hour = Integer.parseInt(parts[0]); -// int minute = Integer.parseInt(parts[1]); -// -// if (minute == 45) { -// hour++; -// minute = 0; -// } else if (minute == 0){ -// minute = 15; -// }else if (minute == 15){ -// minute = 30; -// }else if (minute == 30){ -// minute = 45; -// } -// -// return String.format("%02d:%02d", hour, minute); + } + public static String getNextTimeOne(String currentTime) { + String[] parts = currentTime.split(":"); + int hour = Integer.parseInt(parts[0]); + int minute = Integer.parseInt(parts[1]); + + if (minute == 45) { + hour++; + minute = 0; + } else if (minute == 0){ + minute = 15; + }else if (minute == 15){ + minute = 30; + }else if (minute == 30){ + minute = 45; + } + + return String.format("%02d:%02d", hour, minute); } -- Gitblit v1.7.1