feat(统计): 统计接口补上每人每道题的每一次提交、流程图每人最好的一次,流程图也能一次查几道题

- 新增 GET /submissions/statistics/grid:范围内每个学生的每次提交(只含普通学生,最多 5000 条),
  没选班级时附带各班花名册人数,统计页按「人 × 题」画方块串、按班级汇总
- /flowcharts/statistics 题号可以一次填几道,多返回 people(每人分数最高的那张)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-09-29 18:28:27 +08:00
1 parent 99c158498c
commit f09da88ff7
8 files changed
+288 -1492

No files matched your search

+13
View File
@@ -106,6 +106,19 @@ export const flowchartStatisticsSchema = z.object({
wordFrequencies: z.array(z.object({ word: z.string(), count: z.number().int() })),
// 与提交统计共用「未完成学生」的形状,见 submission.ts 的 unacceptedStudentSchema
dataUnaccepted: z.array(z.object({ username: z.string(), realName: z.string() })),
/**
* 每人**最好的一次**(分数最高的那张),统计页的「每人最好的一次」表用。
* 只含普通学生;按最好成绩从低到高排,没拿到 A 的排前面 —— 老师要先看的是他们
*/
people: z.array(
z.object({
username: z.string(),
realName: z.string(),
bestScore: z.number().nullable(),
bestGrade: z.string().nullable(),
count: z.number().int(),
}),
),
})
export const flowchartUpdateSchema = z.object({