diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index f6003dfc5..62255368f 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.17.6", + "version": "3.17.7", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/judge.ts b/packages/hydrooj/src/handler/judge.ts index c3860a50b..968750af0 100644 --- a/packages/hydrooj/src/handler/judge.ts +++ b/packages/hydrooj/src/handler/judge.ts @@ -78,7 +78,7 @@ export async function postJudge(rdoc: RecordDoc) { if (isNormalSubmission) { await Promise.all([ problem.inc(pdoc.domainId, pdoc.docId, `stats.${builtin.STATUS_SHORT_TEXTS[rdoc.status]}`, 1), - problem.inc(pdoc.domainId, pdoc.docId, `stats.s${rdoc.score}`, 1), + problem.inc(pdoc.domainId, pdoc.docId, `stats.s${Math.floor(rdoc.score)}`, 1), ]); } if (rdoc.status === STATUS.STATUS_HACK_SUCCESSFUL) { diff --git a/packages/hydrooj/src/script/problemStat.ts b/packages/hydrooj/src/script/problemStat.ts index dac8ad3c3..6b6e983ca 100644 --- a/packages/hydrooj/src/script/problemStat.ts +++ b/packages/hydrooj/src/script/problemStat.ts @@ -105,7 +105,16 @@ export async function pdoc(report) { }, ]; for (let i = 0; i <= 100; i++) { - pipeline[1].$group[`s${i}`] = { $sum: { $cond: [{ $eq: ['$score', i] }, 1, 0] } }; + pipeline[1].$group[`s${i}`] = { + $sum: { + $cond: [{ + $and: [ + { $gte: ['$score', i] }, + { $lt: ['$score', i + 1] }, + ], + }, 1, 0], + }, + }; pipeline[2].$group[`s${i}`] = { $sum: `$s${i}` }; } let bulk = db.collection('document').initializeUnorderedBulkOp(); diff --git a/packages/hydrooj/src/upgrade.ts b/packages/hydrooj/src/upgrade.ts index b773a6f47..9b3e13b5e 100644 --- a/packages/hydrooj/src/upgrade.ts +++ b/packages/hydrooj/src/upgrade.ts @@ -830,7 +830,7 @@ const scripts: UpgradeScript[] = [ } return true; }, - async function _67_78() { + async function _67_68() { const _FRESH_INSTALL_IGNORE = 1; const rdocs = RecordModel.coll.find({ code: /^@@hydro_submission_file@@/ }); let rdoc;