diff --git a/YD_AllHeartRates.Api/Services/Impl/LargeScreenService.cs b/YD_AllHeartRates.Api/Services/Impl/LargeScreenService.cs index e318e30..48d8d7d 100644 --- a/YD_AllHeartRates.Api/Services/Impl/LargeScreenService.cs +++ b/YD_AllHeartRates.Api/Services/Impl/LargeScreenService.cs @@ -82,6 +82,24 @@ namespace YD_AllHeartRates.Api.Services.Impl return res; } + /// + /// 根据班级Id获取学生列表 + /// + /// + /// + public async Task> StudentList(int classId) + { + var res = await _sportsContext.Student.Where(x => x.SchoolCode == schoolCode && x.ClassId == classId).Select(x => new StudentDto + { + StudentNo = x.StudentNo, + StudentName = x.StudentName, + Photo = x.Photo ?? "", + Sex = x.Sex + }).ToListAsync(); + + return res; + } + /// /// 心率数据 /// @@ -105,14 +123,20 @@ namespace YD_AllHeartRates.Api.Services.Impl string studentListKey = $"students:{schoolCode}:{classId}"; // 2. 尝试从缓存获取 - var studentList = _caching.Get>(studentListKey); + var studentList = _caching.Get>(studentListKey); // 3. 如果缓存没有 → 查询数据库 + 写入缓存 if (studentList == null) { studentList = await _sportsContext.Student .Where(x => x.ClassId == classId && x.SchoolCode == schoolCode && x.StudentStatus == 1) - .ToListAsync(); + .Select(x => new StudentDto + { + StudentNo = x.StudentNo, + StudentName = x.StudentName, + Sex = x.Sex, + Photo = x.Photo ?? "" + }).ToListAsync(); _caching.AddObject(studentListKey, studentList, 28800); // 缓存 8 小时 } @@ -196,6 +220,5 @@ namespace YD_AllHeartRates.Api.Services.Impl return res; } - } } diff --git a/YD_AllHeartRates.Api/Services/Interface/ILargeScreenService.cs b/YD_AllHeartRates.Api/Services/Interface/ILargeScreenService.cs index c2f0b34..d55e4ca 100644 --- a/YD_AllHeartRates.Api/Services/Interface/ILargeScreenService.cs +++ b/YD_AllHeartRates.Api/Services/Interface/ILargeScreenService.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Mvc; +using YD_AllHeartRates.Commons.Dto.HeartRateRepor; using YD_AllHeartRates.Commons.Dto.LargeScreen; namespace YD_AllHeartRates.Api.Services.Interface @@ -14,6 +15,13 @@ namespace YD_AllHeartRates.Api.Services.Interface /// Task SchoolInfo(); + /// + /// 根据班级获取学生 + /// + /// + /// + Task> StudentList(int classId); + /// /// 心率数据 /// diff --git a/YD_AllHeartRates.Commons/Dto/LargeScreen/SchoolDto.cs b/YD_AllHeartRates.Commons/Dto/LargeScreen/SchoolDto.cs index 5162a66..659842f 100644 --- a/YD_AllHeartRates.Commons/Dto/LargeScreen/SchoolDto.cs +++ b/YD_AllHeartRates.Commons/Dto/LargeScreen/SchoolDto.cs @@ -64,4 +64,5 @@ namespace YD_AllHeartRates.Commons.Dto.LargeScreen /// public string Name { get; set; } } + }