From 4b06e97df8846d0818d28742a3bd9a516bb19174 Mon Sep 17 00:00:00 2001 From: zpc Date: Thu, 1 Jan 2026 17:09:38 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=97=B6=E9=97=B4=E6=AE=B5=E9=A2=84=E7=BA=A6?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/bug/1.0.0bug.md | 24 +++++++++++++++---- .../Controllers/SQController.cs | 12 ++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/docs/bug/1.0.0bug.md b/docs/bug/1.0.0bug.md index b1e72ca..5dbb6dd 100644 --- a/docs/bug/1.0.0bug.md +++ b/docs/bug/1.0.0bug.md @@ -2,8 +2,8 @@ ## Bug统计 - **总数量**: 9个 -- **已修复**: 2个 ✅ -- **未修改**: 7个 +- **已修复**: 3个 ✅ +- **未修改**: 6个 - **分类**: 后端问题 6个,前端问题 2个,前后端问题 3个 --- @@ -77,7 +77,7 @@ --- ### cs120_1 - 时间段预约逻辑错误 -**状态**: 未修改 +**状态**: ✅ 已修复 **类型**: 后端 **优先级**: 高 @@ -92,6 +92,22 @@ **解决方案**: 凌晨、上午已经被预约时,提交预约应直接提示用户该时间段已被预约,不允许创建。 +**修复内容**: +1. **后端接口修改** (`server/CoreCms.Net.Web.WebApi/Controllers/SQController.cs`) + - 在`CanCreateSQReservation`方法中添加时间验证 + - 检查预约开始时间是否为过去时间 + - 如果`start_time`小于等于当前时间,返回错误信息"不能预约过去的时间" + - 验证位置:在参数校验之后,时长验证之前 + +**修复逻辑**: +- 获取当前时间`DateTime.Now` +- 比较预约开始时间与当前时间 +- 如果开始时间已过去,立即返回错误,阻止预约创建 +- 确保用户无法创建过去时间的预约 + +**修复时间**: 2025-01-01 +**测试状态**: 待测试 + **涉及接口**: - `CanCreateSQReservation` - 预约前校验 - `AddSQReservation` - 创建预约 @@ -254,7 +270,7 @@ ## 修复优先级建议 ### 🔴 高优先级(影响核心功能) -- cs120_1 - 时间段预约逻辑错误 +- ✅ cs120_1 - 时间段预约逻辑错误(已修复) - cs120_2 - 开始时间选择无限制 - cs120_9 - 鸽子费审核功能缺失 diff --git a/server/CoreCms.Net.Web.WebApi/Controllers/SQController.cs b/server/CoreCms.Net.Web.WebApi/Controllers/SQController.cs index 908f7ce..1a076bd 100644 --- a/server/CoreCms.Net.Web.WebApi/Controllers/SQController.cs +++ b/server/CoreCms.Net.Web.WebApi/Controllers/SQController.cs @@ -754,6 +754,18 @@ public class SQController : ControllerBase }; } + // 1.0 验证预约时间不能是过去的时间 + var now = DateTime.Now; + if (start_time <= now) + { + return new WebApiDto() + { + Code = 500, + Data = new { canCreate = false }, + Msg = "不能预约过去的时间" + }; + } + // 1.1 验证预约时长(最短1小时,最长12小时) var duration = (end_time - start_time).TotalHours; if (duration < 1)