From 5335763f57431b7888f5fa399c7000b8426a5f1c Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 9 Apr 2022 15:13:43 +0800 Subject: [PATCH] core: check contest info when rejudge --- packages/hydrooj/src/handler/problem.ts | 4 ++-- packages/hydrooj/src/handler/record.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index 941de7479..5822f4fcc 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -413,11 +413,11 @@ export class ProblemDetailHandler extends ProblemHandler { this.checkPerm(PERM.PERM_REJUDGE_PROBLEM); // TODO maybe async? const rdocs = await record.getMulti(domainId, { pid, contest: { $ne: new ObjectID('0'.repeat(24)) } }) - .project({ _id: 1 }).toArray(); + .project({ _id: 1, contest: 1 }).toArray(); const priority = await record.submissionPriority(this.user._id, -rdocs.length * 5 - 50); await Promise.all(rdocs.map( (doc) => record.reset(domainId, doc._id, true) - .then(() => record.judge(domainId, doc._id, priority)), + .then(() => record.judge(domainId, doc._id, priority, doc.contest ? { detail: false } : {})), )); this.back(); } diff --git a/packages/hydrooj/src/handler/record.ts b/packages/hydrooj/src/handler/record.ts index 88ae5feb5..fee58172c 100644 --- a/packages/hydrooj/src/handler/record.ts +++ b/packages/hydrooj/src/handler/record.ts @@ -162,8 +162,9 @@ class RecordDetailHandler extends Handler { const priority = await record.submissionPriority(this.user._id, -20); const rdoc = await record.get(domainId, rid); if (rdoc) { + const isContest = rdoc.contest && rdoc.contest.toHexString() !== '000000000000000000000000'; await record.reset(domainId, rid, true); - await record.judge(domainId, rid, priority); + await record.judge(domainId, rid, priority, isContest ? { detail: false } : {}); } this.back(); }