我得运动

This commit is contained in:
tanglong 2026-07-01 15:21:39 +08:00
parent 70a067cb6e
commit 86e5d2dc8e
2 changed files with 39 additions and 11 deletions

View File

@ -13,6 +13,7 @@ namespace YD_YiLu.Commons.Dto.DeviceSync
public int DateType { get; set; } public int DateType { get; set; }
public string QueryStartTime { get; set; } public string QueryStartTime { get; set; }
public string QueryEndTime { get; set; } public string QueryEndTime { get; set; }
public List<int> CourseIdList { get; set; } = new List<int>();
public int? CourseType { get; set; } public int? CourseType { get; set; }
} }
@ -49,16 +50,17 @@ namespace YD_YiLu.Commons.Dto.DeviceSync
public class GradeListItem public class GradeListItem
{ {
public string Time { get; set; } public int CourseId { get; set; }
public string Duration { get; set; } public string CourseName { get; set; }
public string Count { get; set; } public string BestGrade { get; set; }
public string AvgGrade { get; set; }
} }
public class GraphTrainListItem public class GraphTrainListItem
{ {
public int CourseId { get; set; } public int CourseId { get; set; }
public string CourseName { get; set; } public string CourseName { get; set; }
public string Time { get; set; } public int Time { get; set; }
public int Count { get; set; } public int Count { get; set; }
} }

View File

@ -872,12 +872,31 @@ namespace YD_YiLu.Api.Services.Impl
if (student == null) return result; if (student == null) return result;
var c = await _context.Class.FindAsync(student.ClassId); var c = await _context.Class.FindAsync(student.ClassId);
result.UserSync = new UserSyncDto
{
UserId = student.Id,
UserType = 2,
Nickname = student.StudentName,
OrganizationId = student.ClassId ?? 0,
OrganizationName = c?.ClassName ?? "",
FacePictureUrl = student.Photo,
Identity = "学生",
Gender = student.Sex == 1 ? "男" : "女",
Birthday = student.Birthday?.ToString("yyyy-MM-dd") ?? "",
UserSerial = student.StudentNo,
Height = "0",
Weight = "0"
};
// 👉 2. 时间范围 // 👉 2. 时间范围
var (start, end) = GetDateRange(dto.DateType, dto.QueryStartTime, dto.QueryEndTime); var (start, end) = GetDateRange(dto.DateType, dto.QueryStartTime, dto.QueryEndTime);
var query = _context.YL_Train var query = _context.YL_Train
.Where(x => x.UserSerial == dto.UserSerial); .Where(x => x.UserSerial == dto.UserSerial
&& x.DeviceSerial == dto.DeviceSerial
&& x.DeviceType == dto.DeviceType
&& x.Score.HasValue
&& x.Score.Value > 0);
if (start.HasValue) if (start.HasValue)
query = query.Where(x => x.StartTime >= start.Value); query = query.Where(x => x.StartTime >= start.Value);
@ -885,7 +904,9 @@ namespace YD_YiLu.Api.Services.Impl
if (end.HasValue) if (end.HasValue)
query = query.Where(x => x.StartTime < end.Value.AddDays(1)); query = query.Where(x => x.StartTime < end.Value.AddDays(1));
if (dto.CourseType > 0) if (dto.CourseIdList != null && dto.CourseIdList.Count > 0)
query = query.Where(x => dto.CourseIdList.Contains(x.CourseId));
else if (dto.CourseType > 0)
query = query.Where(x => x.CourseId == dto.CourseType); query = query.Where(x => x.CourseId == dto.CourseType);
var trains = await query.ToListAsync(); var trains = await query.ToListAsync();
@ -900,12 +921,13 @@ namespace YD_YiLu.Api.Services.Impl
// 👉 4. gradeList(按天统计) // 👉 4. gradeList(按天统计)
var gradeList = trains var gradeList = trains
.GroupBy(x => x.StartTime.Date) .GroupBy(x => x.CourseId)
.Select(g => new GradeListItem .Select(g => new GradeListItem
{ {
Time = g.Key.ToString("yyyy-MM-dd"), CourseId = g.Key,
Duration = g.Sum(x => x.Duration).ToString(), CourseName = Util.GetEnumDescription<CourseType>(g.Key),
Count = g.Sum(x => x.StandardCounts).ToString() BestGrade = (g.Max(x => x.Score) ?? 0).ToString("0.##"),
AvgGrade = (g.Average(x => x.Score) ?? 0).ToString("0.##")
}).ToList(); }).ToList();
// 👉 5. graphTrainList(课目统计) // 👉 5. graphTrainList(课目统计)
@ -915,7 +937,7 @@ namespace YD_YiLu.Api.Services.Impl
{ {
CourseId = g.Key, CourseId = g.Key,
CourseName = Util.GetEnumDescription<CourseType>(g.Key), CourseName = Util.GetEnumDescription<CourseType>(g.Key),
Time = g.Sum(x => x.Duration).ToString(), Time = g.Sum(x => x.Duration),
Count = g.Count() Count = g.Count()
}).ToList(); }).ToList();
@ -960,6 +982,10 @@ namespace YD_YiLu.Api.Services.Impl
GraphTrainList = graphList, GraphTrainList = graphList,
//CourseBestList = courseBestList //CourseBestList = courseBestList
}; };
result.UserSync.Identity = "学生";
result.UserSync.Gender = student.Sex == 1 ? "男" : "女";
result.UserSync.Height = "0";
result.UserSync.Weight = "0";
return result; return result;
} }