feat(比赛): 榜单一次给全,带名次变化和每题谁最先做对;期中、期末考试中学生看不到排名;老师能看全班情况
- GET /contests/:id/scoreboard 代替 /rank:整张榜、5 分钟前的名次、每题做对 / 做过人数和学生里最先做对的人(不再用 is_first_ac,老师赛中试做会占掉它) - 期中、期末进行中:学生只拿到自己那一行,人数清零、「全班最先」也不给,考完一起公布 - GET /contests/:id/class-view(老师):真名、每人最后一次交、没进来的人 —— 比赛不绑班,来了一半以上的班才算这场的班 - 比赛列表带题数、参赛人数、我的名次和做对数,能筛「我参加过的」「期中 · 期末」 - PUT /admin/contests/:id/problems/order:比赛题按顺序重编 1、2、3,比赛结束后不让动 - 后台「审核」列表接口去掉,并进前台老师的成绩页;「看过了」的写接口留着 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4ef2794552
commit
b94e028ff4
10 files changed
+528
-740
No files matched your search
@@ -350,16 +350,6 @@ export const createContestRequestSchema = z.object({
|
||||
|
||||
export const updateContestRequestSchema = createContestRequestSchema
|
||||
|
||||
export const acmHelperItemSchema = z.object({
|
||||
id: z.number().int(),
|
||||
username: z.string(),
|
||||
realName: z.string().nullable(),
|
||||
problemId: z.string(),
|
||||
problemDisplayId: z.string(),
|
||||
acInfo: z.record(z.string(), z.unknown()),
|
||||
checked: z.boolean(),
|
||||
})
|
||||
|
||||
export const updateAcmHelperRequestSchema = z.object({
|
||||
rankId: z.number().int().positive(),
|
||||
problemId: z.string().min(1),
|
||||
@@ -788,6 +778,11 @@ export const addContestProblemRequestSchema = z.object({
|
||||
displayId: z.string().trim().min(1).max(32),
|
||||
})
|
||||
|
||||
/** 比赛题排顺序:给出这场比赛**全部**题目的 id,按这个顺序把编号改成 1、2、3… */
|
||||
export const reorderContestProblemsRequestSchema = z.object({
|
||||
problemIds: z.array(z.number().int().positive()).min(1).max(100),
|
||||
})
|
||||
|
||||
export const testCaseEntrySchema = z.object({
|
||||
stripped_output_md5: z.string(),
|
||||
input_size: z.number().int(),
|
||||
@@ -901,7 +896,6 @@ export type CreateProblemRequest = z.infer<typeof createProblemRequestSchema>
|
||||
|
||||
export type AdminContest = z.infer<typeof adminContestSchema>
|
||||
export type AdminContestList = z.infer<typeof adminContestListSchema>
|
||||
export type AcmHelperItem = z.infer<typeof acmHelperItemSchema>
|
||||
export type AdminUser = z.infer<typeof adminUserSchema>
|
||||
export type AdminUserList = z.infer<typeof adminUserListSchema>
|
||||
export type JudgeServer = z.infer<typeof judgeServerSchema>
|
||||
|
||||
Reference in new issue
Block a user