
xuyueandClaude Opus 5.5
925cecb389
refactor(题目): 新建 / 复制题目收成 validateProblem、insertProblem、copyProblem
admin/problem.ts 里四处 insert(schema.problem) 其实是两对重复:
- 新建公开题 / 新建比赛题:公共校验 + SQL 展示数据 + 插入 + 写标签,逐行一样,
只差 contestId。编辑题目那条也抄了同一段校验。收成 validateProblem(校验 +
展示数据)和 insertProblem(插入 + 标签,一个事务)。比赛题当初就是抄漏了
sqlDisplay,现在三条路径只有一份
- 比赛题转公开 / 从公开题库拉进比赛:复制整行 + 统计清零 + 复制标签,收成 copyProblem
顺带 db/index.ts 加 DbOrTx 类型,四处 `tx as unknown as typeof db` 去掉。
唯一的行为差异:编辑题目时 SQL 展示数据的生成挪到了题号查重之前(和新建一致),
两项同时出错时报的是前一个。
实跑核过:新建公开题、编辑、重复题号 409、新建比赛题、比赛题转公开(不可见、
标签跟过去)、从公开题库拉进比赛(可见、标签跟过去),SQL 题测试点缺失时照样拦下。
测试数据已删。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 15:07:13 +08:00
..
2026-09-27 15:07:13 +08:00
2026-09-16 08:27:34 -06:00
2026-09-16 08:03:57 -06:00
2026-08-06 20:45:51 -06:00