| | |
| | | |
| | | for (XpPoint xpPoint : list) { |
| | | // 判断是否在时间段内 |
| | | boolean intime = getInTime(now, xpPoint); |
| | | boolean intime = getInTime(now, xpPoint.getEffectivePeriod(), xpPoint.getEffectiveTimePeriod()); |
| | | if (!intime) { |
| | | continue; |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | private boolean getInTime(LocalTime now,XpPoint xpPoint){ |
| | | public boolean getInTime(LocalTime now, Integer effectivePeriod, String effectiveTimePeriod){ |
| | | // 2非工作日 0工作日 1节假日 3调休日 |
| | | Integer holidayToday = holidayUtil.isHolidayToday(); |
| | | Integer operationType = xpPoint.getEffectivePeriod(); |
| | | if(operationType==1){ |
| | | boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod()); |
| | | if(effectivePeriod==1){ |
| | | boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now,effectiveTimePeriod); |
| | | if (!inTime) { |
| | | return false; |
| | | } |
| | | }else if(operationType==2){ |
| | | }else if(effectivePeriod==2){ |
| | | if(holidayToday!=0){ |
| | | return false; |
| | | } |
| | | boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod()); |
| | | boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now,effectiveTimePeriod); |
| | | if (!inTime) { |
| | | return false; |
| | | } |
| | | }else if(operationType==3){ |
| | | }else if(effectivePeriod==3){ |
| | | if(holidayToday!=2){ |
| | | return false; |
| | | } |
| | | boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod()); |
| | | boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now,effectiveTimePeriod); |
| | | if (!inTime) { |
| | | return false; |
| | | } |
| | | }else if(operationType==4){ |
| | | }else if(effectivePeriod==4){ |
| | | if(holidayToday!=1){ |
| | | return false; |
| | | } |
| | | boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod()); |
| | | boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now,effectiveTimePeriod); |
| | | if (!inTime) { |
| | | return false; |
| | | } |
| | |
| | | return searchVo; |
| | | } |
| | | |
| | | LocalTime now = LocalTime.now(); |
| | | for (XpPointsListVo xpPointsListVo : list) { |
| | | boolean inTime = getInTime(now, xpPointsListVo.getEffectivePeriod(), xpPointsListVo.getEffectiveTimePeriod()); |
| | | if (!inTime) { |
| | | // 不在运营段 |
| | | xpPointsListVo.setState(0); |
| | | } |
| | | |
| | | // 组装数据 并排序 |
| | | List<XpPointsListVo> resultList = list.stream().peek(vo -> vo.setDistance(FastDistanceCalculator.distanceFast(query.getLat(), query.getLon(), vo.getLatitude(), vo.getLongitude()))).collect(Collectors.toList()); |
| | | } |
| | | |
| | | // 组装数据 并排序 剔除不在运营段的 数据 |
| | | List<XpPointsListVo> resultList = list.stream().peek(vo -> vo.setDistance(FastDistanceCalculator.distanceFast(query.getLat(), query.getLon(), vo.getLatitude(), vo.getLongitude()))).filter(vo -> vo.getState() == 1).collect(Collectors.toList()); |
| | | |
| | | // 可用点位 |
| | | List<XpPointsListVo> availablePoints = resultList.stream().filter(e -> query.getElectronicAreaId() != null && e.getElectronicAreaId().equals(query.getElectronicAreaId())).sorted(Comparator.comparing(XpPointsListVo::getDistance)).collect(Collectors.toList());// |