接口对接
This commit is contained in:
parent
35c2f8c647
commit
020145b6d5
@ -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)
|
|
||||||
{
|
|
||||||
var (start, end) = GetDateRange(dto.DateType, dto.QueryStartTime, dto.QueryEndTime);
|
|
||||||
|
|
||||||
if (start.HasValue)
|
if (start.HasValue)
|
||||||
query = query.Where(x => x.t.StartTime >= start.Value);
|
query = query.Where(x => x.t.StartTime >= start.Value);
|
||||||
|
|
||||||
if (end.HasValue)
|
if (end.HasValue)
|
||||||
query = query.Where(x => x.t.StartTime < end.Value.AddDays(1));
|
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)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user