修复一处可能导致training状态异常的问题

This commit is contained in:
undefined committed 2020-09-04 22:31:59 +08:00
1 parent b5c1f41dd2
commit a1aeb521fe
11 files changed
+52 -37

No files matched your search

+2 -1
View File
@@ -14,6 +14,7 @@ import paginate from '../lib/paginate';
import {
Route, Handler, Types, param,
} from '../service/server';
import { DomainDoc } from '../interface';
class DomainRankHandler extends Handler {
@param('page', Types.PositiveInt, true)
@@ -40,7 +41,7 @@ class DomainRankHandler extends Handler {
}
class ManageHandler extends Handler {
domain: any;
domain: DomainDoc;
async prepare({ domainId }) {
this.checkPerm(PERM.PERM_EDIT_DOMAIN);
+1 -1
View File
@@ -51,7 +51,7 @@ class SystemMainHandler extends SystemHandler {
}
class SystemCheckConnHandler extends ConnectionHandler {
id: any;
id: string;
async prepare() {
this.checkPriv(PRIV.PRIV_EDIT_SYSTEM);
+6 -10
View File
@@ -102,8 +102,8 @@ class TrainingDetailHandler extends Handler {
problem.getList(domainId, pids, this.user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN)),
]);
const psdict = await problem.getListStatus(domainId, this.user._id, pids);
const donePids = new Set();
const progPids = new Set();
const donePids = new Set<number>();
const progPids = new Set<number>();
for (const pid in psdict) {
const psdoc = psdict[pid];
if (psdoc.status) {
@@ -114,7 +114,7 @@ class TrainingDetailHandler extends Handler {
}
const nsdict = {};
const ndict = {};
const doneNids = new Set();
const doneNids = new Set<number>();
for (const node of tdoc.dag) {
ndict[node._id] = node;
const totalCount = node.pids.length;
@@ -174,13 +174,9 @@ class TrainingCreateHandler extends Handler {
_dag: string, description: string,
) {
const dag = await _parseDagJson(domainId, _dag);
const pids = training.getPids({ dag });
const pids = training.getPids(dag);
assert(pids.length, new ValidationError('dag'));
const pdocs = await problem.getMulti(domainId, {
// TODO
// @ts-ignore
$or: [{ docId: { $in: pids } }, { pid: { $in: pids } }],
}).sort('_id', 1).toArray();
const pdocs = await problem.getMulti(domainId, { docId: { $in: pids } }).sort('_id', 1).toArray();
const existPids = pdocs.map((pdoc) => pdoc.docId);
const existPnames = pdocs.map((pdoc) => pdoc.pid);
if (pids.length !== existPids.length) {
@@ -235,7 +231,7 @@ class TrainingEditHandler extends Handler {
_dag: string, description: string,
) {
const dag = await _parseDagJson(domainId, _dag);
const pids = training.getPids({ dag });
const pids = training.getPids(dag);
assert(pids.length, new ValidationError('dag'));
const pdocs = await problem.getMulti(domainId, {
$or: [