This commit is contained in:
tanglong 2026-01-28 17:08:52 +08:00
parent 795601cf18
commit 788f469f14

View File

@ -248,33 +248,41 @@ namespace VOL.Ai.Services
// ========================= // =========================
// 7️⃣ 回查数据库,组装返回 DTO // 7️⃣ 回查数据库,组装返回 DTO
// ========================= // =========================
// 1️⃣ 先从数据库拿所有年级和班级
var dbGrades = await _studentRepository.DbContext.Set<JS_Grade>() var dbGrades = await _studentRepository.DbContext.Set<JS_Grade>()
.Where(x => x.SchoolCode == schoolCode && allGradeNos.Contains(x.GradeNo)) .Where(x => x.SchoolCode == schoolCode && allGradeNos.Contains(x.GradeNo))
.Include(g => g.Classes) .Include(g => g.Classes)
.ToListAsync(); .ToListAsync();
// 按 GradeNo 分组,只取每组第一个 // 2️⃣ 按 GradeNo 分组
var distinctGrades = dbGrades var groupedGrades = dbGrades
.GroupBy(g => g.GradeNo) .GroupBy(g => g.GradeNo);
.Select(g => g.First())
.ToList();
res.Grade = distinctGrades // 3️⃣ 组装 DTO:每组取第一个年级信息,但班级取全部
.Where(g => g.Classes != null && g.Classes.Any()) res.Grade = groupedGrades
.Select(g => new Grades .Select(g =>
{ {
Id = (int)g.Id, var firstGrade = g.First(); // 取年级信息
Name = g.GradeName, // 班级合并所有年级的班级
Class = g.Classes.Select(c => new Classes var allClasses = g.SelectMany(x => x.Classes ?? Enumerable.Empty<JS_Class>()).ToList();
return new Grades
{ {
Id = (int)c.Id, Id =1,
Name = c.ClassName Name = firstGrade.GradeName,
}).ToList() Class = allClasses
.Select(c => new Classes
{
Id = (int)c.Id,
Name = c.ClassName
})
.ToList()
};
}) })
.Where(g => g.Class.Any()) // 过滤掉没有班级的年级
.ToList(); .ToList();
//return res;
return res;
//if (string.IsNullOrWhiteSpace(paramDto.Code)) //if (string.IsNullOrWhiteSpace(paramDto.Code))
// throw new ArgumentException("学校编码不能为空", nameof(paramDto.Code)); // throw new ArgumentException("学校编码不能为空", nameof(paramDto.Code));
@ -313,7 +321,7 @@ namespace VOL.Ai.Services
// Class = g.Classes // Class = g.Classes
// .Select((c, classIndex) => new Classes // .Select((c, classIndex) => new Classes
// { // {
// Id = classIndex + 1, // Id = classIndex + 1,
// Name = c.ClassName // Name = c.ClassName
// }) // })
// .ToList() // .ToList()
@ -322,7 +330,9 @@ namespace VOL.Ai.Services
// .ToList() // .ToList()
//}; //};
//return res; var json= JsonConvert.SerializeObject(res);
return res;
} }
public Ai_OSSInfoDto OSSInfo(Ai_Request paramDto) public Ai_OSSInfoDto OSSInfo(Ai_Request paramDto)