Compare commits

...

3 Commits

Author SHA1 Message Date
ltx
0eb9c90c31 feat: 补齐壹路AI运动站全部课目映射
根据提供的六张课目编号截图,将 CourseNames 补齐为 63 个项目,覆盖俯卧撑、仰卧起坐、跑步、球类、互动项目和体测项目。未知编号仍保留待确认课目的兜底显示,不修改实体数据类型、表结构或数据。

将项目名称筛选改为精确匹配,避免选择深蹲时混入深蹲跳等名称相近的记录。

验证:后端 Debug 构建成功(0 错误);与前端下拉选项核对均为 63 个项目。
2026-10-22 11:53:34 +08:00
ltx
06785f7987 fix: 恢复壹路运动站有效次数原始类型
将 YL_Train.StandardCounts 和 AiSportsStationDto.StandardCounts 从 double 恢复为 int,与原始实体定义及迁移快照保持一致。

列表查询保留显式数值转换,以适配测试库 float 和生产库 int 的列类型差异;不修改数据库表结构或数据。

验证:dotnet build VOL.WebApi/VOL.WebApi.csproj --no-restore -c Release 成功;git diff --cached --check 通过。
2026-10-22 11:32:30 +08:00
ltx
9266080356 fix: 兼容壹路运动站有效次数的线上列类型
线上 YL_Train.StandardCounts 为 int,QA 为 float,原实体按 double 读取导致 GetAiSportsStationList 在生产环境抛出 Int32 到 Double 的转换异常。

在列表查询投影中使用 Convert.ToDouble,使 EF 生成 CONVERT(float, [StandardCounts]),同时兼容两种数据库列类型,不修改表结构或其他接口。

验证:WebApi Release 构建通过;EF SQL 探针确认生成 CONVERT(float);QA 和生产库只读查询均成功。线上服务仍需部署本提交并重启后生效。
2026-10-21 13:46:47 +08:00
3 changed files with 50 additions and 4 deletions

View File

@ -18,12 +18,22 @@ namespace VOL.Ai.Services
private static readonly Dictionary<int, string> CourseNames = new()
{
{ 1, "俯卧撑" },
{ 2, "仰卧起坐" },
{ 3, "引体向上" },
{ 7, "立定跳远" },
{ 8, "跳绳" },
{ 9, "开合跳" },
{ 10, "高抬腿" },
{ 11, "深蹲" },
{ 12, "50米跑" },
{ 13, "100米跑" },
{ 14, "800米跑" },
{ 15, "1000米跑" },
{ 16, "3000米跑" },
{ 20, "50米×8" },
{ 21, "篮球绕杆" },
{ 22, "足球绕杆" },
{ 23, "坐位体前屈" },
{ 24, "单脚跳" },
{ 25, "动态臀桥" },
@ -34,6 +44,41 @@ namespace VOL.Ai.Services
{ 30, "石头剪刀布" },
{ 31, "变脸" },
{ 32, "打钉子" },
{ 33, "击鼓传花" },
{ 34, "踢足球" },
{ 35, "手脚并用" },
{ 36, "踢毽子" },
{ 37, "风火轮" },
{ 38, "顺序摸数字" },
{ 39, "俄罗斯方块" },
{ 40, "诗词满腹" },
{ 41, "单词大王" },
{ 42, "数学王者" },
{ 43, "音乐大师" },
{ 44, "历史小生" },
{ 45, "科学达人" },
{ 46, "纵跳摸高" },
{ 47, "半蹲跳" },
{ 48, "深蹲跳" },
{ 49, "侧向蹲起" },
{ 50, "篮球单手运球" },
{ 51, "篮球双手交替运球" },
{ 52, "身体绕球" },
{ 53, "足球踩球" },
{ 54, "足球颠球" },
{ 55, "足球踩单车" },
{ 56, "排球垫球" },
{ 57, "排球自传挑战" },
{ 60, "实心球" },
{ 61, "阳光跑" },
{ 62, "健身长拳" },
{ 63, "200米跑" },
{ 64, "400米×4" },
{ 65, "400米跑" },
{ 66, "6分钟跑" },
{ 67, "9分钟跑" },
{ 68, "1500米跑" },
{ 69, "60米跑" },
{ 1001, "体重系数(BMI)" },
{ 1002, "肺活量" }
};
@ -102,7 +147,8 @@ namespace VOL.Ai.Services
train.StartTime,
train.EndTime,
train.Score,
train.StandardCounts,
// Cast in SQL so int and float columns both materialize as the original int type.
StandardCounts = Convert.ToInt32(Convert.ToDouble(train.StandardCounts)),
train.UnStandardCounts,
train.TimeKeeping,
train.Duration,
@ -143,7 +189,7 @@ namespace VOL.Ai.Services
.ToListAsync();
if (!string.IsNullOrWhiteSpace(projectName))
rows = rows.Where(x => GetCourseName(x.CourseId).Contains(projectName)).ToList();
rows = rows.Where(x => GetCourseName(x.CourseId) == projectName).ToList();
var total = rows.Count;
var datas = rows

View File

@ -72,7 +72,7 @@ namespace VOL.Entity.DomainModels.YiLu
/// <summary>
/// 有效个数
/// </summary>
public double StandardCounts { get; set; }
public int StandardCounts { get; set; }
/// <summary>
/// 不合格动作数

View File

@ -42,7 +42,7 @@ namespace VOL.Model.Ai.Response
/// </summary>
public double? Score { get; set; }
public double StandardCounts { get; set; }
public int StandardCounts { get; set; }
public int UnStandardCounts { get; set; }