修改
This commit is contained in:
parent
a425fcc1a4
commit
c057e35770
@ -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")]
|
||||
|
||||
@ -1 +1 @@
|
||||
447043ac812b4df2d70deda46e4a67dbde0640288a02436e158cbdcbef673673
|
||||
ccb578c866c97170d1abbe168fb35ec821458a73a52b86c4e9d961def395e327
|
||||
|
||||
@ -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
|
||||
/// <returns></returns>
|
||||
public async Task<TrainHistoryPersonVo> 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;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取成绩榜中显示的体育项目
|
||||
/// </summary>
|
||||
|
||||
@ -37,7 +37,7 @@ namespace VOL.Entity.DomainModels.XinWei
|
||||
/// </summary>
|
||||
[Display(Name = "ProjectKind")]
|
||||
[Comment("项目类型(1跳绳2跑步)")]
|
||||
public double? ProjectKind { get; set; }
|
||||
public int? ProjectKind { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 学校ID
|
||||
@ -121,7 +121,7 @@ namespace VOL.Entity.DomainModels.XinWei
|
||||
/// </summary>
|
||||
[Display(Name = "Sex")]
|
||||
[Comment("性别(1男2女)")]
|
||||
public double? Sex { get; set; }
|
||||
public int? Sex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 学号
|
||||
@ -135,7 +135,7 @@ namespace VOL.Entity.DomainModels.XinWei
|
||||
/// </summary>
|
||||
[Display(Name = "Achievement")]
|
||||
[Comment("标准成绩")]
|
||||
public int? Achievement { get; set; }
|
||||
public double? Achievement { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原始标准成绩(被格式化小数点之前的)
|
||||
|
||||
@ -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")]
|
||||
|
||||
@ -1 +1 @@
|
||||
6717e2e379a38b048ebb8caed4fe5b735e1362513cda51c914771a1e1cf058f6
|
||||
6e80e67035635d6beb9cea7c8e7e6068f63834e334f37871982a30f1e60e5a4c
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user