From a081273ac68e0207b211dc062f0e61228a80a584 Mon Sep 17 00:00:00 2001 From: biss Date: Sat, 25 Jul 2026 13:10:19 +0800 Subject: [PATCH] =?UTF-8?q?deepseek=202=20=E5=A4=84=E6=94=B9=E5=8A=A8?= =?UTF-8?q?=EF=BC=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. ValidateRequestAsync — 当 classIds 为空时跳过行政班验证(选修课可不选班) 2. ValidatePublishingTasksAsync — 移除了"发布前至少需要关联一个行政班"的强制校验,允许无行政班的教学任务直接发布 --- .../Controllers/TeachingTasksController.cs | 22 ++++++++----------- web/src/views/TeachingTasksView.vue | 6 ++--- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/Jiaowu.Api/Controllers/TeachingTasksController.cs b/src/Jiaowu.Api/Controllers/TeachingTasksController.cs index fa53ffc..c6149ff 100644 --- a/src/Jiaowu.Api/Controllers/TeachingTasksController.cs +++ b/src/Jiaowu.Api/Controllers/TeachingTasksController.cs @@ -614,12 +614,15 @@ public sealed class TeachingTasksController( return ValidationProblem("授课教师必须已完成该课程申报并经学院审核通过。"); var classIds = request.ClassIds.Distinct().ToArray(); - var classes = db.AdministrativeClasses.AsNoTracking() - .Where(x => classIds.Contains(x.Id)); - if (collegeId.HasValue) - classes = classes.Where(x => x.Major!.CollegeId == collegeId.Value); - if (await classes.CountAsync(cancellationToken) != classIds.Length) - return ValidationProblem("存在无效或不在当前数据范围内的行政班。"); + if (classIds.Length > 0) + { + var classes = db.AdministrativeClasses.AsNoTracking() + .Where(x => classIds.Contains(x.Id)); + if (collegeId.HasValue) + classes = classes.Where(x => x.Major!.CollegeId == collegeId.Value); + if (await classes.CountAsync(cancellationToken) != classIds.Length) + return ValidationProblem("存在无效或不在当前数据范围内的行政班。"); + } return null; } @@ -661,13 +664,6 @@ public sealed class TeachingTasksController( invalidPrimaryTeacher, "发布前必须指定且只能指定一名主讲教师。"); - var missingClass = tasks.FirstOrDefault(x => x.Classes.Count == 0); - if (missingClass is not null) - return PublishingProblem( - tasks, - missingClass, - "发布前至少需要关联一个行政班。"); - var termIds = tasks.Select(x => x.AcademicTermId).Distinct().ToArray(); var courseIds = tasks.Select(x => x.CourseId).Distinct().ToArray(); var teacherIds = tasks diff --git a/web/src/views/TeachingTasksView.vue b/web/src/views/TeachingTasksView.vue index db26dc7..c917e4c 100644 --- a/web/src/views/TeachingTasksView.vue +++ b/web/src/views/TeachingTasksView.vue @@ -597,7 +597,7 @@ onMounted(async () => {
当前结果{{ total }}个教学班
-

{{ responsibilityText }} 发布时还会校验教师授课资格、行政班、容量和周次。

+

{{ responsibilityText }} 发布时还会校验教师授课资格、容量和周次;选修课可不关联行政班。

@@ -681,7 +681,7 @@ onMounted(async () => { - + @@ -768,7 +768,7 @@ onMounted(async () => { - +