fix(判题/统计): 老师重判一次题目提交数就多一;统计选 231 班会把 2311、2312 班也算进来

- 重判带上原来的结果,落库只做差量:提交数不变、旧结果那一格减一新结果加一,
  通过数按新旧结果调整(原来重判当新提交记账,连点三次就多三)。重判时一起清掉 info,
  判题中那几秒不再按旧结果显示「通过 2/3」
- 三个统计接口加 className,按 class_name 精确匹配(原来拼 ks231 做包含匹配)
- 流程图统计查几道题时要每道都拿到 A/S 才算完成;「每人最好的一次」截断时有标记,
  题号上限 20 道和代码统计一致;流程图列表支持按整名匹配用户
- 删掉统计弹框走后没人用的展开行明细接口,以及每次都白算的「语法未过题数」「最近一次错在哪」

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-09-29 18:52:58 +08:00
1 parent ed55ee5af6
commit 26c8d65e89
10 files changed
+156 -266

No files matched your search

+4 -3
View File
@@ -9,9 +9,10 @@ import { metaAchievements, refreshUnlockedCount, rescanAchievement } from "../se
* 把反范式的计数列重算回与 submission 表一致。
*
* 这几个列不是缓存、是真值的副本:判题落库时由 `judge/run.ts` 的 persistResult 手工
* 加减,谁都没在事后核对过。已知的漂移来源是**重判**——`routes/submission.ts` 的
* rejudge 把 result 打回 PENDING 就重新入队,**不回退任何计数**,于是 persistResult
* 再加一次:重判一条题目的 submission_number 就永久多一。删提交、直接改库同理。
* 加减,谁都没在事后核对过。已知的漂移来源是**重判**—— 2026-09-29 之前 rejudge 把
* result 打回 PENDING 就重新入队、不回退任何计数,persistResult 再加一次:重判一条题目
* 的 submission_number 就永久多一。现在 rejudge 带上旧结果、persistResult 只做差量,
* 这条不再新增漂移,存量靠这里订正。删提交、直接改库仍然会漂。
*
* 管的六个列:
* problem.submission_number / accepted_number / statistic_info