xinwei
This commit is contained in:
parent
a7218c636c
commit
a72a721438
@ -21,7 +21,7 @@ namespace YD_XinWei.Commons.Dto.Open
|
||||
/// <summary>
|
||||
/// 项目模式
|
||||
/// </summary>
|
||||
public byte ModelType { get; set; }
|
||||
public int ModelType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 学生ID
|
||||
|
||||
@ -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+ad851517bf24d8a47bb71b913f887289c2f63581")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a7218c636cd2e1c31ee2e114791c415b7b4a4281")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("YD_XinWei.Commons")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("YD_XinWei.Commons")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@ -1 +1 @@
|
||||
b617f52ce2f462825672c690f091971eb320a9438856be83eb1404cf5353235b
|
||||
4db0140d64b9d6074d6ffb1d3f8beb7536d9d4c6cbc7d538b90977510ec90a32
|
||||
|
||||
@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<_PublishTargetUrl>C:\Users\tangl\Desktop\web</_PublishTargetUrl>
|
||||
<History>True|2026-01-07T10:25:08.0906165Z||;True|2026-01-07T18:24:54.3973422+08:00||;True|2026-01-07T17:31:39.5873521+08:00||;True|2026-01-07T17:26:57.1353433+08:00||;True|2026-01-07T17:17:01.3820547+08:00||;True|2026-01-07T16:55:51.1046754+08:00||;True|2026-01-07T16:48:30.7855668+08:00||;True|2026-01-07T16:37:17.5809765+08:00||;False|2026-01-07T16:35:45.5939040+08:00||;False|2026-01-07T16:30:28.3549091+08:00||;True|2025-04-03T15:07:55.2812036+08:00||;True|2025-03-18T10:41:46.9539024+08:00||;True|2025-03-18T09:03:55.5838708+08:00||;True|2025-03-17T12:30:21.5399192+08:00||;True|2025-03-17T11:54:27.3261861+08:00||;True|2025-03-17T11:20:23.7942104+08:00||;True|2025-03-11T17:48:55.2957005+08:00||;False|2025-03-11T17:48:38.1452073+08:00||;True|2025-03-07T16:31:26.6256757+08:00||;True|2025-03-07T15:14:30.2549136+08:00||;True|2025-03-07T14:57:41.5400532+08:00||;True|2025-03-07T14:53:16.1364435+08:00||;False|2025-03-07T14:52:47.3342548+08:00||;False|2025-03-07T14:52:10.7452463+08:00||;False|2025-03-07T14:51:33.5424415+08:00||;True|2025-03-07T14:46:55.5807563+08:00||;True|2025-03-07T14:33:04.1266862+08:00||;True|2025-03-07T14:13:22.6999976+08:00||;True|2025-03-07T14:05:09.5133651+08:00||;False|2025-03-07T14:02:23.5093029+08:00||;False|2025-03-07T13:58:37.4496383+08:00||;True|2025-03-07T11:52:20.4578386+08:00||;True|2025-03-07T11:31:43.1972462+08:00||;True|2025-03-07T10:11:26.1562979+08:00||;True|2025-03-07T10:10:59.9440630+08:00||;True|2025-03-07T09:24:15.8595227+08:00||;True|2025-03-06T17:52:31.4924325+08:00||;True|2025-03-06T17:52:19.1631772+08:00||;True|2025-03-06T17:32:57.7195879+08:00||;True|2025-03-06T17:09:15.6877706+08:00||;True|2025-03-06T16:59:48.0866771+08:00||;True|2025-03-06T16:49:15.3348344+08:00||;True|2025-03-06T15:51:10.7923322+08:00||;True|2025-03-06T15:46:02.5442595+08:00||;True|2025-03-06T14:32:36.1899505+08:00||;True|2025-03-06T14:04:43.6692503+08:00||;True|2025-03-06T10:00:58.4898730+08:00||;True|2025-03-06T09:59:50.3712985+08:00||;True|2025-03-06T09:03:59.1856247+08:00||;True|2025-03-04T17:35:37.1204893+08:00||;True|2025-03-04T17:18:56.4230027+08:00||;True|2025-03-04T16:59:02.6637491+08:00||;True|2025-03-04T15:21:05.4912749+08:00||;True|2025-03-04T15:08:42.5490957+08:00||;True|2025-03-04T15:01:08.8651148+08:00||;True|2025-03-03T17:31:47.5325183+08:00||;True|2025-03-03T17:09:05.8362354+08:00||;True|2025-03-03T16:41:37.7278763+08:00||;True|2025-03-03T16:34:04.0026009+08:00||;True|2025-03-03T16:24:01.4887542+08:00||;True|2025-03-03T15:24:09.5376627+08:00||;True|2025-03-03T14:32:46.5288364+08:00||;True|2025-03-03T14:18:41.8795454+08:00||;True|2025-03-03T13:39:33.1620349+08:00||;True|2025-03-03T13:13:48.7851364+08:00||;True|2025-03-03T09:48:28.0446948+08:00||;True|2025-03-03T09:47:48.0506237+08:00||;True|2025-03-03T00:03:13.7940731+08:00||;True|2025-03-03T00:00:20.5217808+08:00||;True|2025-02-28T11:24:13.9529058+08:00||;True|2025-02-28T09:52:09.1224260+08:00||;True|2025-02-28T09:09:07.6159508+08:00||;True|2025-02-28T09:03:19.5987556+08:00||;True|2025-02-27T17:59:35.8321576+08:00||;True|2025-02-27T16:51:44.0193039+08:00||;True|2025-02-27T15:48:03.7178463+08:00||;True|2025-02-27T15:39:09.5704225+08:00||;True|2025-02-27T15:39:01.0906094+08:00||;True|2025-02-27T15:35:52.5141530+08:00||;True|2025-02-27T15:22:55.6480561+08:00||;True|2025-02-25T15:05:56.3704383+08:00||;True|2025-02-25T13:21:45.5812878+08:00||;True|2025-02-25T13:13:06.3991346+08:00||;True|2025-02-25T11:07:59.4322341+08:00||;True|2025-02-24T17:36:36.0385118+08:00||;True|2025-02-24T17:35:30.9660778+08:00||;True|2025-02-20T19:00:03.7732903+08:00||;True|2025-02-20T15:23:37.7886196+08:00||;False|2025-02-20T15:22:58.3942454+08:00||;True|2025-02-14T15:16:29.2049523+08:00||;True|2025-02-14T15:16:20.2358210+08:00||;True|2025-02-14T13:35:25.1397559+08:00||;True|2025-02-14T09:28:15.0882633+08:00||;True|2025-02-13T14:51:00.7069070+08:00||;True|2025-02-13T13:14:19.5524368+08:00||;True|2025-02-12T15:43:03.6376536+08:00||;True|2025-02-12T15:30:37.0534250+08:00||;True|2025-02-12T15:19:48.3629666+08:00||;True|2025-02-12T15:15:46.5702121+08:00||;True|2025-02-12T10:25:29.9566462+08:00||;</History>
|
||||
<History>True|2026-01-07T23:24:14.4026431Z||;True|2026-01-07T18:25:08.0906165+08:00||;True|2026-01-07T18:24:54.3973422+08:00||;True|2026-01-07T17:31:39.5873521+08:00||;True|2026-01-07T17:26:57.1353433+08:00||;True|2026-01-07T17:17:01.3820547+08:00||;True|2026-01-07T16:55:51.1046754+08:00||;True|2026-01-07T16:48:30.7855668+08:00||;True|2026-01-07T16:37:17.5809765+08:00||;False|2026-01-07T16:35:45.5939040+08:00||;False|2026-01-07T16:30:28.3549091+08:00||;True|2025-04-03T15:07:55.2812036+08:00||;True|2025-03-18T10:41:46.9539024+08:00||;True|2025-03-18T09:03:55.5838708+08:00||;True|2025-03-17T12:30:21.5399192+08:00||;True|2025-03-17T11:54:27.3261861+08:00||;True|2025-03-17T11:20:23.7942104+08:00||;True|2025-03-11T17:48:55.2957005+08:00||;False|2025-03-11T17:48:38.1452073+08:00||;True|2025-03-07T16:31:26.6256757+08:00||;True|2025-03-07T15:14:30.2549136+08:00||;True|2025-03-07T14:57:41.5400532+08:00||;True|2025-03-07T14:53:16.1364435+08:00||;False|2025-03-07T14:52:47.3342548+08:00||;False|2025-03-07T14:52:10.7452463+08:00||;False|2025-03-07T14:51:33.5424415+08:00||;True|2025-03-07T14:46:55.5807563+08:00||;True|2025-03-07T14:33:04.1266862+08:00||;True|2025-03-07T14:13:22.6999976+08:00||;True|2025-03-07T14:05:09.5133651+08:00||;False|2025-03-07T14:02:23.5093029+08:00||;False|2025-03-07T13:58:37.4496383+08:00||;True|2025-03-07T11:52:20.4578386+08:00||;True|2025-03-07T11:31:43.1972462+08:00||;True|2025-03-07T10:11:26.1562979+08:00||;True|2025-03-07T10:10:59.9440630+08:00||;True|2025-03-07T09:24:15.8595227+08:00||;True|2025-03-06T17:52:31.4924325+08:00||;True|2025-03-06T17:52:19.1631772+08:00||;True|2025-03-06T17:32:57.7195879+08:00||;True|2025-03-06T17:09:15.6877706+08:00||;True|2025-03-06T16:59:48.0866771+08:00||;True|2025-03-06T16:49:15.3348344+08:00||;True|2025-03-06T15:51:10.7923322+08:00||;True|2025-03-06T15:46:02.5442595+08:00||;True|2025-03-06T14:32:36.1899505+08:00||;True|2025-03-06T14:04:43.6692503+08:00||;True|2025-03-06T10:00:58.4898730+08:00||;True|2025-03-06T09:59:50.3712985+08:00||;True|2025-03-06T09:03:59.1856247+08:00||;True|2025-03-04T17:35:37.1204893+08:00||;True|2025-03-04T17:18:56.4230027+08:00||;True|2025-03-04T16:59:02.6637491+08:00||;True|2025-03-04T15:21:05.4912749+08:00||;True|2025-03-04T15:08:42.5490957+08:00||;True|2025-03-04T15:01:08.8651148+08:00||;True|2025-03-03T17:31:47.5325183+08:00||;True|2025-03-03T17:09:05.8362354+08:00||;True|2025-03-03T16:41:37.7278763+08:00||;True|2025-03-03T16:34:04.0026009+08:00||;True|2025-03-03T16:24:01.4887542+08:00||;True|2025-03-03T15:24:09.5376627+08:00||;True|2025-03-03T14:32:46.5288364+08:00||;True|2025-03-03T14:18:41.8795454+08:00||;True|2025-03-03T13:39:33.1620349+08:00||;True|2025-03-03T13:13:48.7851364+08:00||;True|2025-03-03T09:48:28.0446948+08:00||;True|2025-03-03T09:47:48.0506237+08:00||;True|2025-03-03T00:03:13.7940731+08:00||;True|2025-03-03T00:00:20.5217808+08:00||;True|2025-02-28T11:24:13.9529058+08:00||;True|2025-02-28T09:52:09.1224260+08:00||;True|2025-02-28T09:09:07.6159508+08:00||;True|2025-02-28T09:03:19.5987556+08:00||;True|2025-02-27T17:59:35.8321576+08:00||;True|2025-02-27T16:51:44.0193039+08:00||;True|2025-02-27T15:48:03.7178463+08:00||;True|2025-02-27T15:39:09.5704225+08:00||;True|2025-02-27T15:39:01.0906094+08:00||;True|2025-02-27T15:35:52.5141530+08:00||;True|2025-02-27T15:22:55.6480561+08:00||;True|2025-02-25T15:05:56.3704383+08:00||;True|2025-02-25T13:21:45.5812878+08:00||;True|2025-02-25T13:13:06.3991346+08:00||;True|2025-02-25T11:07:59.4322341+08:00||;True|2025-02-24T17:36:36.0385118+08:00||;True|2025-02-24T17:35:30.9660778+08:00||;True|2025-02-20T19:00:03.7732903+08:00||;True|2025-02-20T15:23:37.7886196+08:00||;False|2025-02-20T15:22:58.3942454+08:00||;True|2025-02-14T15:16:29.2049523+08:00||;True|2025-02-14T15:16:20.2358210+08:00||;True|2025-02-14T13:35:25.1397559+08:00||;True|2025-02-14T09:28:15.0882633+08:00||;True|2025-02-13T14:51:00.7069070+08:00||;True|2025-02-13T13:14:19.5524368+08:00||;True|2025-02-12T15:43:03.6376536+08:00||;True|2025-02-12T15:30:37.0534250+08:00||;True|2025-02-12T15:19:48.3629666+08:00||;True|2025-02-12T15:15:46.5702121+08:00||;</History>
|
||||
<LastFailureDetails />
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@ -757,8 +757,19 @@ namespace YD_XinWei.Api.Services.Impl
|
||||
})
|
||||
.ToListAsync();
|
||||
|
||||
// 3️⃣ 获取指定学生
|
||||
var student = studentResults
|
||||
if (!studentResults.Any())
|
||||
return new TrainHistoryPersonVo();
|
||||
|
||||
// ⭐ 是否按升序(ModelType = 7)
|
||||
bool isAsc = dto.ModelType == 7;
|
||||
|
||||
// 3️⃣ 获取指定学生(按成绩最优的一次)
|
||||
var student = isAsc
|
||||
? studentResults
|
||||
.Where(x => x.StudentId == dto.StudentId)
|
||||
.OrderBy(x => x.Achievement)
|
||||
.FirstOrDefault()
|
||||
: studentResults
|
||||
.Where(x => x.StudentId == dto.StudentId)
|
||||
.OrderByDescending(x => x.Achievement)
|
||||
.FirstOrDefault();
|
||||
@ -766,66 +777,78 @@ namespace YD_XinWei.Api.Services.Impl
|
||||
if (student == null)
|
||||
return new TrainHistoryPersonVo();
|
||||
|
||||
// 4️⃣ 历史排名(按 Score 排序)
|
||||
var rankedResults = studentResults
|
||||
// 4️⃣ 历史排名
|
||||
var rankedResults = (isAsc
|
||||
? studentResults
|
||||
.Where(x => x.GradeId == student.GradeId)
|
||||
.OrderByDescending(x => x.Score)
|
||||
.OrderBy(x => x.Achievement)
|
||||
: studentResults
|
||||
.Where(x => x.GradeId == student.GradeId)
|
||||
.OrderByDescending(x => x.Achievement)
|
||||
)
|
||||
.Select((x, index) => new { x, Rank = index + 1 })
|
||||
.ToList();
|
||||
|
||||
// 5️⃣ 当月数据及当月排名(按 Score 排序)
|
||||
// 5️⃣ 当月数据
|
||||
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
|
||||
// 6️⃣ 当月排名
|
||||
var monthRankedResults = (isAsc
|
||||
? monthList
|
||||
.Where(x => x.GradeId == student.GradeId)
|
||||
.OrderByDescending(x => x.Score) // 按 Score 排名
|
||||
.OrderBy(x => x.Achievement)
|
||||
: monthList
|
||||
.Where(x => x.GradeId == student.GradeId)
|
||||
.OrderByDescending(x => x.Achievement)
|
||||
)
|
||||
.Select((x, index) => new { x, Rank = index + 1 })
|
||||
.ToList();
|
||||
|
||||
// 6️⃣ 获取学生头像
|
||||
// 7️⃣ 获取学生头像
|
||||
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️⃣ 历史最佳成绩
|
||||
var bestStudentOverall = isAsc
|
||||
? studentResults.OrderBy(x => x.Achievement).FirstOrDefault()
|
||||
: studentResults.OrderByDescending(x => x.Achievement).FirstOrDefault();
|
||||
|
||||
// 8️⃣ 找本月最高分对应的 Achievement(Score 最大)
|
||||
var bestStudentMonth = monthList
|
||||
.OrderByDescending(x => x.Score)
|
||||
.FirstOrDefault();
|
||||
// 9️⃣ 当月最佳成绩
|
||||
var bestStudentMonth = isAsc
|
||||
? monthList.OrderBy(x => x.Achievement).FirstOrDefault()
|
||||
: monthList.OrderByDescending(x => x.Achievement).FirstOrDefault();
|
||||
|
||||
// 9️⃣ 构建返回对象
|
||||
var res = new TrainHistoryPersonVo()
|
||||
// 🔟 构建返回对象
|
||||
return new TrainHistoryPersonVo
|
||||
{
|
||||
ClassName = student.ClassName,
|
||||
HeadImgUrl = stuHeadUrl,
|
||||
Sex = student.Sex == 1 ? "男" : "女",
|
||||
StudentName = student.StudentName,
|
||||
|
||||
// 总历史最高成绩对应 Achievement
|
||||
// 历史最佳成绩
|
||||
HistoryBestScore = bestStudentOverall?.Achievement?.ToString("0.###") ?? "无数据",
|
||||
|
||||
// 历史排名(按 Score)
|
||||
HistoryRanking = rankedResults.FirstOrDefault(x => x.x.Id == student.Id)?.Rank.ToString() ?? "-1",
|
||||
// 历史排名
|
||||
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"
|
||||
// 当月排名
|
||||
MonthRanking = monthRankedResults
|
||||
.FirstOrDefault(x => x.x.Id == student.Id)?.Rank.ToString() ?? "1"
|
||||
};
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 个人历史记录-记录列表
|
||||
/// </summary>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -631,7 +631,7 @@
|
||||
},
|
||||
{
|
||||
"Name": "ModelType",
|
||||
"Type": "System.Byte",
|
||||
"Type": "System.Int32",
|
||||
"IsRequired": false
|
||||
},
|
||||
{
|
||||
|
||||
@ -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+ad851517bf24d8a47bb71b913f887289c2f63581")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a7218c636cd2e1c31ee2e114791c415b7b4a4281")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("YD_XinWei.Api")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("YD_XinWei.Api")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@ -1 +1 @@
|
||||
6004218f38f54732cab65609a77db1d74b7e99db1e3be7348636de0508d49af3
|
||||
7ac6f6814843d4a4785f8e0a5ee3a658e188961538efe7ca66094b1a8f7da63b
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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+ad851517bf24d8a47bb71b913f887289c2f63581")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a7218c636cd2e1c31ee2e114791c415b7b4a4281")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("YD_XinWei.Api")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("YD_XinWei.Api")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@ -1 +1 @@
|
||||
6004218f38f54732cab65609a77db1d74b7e99db1e3be7348636de0508d49af3
|
||||
7ac6f6814843d4a4785f8e0a5ee3a658e188961538efe7ca66094b1a8f7da63b
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user