s
This commit is contained in:
parent
795601cf18
commit
788f469f14
@ -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));
|
||||||
@ -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)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user