课上老师报题号、全班去找,是 2025 秋七成非比赛提交的来路,界面上原本没有它的入口。 - 顶栏(桌面端)加题号框,首页「找题」同一套逻辑:题号对上直接进题,否则去列表搜 - 新接口 GET /me/class-activity:同班同一天 ≥5 人做过的题,取最近 7 天里最近的一天, 附带我自己的状态与班里通过人数;首页据此显示「今天班里在做」卡片,没有就不占位 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d07459928d
commit
039992dc86
7 files changed
+279
-8
No files matched your search
@@ -63,10 +63,34 @@ export const classComparisonResponseSchema = z.object({
|
||||
hasTimeRange: z.boolean(),
|
||||
})
|
||||
|
||||
/**
|
||||
* 「班里在做」:同班同一天有好几个人做的题,基本就是老师在课上点名的那几道。
|
||||
* `day` 是东八区日历日;最近 7 天都没有这样的题时为 null,`problems` 为空。
|
||||
*/
|
||||
export const classActivityProblemSchema = z.object({
|
||||
problemDisplayId: z.string(),
|
||||
title: z.string(),
|
||||
/** 那天做过这道题的同班人数(含自己) */
|
||||
userCount: z.number().int(),
|
||||
/** 其中那天通过了的人数 */
|
||||
acceptedCount: z.number().int(),
|
||||
/** 我自己在题库里(不含比赛)做这道题的状态,不限那一天 */
|
||||
myStatus: z.enum(["accepted", "tried", "none"]),
|
||||
})
|
||||
|
||||
export const classActivitySchema = z.object({
|
||||
className: z.string().nullable(),
|
||||
day: z.string().nullable(),
|
||||
problems: z.array(classActivityProblemSchema),
|
||||
})
|
||||
|
||||
export type ClassRankItem = z.infer<typeof classRankItemSchema>
|
||||
export type ClassUserRank = z.infer<typeof classUserRankSchema>
|
||||
export type ClassComparison = z.infer<typeof classComparisonSchema>
|
||||
export type ClassComparisonResponse = z.infer<typeof classComparisonResponseSchema>
|
||||
|
||||
export type ClassActivity = z.infer<typeof classActivitySchema>
|
||||
export type ClassActivityProblem = z.infer<typeof classActivityProblemSchema>
|
||||
|
||||
export type ClassUserRankItem = z.infer<typeof classUserRankItemSchema>
|
||||
export type ClassComparisonRequest = z.infer<typeof classComparisonRequestSchema>
|
||||
Reference in new issue
Block a user