diff --git a/VOL.WebApi/Controllers/JingShiTiJiao/JingShiTiJiaoController.cs b/VOL.WebApi/Controllers/JingShiTiJiao/JingShiTiJiaoController.cs index 0d45890..a1b87ff 100644 --- a/VOL.WebApi/Controllers/JingShiTiJiao/JingShiTiJiaoController.cs +++ b/VOL.WebApi/Controllers/JingShiTiJiao/JingShiTiJiaoController.cs @@ -12,6 +12,7 @@ using VOL.Business.IServices; using VOL.Business.IServices.Training; using VOL.Core.Filters; using VOL.Core.Utilities; +using VOL.Entity.DomainModels; using VOL.Entity.Enum; using VOL.Model; using VOL.Model.HomeWork; @@ -32,15 +33,16 @@ namespace VOL.WebApi.Controllers.JingShiTiJiao private readonly IS_HomeWorkService _homeWorkService; private readonly IJingShiTiJiaoService _jingShiTiJiaoService; - - private readonly II_TrainingDataService _trainingDataService; + + private readonly S_StudentRepository _studentRepository; public JingShiTiJiaoController( - IS_HomeWorkService homeWorkService, II_TrainingDataService trainingDataService,IJingShiTiJiaoService jingShiTiJiaoService) + IS_HomeWorkService homeWorkService, II_TrainingDataService trainingDataService,IJingShiTiJiaoService jingShiTiJiaoService, S_StudentRepository studentRepository) { _homeWorkService = homeWorkService; _trainingDataService = trainingDataService; _jingShiTiJiaoService = jingShiTiJiaoService; + _studentRepository = studentRepository; } #endregion @@ -129,25 +131,37 @@ namespace VOL.WebApi.Controllers.JingShiTiJiao if (string.IsNullOrWhiteSpace(schoolCode)) return new List(); - // 1️⃣ 调用京师接口获取年级班级 - var schoolClass = await _jingShiTiJiaoService.GetClassBySchoolAsync(schoolCode); + // 1️⃣ 从数据库读取年级 + var grades = await _studentRepository.DbContext.Set() + .Where(x => x.SchoolCode == schoolCode) + .ToListAsync(); - if (schoolClass == null || schoolClass.Grades == null || !schoolClass.Grades.Any()) + if (grades == null || !grades.Any()) return new List(); - // 2️⃣ 将接口结果映射为 GradeNameModel - var result = schoolClass.Grades.Select(g => new GradeNameModel + // 2️⃣ 从数据库读取班级 + var allGradeNos = grades.Select(x => x.GradeNo).ToList(); + var classes = await _studentRepository.DbContext.Set() + .Where(x => x.SchoolCode == schoolCode && allGradeNos.Contains(x.GradeNo)) + .ToListAsync(); + + // 3️⃣ 按年级分组班级 + var result = grades.Select(g => new GradeNameModel { - Id = 0, // 如果数据库中没有对应Id,可先填0或后续映射数据库Id + Id = (int)g.Id, GradeName = g.GradeName, - Class = g.Classes?.Select(c => new ClassNameModel - { - Id = 0, // 同理,暂时填0 - ClassName = c.ClassName - }).ToList() ?? new List() + Class = classes + .Where(c => c.GradeNo == g.GradeNo) + .Select(c => new ClassNameModel + { + Id = (int)c.Id, + ClassName = c.ClassName + }) + .ToList() }).ToList(); return result; } + } }