diff --git a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfo.cs b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfo.cs
index ddc9d82..c8d8b02 100644
--- a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfo.cs
+++ b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfo.cs
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("YD_XinWei.Commons")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+782af8743bef71ca7e5f90325feac2f11e237ba5")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a425fcc1a41944f64a69d9b5ababdd07169c6a0d")]
[assembly: System.Reflection.AssemblyProductAttribute("YD_XinWei.Commons")]
[assembly: System.Reflection.AssemblyTitleAttribute("YD_XinWei.Commons")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfoInputs.cache b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfoInputs.cache
index 47af991..bf2b749 100644
--- a/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfoInputs.cache
+++ b/Server/YD_XinWei.Commons/obj/Debug/net6.0/YD_XinWei.Commons.AssemblyInfoInputs.cache
@@ -1 +1 @@
-447043ac812b4df2d70deda46e4a67dbde0640288a02436e158cbdcbef673673
+ccb578c866c97170d1abbe168fb35ec821458a73a52b86c4e9d961def395e327
diff --git a/Server/YD_XinWei/Services/Impl/XinWeiService.cs b/Server/YD_XinWei/Services/Impl/XinWeiService.cs
index 3263ab9..60093cd 100644
--- a/Server/YD_XinWei/Services/Impl/XinWeiService.cs
+++ b/Server/YD_XinWei/Services/Impl/XinWeiService.cs
@@ -353,6 +353,11 @@ namespace YD_XinWei.Api.Services.Impl
stu.Achievement2 = stu.Achievement2 / 10;
}
+ if (dto.ProjectId == 3)
+ {
+ stu.Achievement = (stu.Achievement ?? 0) / 1000;
+ }
+
if (dto.ProjectId == 21)
{
var value = stu.Achievement2;
@@ -478,7 +483,7 @@ namespace YD_XinWei.Api.Services.Impl
sportsTestValueEntity.Value = value;
sportsTestValueEntity.Creator = dto.OrgId ?? 0;
sportsTestValueEntity.CreateDate = nowTime;
- sportsTestValueEntity.ScoreTime = Convert.ToDateTime(dto.StartTime);
+ sportsTestValueEntity.ScoreTime = Convert.ToDateTime(dto.EndTime);
sportsTestValueEntity.AdditionalScore = (float)(data.PlusesScore ?? 0);
SemesterDto semesterDto = new SemesterDto();
@@ -639,7 +644,7 @@ namespace YD_XinWei.Api.Services.Impl
x.Achievement
}).ToListAsync();
- var student = studentResults.Where(x => x.Id == dto.TrainStudentId).OrderByDescending(x => x.Achievement).FirstOrDefault();
+ var student = studentResults.Where(x => x.Id == dto.TrainStudentId).OrderByDescending(x => x.Score).FirstOrDefault();
if (student == null)
{
@@ -691,6 +696,7 @@ namespace YD_XinWei.Api.Services.Impl
///
public async Task HistoryPersonGet(HistoryPersonGetDto dto)
{
+ // 1️⃣ 获取该机构、项目、模型类型的训练数据
var trainList = await _sportsContext.XW_SportsTestData
.Where(x =>
x.OrgId == dto.OrgId &&
@@ -698,9 +704,14 @@ namespace YD_XinWei.Api.Services.Impl
x.ModelType == dto.ModelType)
.ToListAsync();
+ if (!trainList.Any())
+ return new TrainHistoryPersonVo();
+
var trainIds = trainList.Select(t => t.Id).ToList();
- var studentResults = await _sportsContext.XW_TrainStudents.Where(x => trainIds.Contains(x.XW_SportsTestDataId))
+ // 2️⃣ 获取学生成绩数据
+ var studentResults = await _sportsContext.XW_TrainStudents
+ .Where(x => trainIds.Contains(x.XW_SportsTestDataId))
.Select(x => new
{
x.Id,
@@ -712,38 +723,73 @@ namespace YD_XinWei.Api.Services.Impl
x.Score,
x.Achievement,
x.CreateTime
- }).ToListAsync();
+ })
+ .ToListAsync();
- var student = studentResults.Where(x => x.StudentId == dto.StudentId).OrderByDescending(x => x.Achievement).FirstOrDefault();
+ // 3️⃣ 获取指定学生
+ var student = studentResults
+ .Where(x => x.StudentId == dto.StudentId)
+ .OrderByDescending(x => x.Achievement)
+ .FirstOrDefault();
if (student == null)
- {
return new TrainHistoryPersonVo();
- }
- var rankedResults = studentResults.Where(x => x.GradeId == student.GradeId)
- .OrderByDescending(x => x.Achievement)
- .Select((x, index) => new { x, Rank = index + 1 })
- .ToList();
-
- var monthList = studentResults.Where(x => DateTime.TryParse(x.CreateTime, out var date) && date.Year == DateTime.Now.Year && date.Month == DateTime.Now.Month).ToList();
- var monthRankedResults = studentResults.Where(x => x.GradeId == student.GradeId)
- .OrderByDescending(x => x.Achievement)
+ // 4️⃣ 历史排名(按 Score 排序)
+ var rankedResults = studentResults
+ .Where(x => x.GradeId == student.GradeId)
+ .OrderByDescending(x => x.Score)
.Select((x, index) => new { x, Rank = index + 1 })
.ToList();
- var stuHeadUrl = await _sportsContext.Student.Where(x => x.Id == student.StudentId).Select(x => x.Photo).FirstOrDefaultAsync();
+ // 5️⃣ 当月数据及当月排名(按 Score 排序)
+ var monthList = studentResults
+ .Where(x => DateTime.TryParse(x.CreateTime, out var date)
+ && date.Year == DateTime.Now.Year
+ && date.Month == DateTime.Now.Month)
+ .ToList();
+ var monthRankedResults = monthList
+ .Where(x => x.GradeId == student.GradeId)
+ .OrderByDescending(x => x.Score) // 按 Score 排名
+ .Select((x, index) => new { x, Rank = index + 1 })
+ .ToList();
+
+ // 6️⃣ 获取学生头像
+ var stuHeadUrl = await _sportsContext.Student
+ .Where(x => x.Id == student.StudentId)
+ .Select(x => x.Photo)
+ .FirstOrDefaultAsync();
+
+ // 7️⃣ 找总历史最高分对应的 Achievement(Score 最大)
+ var bestStudentOverall = studentResults
+ .OrderByDescending(x => x.Score)
+ .FirstOrDefault();
+
+ // 8️⃣ 找本月最高分对应的 Achievement(Score 最大)
+ var bestStudentMonth = monthList
+ .OrderByDescending(x => x.Score)
+ .FirstOrDefault();
+
+ // 9️⃣ 构建返回对象
var res = new TrainHistoryPersonVo()
{
ClassName = student.ClassName,
HeadImgUrl = stuHeadUrl,
Sex = student.Sex == 1 ? "男" : "女",
StudentName = student.StudentName,
- HistoryBestScore = studentResults.Max(x => x.Achievement).ToString() ?? "无数据",
- HistoryRanking = rankedResults.FirstOrDefault(x => x.x.Achievement == student.Achievement)?.Rank.ToString() ?? "-1",
- MonthBestScore = monthList.Max(x => x.Achievement).ToString() ?? "无数据",
- MonthRanking = monthRankedResults.FirstOrDefault(x => x.x.Achievement == student.Achievement)?.Rank.ToString() ?? "-1"
+
+ // 总历史最高成绩对应 Achievement
+ HistoryBestScore = bestStudentOverall?.Achievement?.ToString("0.###") ?? "无数据",
+
+ // 历史排名(按 Score)
+ HistoryRanking = rankedResults.FirstOrDefault(x => x.x.Id == student.Id)?.Rank.ToString() ?? "-1",
+
+ // 本月最高成绩对应 Achievement
+ MonthBestScore = bestStudentMonth?.Achievement?.ToString("0.###") ?? "无数据",
+
+ // 当月排名(按 Score)
+ MonthRanking = monthRankedResults.FirstOrDefault(x => x.x.Id == student.Id)?.Rank.ToString() ?? "-1"
};
return res;
@@ -797,7 +843,8 @@ namespace YD_XinWei.Api.Services.Impl
TrainStudentId = x.Id,
ClassName = x.ClassName,
CreateTime = x.CreateTime ?? "无数据",
- Achievement = dto.ModelType == 7 ? (x.Achievement.HasValue ? $"{x.Achievement.Value / 1000}.{x.Achievement.Value % 1000}" : "无数据") : (x.Achievement.HasValue ? x.Achievement.Value.ToString() : "无数据"),
+ //Achievement = dto.ModelType == 7 ? (x.Achievement.HasValue ? $"{x.Achievement.Value / 1000}.{x.Achievement.Value % 1000}" : "无数据") : (x.Achievement.HasValue ? x.Achievement.Value.ToString() : "无数据"),
+ Achievement = x.Achievement.HasValue ? x.Achievement.Value.ToString("0.###") : "无数据",
Rating = x.Score.GetRankStr(),
Score = x.Score.ToString() ?? "无数据",
Sex = x.Sex == 1 ? "男" : "女",
@@ -910,7 +957,6 @@ namespace YD_XinWei.Api.Services.Impl
return res;
}
-
///
/// 获取成绩榜中显示的体育项目
///
diff --git a/Server/YD_XinWei/SmartSportsEntitys/XW_TrainStudents.cs b/Server/YD_XinWei/SmartSportsEntitys/XW_TrainStudents.cs
index ff7ed00..d5217ca 100644
--- a/Server/YD_XinWei/SmartSportsEntitys/XW_TrainStudents.cs
+++ b/Server/YD_XinWei/SmartSportsEntitys/XW_TrainStudents.cs
@@ -37,7 +37,7 @@ namespace VOL.Entity.DomainModels.XinWei
///
[Display(Name = "ProjectKind")]
[Comment("项目类型(1跳绳2跑步)")]
- public double? ProjectKind { get; set; }
+ public int? ProjectKind { get; set; }
///
/// 学校ID
@@ -121,7 +121,7 @@ namespace VOL.Entity.DomainModels.XinWei
///
[Display(Name = "Sex")]
[Comment("性别(1男2女)")]
- public double? Sex { get; set; }
+ public int? Sex { get; set; }
///
/// 学号
@@ -135,7 +135,7 @@ namespace VOL.Entity.DomainModels.XinWei
///
[Display(Name = "Achievement")]
[Comment("标准成绩")]
- public int? Achievement { get; set; }
+ public double? Achievement { get; set; }
///
/// 原始标准成绩(被格式化小数点之前的)
diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfo.cs b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfo.cs
index 9d39a7f..712489e 100644
--- a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfo.cs
+++ b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfo.cs
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("YD_XinWei.Api")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+782af8743bef71ca7e5f90325feac2f11e237ba5")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a425fcc1a41944f64a69d9b5ababdd07169c6a0d")]
[assembly: System.Reflection.AssemblyProductAttribute("YD_XinWei.Api")]
[assembly: System.Reflection.AssemblyTitleAttribute("YD_XinWei.Api")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfoInputs.cache b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfoInputs.cache
index b283f4b..945e6a7 100644
--- a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfoInputs.cache
+++ b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.AssemblyInfoInputs.cache
@@ -1 +1 @@
-6717e2e379a38b048ebb8caed4fe5b735e1362513cda51c914771a1e1cf058f6
+6e80e67035635d6beb9cea7c8e7e6068f63834e334f37871982a30f1e60e5a4c
diff --git a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.AssemblyReference.cache b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.AssemblyReference.cache
index cd24dbc..1dc6f7f 100644
Binary files a/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.AssemblyReference.cache and b/Server/YD_XinWei/obj/Debug/net6.0/YD_XinWei.Api.csproj.AssemblyReference.cache differ
diff --git a/Server/YD_XinWei/obj/Debug/net6.0/apphost.exe b/Server/YD_XinWei/obj/Debug/net6.0/apphost.exe
index 25b0dab..c041074 100644
Binary files a/Server/YD_XinWei/obj/Debug/net6.0/apphost.exe and b/Server/YD_XinWei/obj/Debug/net6.0/apphost.exe differ