2 处改动:

  1. ValidateRequestAsync — 当 classIds 为空时跳过行政班验证(选修课可不选班)
  2. ValidatePublishingTasksAsync — 移除了"发布前至少需要关联一个行政班"的强制校验,允许无行政班的教学任务直接发布
This commit is contained in:
2026-07-25 13:10:19 +08:00 Unverified
parent b015514115
commit a081273ac6
2 changed files with 12 additions and 16 deletions
@@ -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