925cecb389603528ec38f01f3c31044ea66d3145
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>
Languages
TypeScript
51%
Vue
47%
Shell
1%
CSS
0.6%
Dockerfile
0.4%