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