This commit is contained in:
tanglong 2026-01-16 11:26:08 +08:00
parent 9eab177eb2
commit b82d051280

View File

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