选课批次:时间窗口、退课截止、学分上限、开放/关闭。
教学班投放:容量、班级范围、全校开放。 学生选退课:容量、重复课程、学分上限、课表冲突校验。 教学班实时名单。 校级、学院级、学生角色分级操作。 SQLite 本地增量升级及演示数据。 MySQL 正式 EF Core 迁移。 Vue 已编译进 wwwroot,单服务运行无需 npm run dev。 学生端和管理端均完成桌面、手机响应式检查。
This commit is contained in:
@@ -421,6 +421,42 @@ public sealed class DatabaseInitializer(
|
||||
}
|
||||
|
||||
await SeedDevelopmentUsersAsync(computerCollege.Id);
|
||||
await SeedDevelopmentCourseSelectionAsync();
|
||||
}
|
||||
|
||||
private async Task SeedDevelopmentCourseSelectionAsync()
|
||||
{
|
||||
if (await db.CourseSelectionRounds.AnyAsync())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var term = await db.AcademicTerms.SingleAsync(x => x.IsCurrent);
|
||||
var task = await db.TeachingTasks.SingleAsync(
|
||||
x => x.TaskNumber == "2026-1-CS101-01");
|
||||
var now = DateTime.UtcNow;
|
||||
db.CourseSelectionRounds.Add(new CourseSelectionRound
|
||||
{
|
||||
AcademicTermId = term.Id,
|
||||
Name = "2026—2027 学年第一学期第一轮选课",
|
||||
StartsAt = now.AddDays(-2),
|
||||
EndsAt = now.AddDays(14),
|
||||
WithdrawalEndsAt = now.AddDays(21),
|
||||
MaxCredits = 30,
|
||||
Status = CourseSelectionRoundStatus.Open,
|
||||
Notes = "本地开发演示轮次,可用于验证选课、退课和教学班名单。",
|
||||
Offerings =
|
||||
[
|
||||
new CourseSelectionOffering
|
||||
{
|
||||
TeachingTaskId = task.Id,
|
||||
Capacity = 60,
|
||||
IsOpenToAll = false,
|
||||
Notes = "面向计科 2026-1 班开放。"
|
||||
}
|
||||
]
|
||||
});
|
||||
await db.SaveChangesAsync();
|
||||
}
|
||||
|
||||
private async Task SeedDevelopmentUsersAsync(Guid collegeId)
|
||||
|
||||
Reference in New Issue
Block a user