课堂报告
This commit is contained in:
parent
17d110a878
commit
b6583ed53a
@ -1,4 +1,5 @@
|
||||
using AutoMapper;
|
||||
using EFCore.BulkExtensions;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
@ -253,7 +254,7 @@ namespace VOL.Ai.Services
|
||||
.ToListAsync();
|
||||
|
||||
res.Grade = dbGrades
|
||||
.Where(g => g.Classes != null && g.Classes.Any())
|
||||
.Where(g => g.Classes != null && g.Classes.Any())
|
||||
.Select(g => new Grades
|
||||
{
|
||||
Id = (int)g.Id,
|
||||
@ -1520,6 +1521,25 @@ namespace VOL.Ai.Services
|
||||
if (teacher == null || string.IsNullOrWhiteSpace(teacher.TeacherNo) || string.IsNullOrWhiteSpace(teacher.TeacherName))
|
||||
throw new Exception("获取京师老师信息失败!");
|
||||
|
||||
// 2️⃣ 查询数据库中是否已有该老师
|
||||
var dbTeacher = await _teacherRepository.DbContext.Set<JS_Teacher>()
|
||||
.FirstOrDefaultAsync(t => t.TeacherNo == teacher.TeacherNo);
|
||||
|
||||
if (dbTeacher == null)
|
||||
{
|
||||
// 老师不存在,新增
|
||||
dbTeacher = new JS_Teacher
|
||||
{
|
||||
TeacherNo = teacher.TeacherNo,
|
||||
TeacherName = teacher.TeacherName,
|
||||
SchoolCode = paramDto.SchoolCode,
|
||||
Code = paramDto.Code
|
||||
};
|
||||
|
||||
await _teacherRepository.DbContext.Set<JS_Teacher>().AddAsync(dbTeacher);
|
||||
await _teacherRepository.DbContext.SaveChangesAsync();
|
||||
}
|
||||
|
||||
var gradeDtos = teacher.GradeList ?? new List<GradeDto>();
|
||||
var allGradeNos = gradeDtos.Where(g => !string.IsNullOrWhiteSpace(g.GradeNo))
|
||||
.Select(g => g.GradeNo)
|
||||
@ -1531,18 +1551,29 @@ namespace VOL.Ai.Services
|
||||
.Include(g => g.Classes)
|
||||
.ToListAsync();
|
||||
|
||||
// 4️⃣ 更新已存在的年级老师信息(直接 UPDATE)
|
||||
foreach (var grade in existGrades)
|
||||
{
|
||||
grade.TeacherNo = teacher.TeacherNo;
|
||||
grade.TeacherName = teacher.TeacherName;
|
||||
var existClasses = existGrades.SelectMany(g => g.Classes).ToList();
|
||||
|
||||
foreach (var cls in grade.Classes)
|
||||
{
|
||||
cls.TeacherNo = teacher.TeacherNo;
|
||||
cls.TeacherName = teacher.TeacherName;
|
||||
}
|
||||
}
|
||||
// 先删班级
|
||||
_studentRepository.DbContext.Set<JS_Class>().RemoveRange(existClasses);
|
||||
|
||||
// 再删年级
|
||||
_studentRepository.DbContext.Set<JS_Grade>().RemoveRange(existGrades);
|
||||
|
||||
await _studentRepository.DbContext.SaveChangesAsync();
|
||||
|
||||
|
||||
// 4️⃣ 更新已存在的年级老师信息(直接 UPDATE)
|
||||
//foreach (var grade in existGrades)
|
||||
//{
|
||||
// grade.TeacherNo = teacher.TeacherNo;
|
||||
// grade.TeacherName = teacher.TeacherName;
|
||||
|
||||
// foreach (var cls in grade.Classes)
|
||||
// {
|
||||
// cls.TeacherNo = teacher.TeacherNo;
|
||||
// cls.TeacherName = teacher.TeacherName;
|
||||
// }
|
||||
//}
|
||||
|
||||
// 5️⃣ 构造新增年级和班级
|
||||
var newGrades = new List<JS_Grade>();
|
||||
@ -1584,12 +1615,12 @@ namespace VOL.Ai.Services
|
||||
|
||||
// 6️⃣ 保存所有修改和新增
|
||||
|
||||
// EF Core 显式标记更新
|
||||
_studentRepository.UpdateRange(existGrades);
|
||||
//// EF Core 显式标记更新
|
||||
//_studentRepository.UpdateRange(existGrades);
|
||||
|
||||
// 同时更新所有班级(必须显式)
|
||||
var allClasses = existGrades.SelectMany(g => g.Classes).ToList();
|
||||
_classRepository.UpdateRange(allClasses);
|
||||
//// 同时更新所有班级(必须显式)
|
||||
//var allClasses = existGrades.SelectMany(g => g.Classes).ToList();
|
||||
//_classRepository.UpdateRange(allClasses);
|
||||
|
||||
await _studentRepository.DbContext.SaveChangesAsync();
|
||||
|
||||
@ -1601,7 +1632,7 @@ namespace VOL.Ai.Services
|
||||
|
||||
var res = new Ai_TeacherFaceInfo
|
||||
{
|
||||
Id = 0,
|
||||
Id = (int)dbTeacher.Id,
|
||||
TeacherName = teacher.TeacherName,
|
||||
Phone = teacher.TeacherNo,
|
||||
GradeAndClassList = dbGrades
|
||||
@ -1614,6 +1645,31 @@ namespace VOL.Ai.Services
|
||||
.ToList()
|
||||
};
|
||||
|
||||
|
||||
//// 3️⃣ 直接从 teacher 里组装年级班级数据(不进数据库)
|
||||
//var gradeDtos = teacher.GradeList ?? new List<GradeDto>();
|
||||
|
||||
//var classList = gradeDtos
|
||||
// .Where(g => !string.IsNullOrWhiteSpace(g.GradeNo))
|
||||
// .SelectMany(g => g.ClassList ?? new List<ClassDto>(),
|
||||
// (g, c) => new { g, c })
|
||||
// .Where(x => !string.IsNullOrWhiteSpace(x.c.ClassNo))
|
||||
// .Select(x => new Classes
|
||||
// {
|
||||
// Id = 0, // 不落库,Id 没意义
|
||||
// Name = $"{x.g.GradeName}-{x.c.ClassName}"
|
||||
// })
|
||||
// .ToList();
|
||||
|
||||
//// 4️⃣ 返回结果
|
||||
//var res = new Ai_TeacherFaceInfo
|
||||
//{
|
||||
// Id = 0,
|
||||
// TeacherName = teacher.TeacherName,
|
||||
// Phone = teacher.TeacherNo,
|
||||
// GradeAndClassList = classList
|
||||
//};
|
||||
|
||||
// 8️⃣ 删除扫码记录
|
||||
_scanCodeLoginRepository.Delete(loginInfo);
|
||||
await _scanCodeLoginRepository.SaveChangesAsync();
|
||||
@ -1622,7 +1678,6 @@ namespace VOL.Ai.Services
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 登录
|
||||
/// </summary>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user