From 65ea660821332196676a496e0306c7549b82569d Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期一, 20 七月 2026 19:58:46 +0800
Subject: [PATCH] fix: 兼容预约充电时段校验
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 22 ++++++++++++++++++++--
1 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index 3b6e4cb..68225fe 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1577,14 +1577,32 @@
|| !StringUtils.hasLength(site.getReservationEndTime())) {
return AjaxResult.error("电站尚未配置预约时段");
}
- LocalTime start = LocalTime.parse(site.getReservationStartTime(), DateTimeFormatter.ofPattern("HH:mm"));
- LocalTime end = LocalTime.parse(site.getReservationEndTime(), DateTimeFormatter.ofPattern("HH:mm"));
+ LocalTime start = parseReservationClock(site.getReservationStartTime());
+ LocalTime end = parseReservationClock(site.getReservationEndTime());
+ if (start == null || end == null) {
+ return AjaxResult.error("电站预约时段配置不正确");
+ }
if (!isTimeInWindow(reservationTime.toLocalTime(), start, end)) {
return AjaxResult.error("预约时间不在允许预约时段内");
}
return null;
}
+ private LocalTime parseReservationClock(String value) {
+ if (!StringUtils.hasLength(value)) {
+ return null;
+ }
+ String[] parts = value.trim().split(":");
+ if (parts.length < 2) {
+ return null;
+ }
+ try {
+ return LocalTime.of(Integer.parseInt(parts[0]), Integer.parseInt(parts[1]));
+ } catch (RuntimeException e) {
+ return null;
+ }
+ }
+
private boolean isTimeInWindow(LocalTime value, LocalTime start, LocalTime end) {
if (start.equals(end)) {
return true;
--
Gitblit v1.7.1