core: 修复作业成绩表计分异常的问题

This commit is contained in:
undefined committed 2021-01-25 22:37:51 +08:00
1 parent f0b9bee937
commit f0c1b49ac1
4 files changed
+5 -6

No files matched your search

+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "@hydrooj/hydrojudge", "name": "@hydrooj/hydrojudge",
"bin": "bin/hydrojudge.js", "bin": "bin/hydrojudge.js",
"version": "2.3.0", "version": "2.3.1",
"main": "package.json", "main": "package.json",
"author": "undefined <i@undefined.moe>", "author": "undefined <i@undefined.moe>",
"repository": "https://github.com/hydro-dev/Hydro.git", "repository": "https://github.com/hydro-dev/Hydro.git",
-1
View File
@@ -71,7 +71,6 @@ async function postInit() {
} }
async function cacheOpen(domainId: string, pid: string, files: any[]) { async function cacheOpen(domainId: string, pid: string, files: any[]) {
console.log(files);
const filePath = path.join(getConfig('cache_dir'), domainId, pid); const filePath = path.join(getConfig('cache_dir'), domainId, pid);
await fs.ensureDir(filePath); await fs.ensureDir(filePath);
if (!files.length) throw new SystemError('Problem data not found.'); if (!files.length) throw new SystemError('Problem data not found.');
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "hydrooj", "name": "hydrooj",
"version": "2.17.1", "version": "2.17.2",
"bin": "bin/hydrooj.js", "bin": "bin/hydrooj.js",
"main": "dist/loader.js", "main": "dist/loader.js",
"typings": "dist/loader.d.ts", "typings": "dist/loader.d.ts",
+3 -3
View File
@@ -214,7 +214,7 @@ const homework: ContestRule = {
stat: (tdoc, journal) => { stat: (tdoc, journal) => {
const effective = {}; const effective = {};
for (const j of journal) { for (const j of journal) {
if (tdoc.pids.includes(j.pid) && !effective[j.pid] && j.accept) { if (tdoc.pids.includes(j.pid) && (!effective[j.pid] || j.accept)) {
effective[j.pid] = j; effective[j.pid] = j;
} }
} }
@@ -248,7 +248,7 @@ const homework: ContestRule = {
} }
return { return {
score: Math.sum(detail.map((d) => d.score)), score: Math.sum(detail.map((d) => d.score)),
penaltyScore: Math.sum(detail.map((d) => d.penaltySince)), penaltyScore: Math.sum(detail.map((d) => d.penaltyScore)),
time: Math.sum(detail.map((d) => d.time)), time: Math.sum(detail.map((d) => d.time)),
detail, detail,
}; };
@@ -300,7 +300,7 @@ const homework: ContestRule = {
const rows = [columns]; const rows = [columns];
for (const [rank, tsdoc] of rankedTsdocs) { for (const [rank, tsdoc] of rankedTsdocs) {
const tsddict = {}; const tsddict = {};
for (const item of tsdoc.journal || []) { for (const item of tsdoc.detail || []) {
tsddict[item.pid] = item; tsddict[item.pid] = item;
} }
const row = [ const row = [