From be49a2586fdc6e685b0d952f28b4bbbd01a5a96f Mon Sep 17 00:00:00 2001 From: biss Date: Sat, 15 Aug 2026 10:23:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=BC=94=E7=A4=BA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8F=92=E5=85=A5=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Infrastructure/Persistence/DemoDataSeeder.cs | 14 ++++++++------ tests/Jiaowu.Api.Tests/DemoDataSeederTests.cs | 10 +++++++++- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Jiaowu.Api/Infrastructure/Persistence/DemoDataSeeder.cs b/src/Jiaowu.Api/Infrastructure/Persistence/DemoDataSeeder.cs index 639f605..48d2c3e 100644 --- a/src/Jiaowu.Api/Infrastructure/Persistence/DemoDataSeeder.cs +++ b/src/Jiaowu.Api/Infrastructure/Persistence/DemoDataSeeder.cs @@ -457,16 +457,18 @@ public sealed class DemoDataSeeder( .Select(x => (x.TeacherId, x.CourseId)) .ToHashSet(); var additions = new List(); - for (var teacherIndex = 0; teacherIndex < teachers.Count; teacherIndex++) + foreach (var teacher in teachers) { - var teacher = teachers[teacherIndex]; var professionalCourses = courses .Where(x => x.CollegeId == teacher.CollegeId && - x.Nature is CourseNature.MajorRequired or - CourseNature.MajorElective or CourseNature.Practice) + x.Nature is (CourseNature.MajorRequired or + CourseNature.MajorElective or CourseNature.Practice)) .Take(4); - var selectedPublicCourses = Enumerable.Range(0, 2) - .Select(offset => publicCourses[(teacherIndex + offset) % publicCourses.Count]); + var collegePublicCourses = publicCourses + .Where(x => x.CollegeId == teacher.CollegeId) + .ToList(); + var selectedPublicCourses = collegePublicCourses + .Take(2); foreach (var course in professionalCourses .Concat(selectedPublicCourses) .DistinctBy(x => x.Id)) diff --git a/tests/Jiaowu.Api.Tests/DemoDataSeederTests.cs b/tests/Jiaowu.Api.Tests/DemoDataSeederTests.cs index 61ade12..98c641a 100644 --- a/tests/Jiaowu.Api.Tests/DemoDataSeederTests.cs +++ b/tests/Jiaowu.Api.Tests/DemoDataSeederTests.cs @@ -31,7 +31,15 @@ public sealed class DemoDataSeederTests Assert.Equal(128, await db.Teachers.CountAsync()); Assert.Equal(3640, await db.Students.CountAsync()); Assert.Equal(148, await db.Courses.CountAsync()); - Assert.Equal(736, await db.TeacherCourseApplications.CountAsync()); + Assert.Equal(624, await db.TeacherCourseApplications.CountAsync()); + var crossCollegeApplications = await ( + from application in db.TeacherCourseApplications + join teacher in db.Teachers on application.TeacherId equals teacher.Id + join course in db.Courses on application.CourseId equals course.Id + where teacher.CollegeId != course.CollegeId + select application.Id) + .CountAsync(); + Assert.Equal(0, crossCollegeApplications); Assert.Equal(1, await db.AcademicTerms.CountAsync(x => x.IsCurrent)); Assert.Equal(30, await db.Classrooms.CountAsync()); }