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.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<GradeNameModel>();
// 1️⃣ 调用京师接口获取年级班级
var schoolClass = await _jingShiTiJiaoService.GetClassBySchoolAsync(schoolCode);
// 1️⃣ 从数据库读取年级
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>();
// 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<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,
Class = g.Classes?.Select(c => new ClassNameModel
{
Id = 0, // 同理,暂时填0
ClassName = c.ClassName
}).ToList() ?? new List<ClassNameModel>()
Class = classes
.Where(c => c.GradeNo == g.GradeNo)
.Select(c => new ClassNameModel
{
Id = (int)c.Id,
ClassName = c.ClassName
})
.ToList()
}).ToList();
return result;
}
}
}