接口对接

This commit is contained in:
tanglong 2026-04-09 20:30:17 +08:00
parent 35c2f8c647
commit 020145b6d5

View File

@ -334,6 +334,9 @@ namespace YD_YiLu.Api.Services.Impl
.Select(x => x.SchoolCode) .Select(x => x.SchoolCode)
.FirstAsync(); .FirstAsync();
var (start, end) = GetDateRange(dto.DateType, dto.QueryStartTime, dto.QueryEndTime);
// 4️⃣ 主查询(YL_Train + Student) // 4️⃣ 主查询(YL_Train + Student)
var query = from t in _context.YL_Train var query = from t in _context.YL_Train
join s in _context.Student on t.UserSerial equals s.StudentNo join s in _context.Student on t.UserSerial equals s.StudentNo
@ -350,28 +353,15 @@ namespace YD_YiLu.Api.Services.Impl
if (dto.OrganizeId != null && dto.OrganizeId.Count > 0 && dto.OrganizeId[0] > 0) if (dto.OrganizeId != null && dto.OrganizeId.Count > 0 && dto.OrganizeId[0] > 0)
query = query.Where(x => dto.OrganizeId.Contains(x.s.ClassId ?? 0)); query = query.Where(x => dto.OrganizeId.Contains(x.s.ClassId ?? 0));
if (dto.QueryStartTime != null && dto.QueryEndTime != null) if (start.HasValue)
{ query = query.Where(x => x.t.StartTime >= start.Value);
var (start, end) = GetDateRange(dto.DateType, dto.QueryStartTime, dto.QueryEndTime);
if (start.HasValue) if (end.HasValue)
query = query.Where(x => x.t.StartTime >= start.Value); query = query.Where(x => x.t.StartTime < end.Value.AddDays(1));
if (end.HasValue)
query = query.Where(x => x.t.StartTime < end.Value.AddDays(1));
}
// 6️⃣ 分组求总成绩并排序 // 6️⃣ 分组求总成绩并排序
var grouped = await query var grouped = await query
.GroupBy(x => new .GroupBy(x => new { x.s.Id, x.s.StudentName, x.s.ClassId, x.s.ClassName, x.s.Sex, x.t.CourseId })
{
x.s.Id,
x.s.StudentName,
x.s.ClassId,
x.s.ClassName,
x.s.Sex,
x.t.CourseId,
})
.Select(g => new .Select(g => new
{ {
Key = g.Key, Key = g.Key,
@ -380,7 +370,7 @@ namespace YD_YiLu.Api.Services.Impl
.OrderByDescending(x => x.Score) .OrderByDescending(x => x.Score)
.Skip((dto.Page - 1) * dto.Size) .Skip((dto.Page - 1) * dto.Size)
.Take(dto.Size) .Take(dto.Size)
.ToListAsync(); .ToListAsync(); // ✅ 确保在此处完成
// 7️⃣ 返回结果 // 7️⃣ 返回结果
return grouped.Select(x => new DeviceSyncGradeOrderItemDto return grouped.Select(x => new DeviceSyncGradeOrderItemDto
@ -390,22 +380,13 @@ namespace YD_YiLu.Api.Services.Impl
OrganizationId = x.Key.ClassId ?? 0, OrganizationId = x.Key.ClassId ?? 0,
OrganizationName = x.Key.ClassName ?? "", OrganizationName = x.Key.ClassName ?? "",
Gender = x.Key.Sex, Gender = x.Key.Sex,
Score = x.Score.ToString("0.##"), Score = Math.Round(x.Score).ToString("0"),
CourseId = x.Key.CourseId, CourseId = x.Key.CourseId,
CourseName = Util.GetEnumDescription<CourseType>(x.Key.CourseId) CourseName = Util.GetEnumDescription<CourseType>(x.Key.CourseId)
}).ToList(); }).ToList();
} }
private static DateTime? TryParseTrainTime(string tsCreateTime, string tdStartTime, string tdEndTime)
{
foreach (var s in new[] { tdEndTime, tdStartTime, tsCreateTime })
{
if (string.IsNullOrWhiteSpace(s)) continue;
if (DateTime.TryParse(s, out var d)) return d;
}
return null;
}
public async Task<List<DeviceSyncLastGradeItemDto>> LastGradeAsync(DeviceSyncLastGradeRequestDto dto) public async Task<List<DeviceSyncLastGradeItemDto>> LastGradeAsync(DeviceSyncLastGradeRequestDto dto)
{ {