修复一处类型错误

This commit is contained in:
undefined committed 2020-09-04 13:47:15 +08:00
1 parent c0489546b8
commit b5c1f41dd2
15 files changed
+44 -37

No files matched your search

+4
View File
@@ -177,6 +177,8 @@ class TrainingCreateHandler extends Handler {
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 existPids = pdocs.map((pdoc) => pdoc.docId);
@@ -238,6 +240,8 @@ class TrainingEditHandler extends Handler {
const pdocs = await problem.getMulti(domainId, {
$or: [
{ docId: { $in: pids } },
// TODO
// @ts-ignore
{ pid: { $in: pids } },
],
}).sort('_id', 1).toArray();
+1 -1
View File
@@ -274,7 +274,7 @@ export interface Ddoc {
docType: number,
docId: ObjectID,
parentType: number,
parentId: ObjectID | number,
parentId: ObjectID | number | string,
owner: number,
title: string,
content: string,
+6 -6
View File
@@ -1,4 +1,4 @@
import { ObjectID } from 'mongodb';
import { FilterQuery, ObjectID } from 'mongodb';
import * as problem from './problem';
import * as contest from './contest';
import * as training from './training';
@@ -57,11 +57,11 @@ export function del(domainId: string, did: ObjectID) {
]);
}
export function count(domainId: string, query: any) {
export function count(domainId: string, query: FilterQuery<Ddoc>) {
return document.count(domainId, document.TYPE_DISCUSSION, query);
}
export function getMulti(domainId: string, query: any = {}) {
export function getMulti(domainId: string, query: FilterQuery<Ddoc> = {}) {
return document.getMulti(domainId, document.TYPE_DISCUSSION, query)
.sort({ pin: -1, updateAt: -1 });
}
@@ -69,15 +69,15 @@ export function getMulti(domainId: string, query: any = {}) {
export async function addReply(
domainId: string, did: ObjectID, owner: number,
content: string, ip: string,
): Promise<Drdoc> {
const [drdoc] = await Promise.all([
): Promise<ObjectID> {
const [drid] = await Promise.all([
document.add(
domainId, content, owner, document.TYPE_DISCUSSION_REPLY,
null, document.TYPE_DISCUSSION, did, { ip },
),
document.incAndSet(domainId, document.TYPE_DISCUSSION, did, 'nReply', 1, { updateAt: new Date() }),
]);
return drdoc;
return drid;
}
export function getReply(domainId: string, drid: ObjectID): Promise<Drdoc | null> {
+1 -1
View File
@@ -51,7 +51,7 @@ export function getMulti(query: any = {}) {
return coll.find(query);
}
export function edit(domainId: string, $set: any) {
export function edit(domainId: string, $set: Partial<DomainDoc>) {
return coll.updateOne({ _id: domainId }, { $set });
}
+3 -3
View File
@@ -1,4 +1,4 @@
import { ObjectID } from 'mongodb';
import { FilterQuery, ObjectID } from 'mongodb';
import * as user from './user';
import { Mdoc } from '../interface';
import * as db from '../service/db';
@@ -35,7 +35,7 @@ export async function getByUser(uid: number): Promise<Mdoc[]> {
return await coll.find({ $or: [{ from: uid }, { to: uid }] }).sort('_id', 1).toArray();
}
export async function getMany(query: any, sort: any, page: number, limit: number): Promise<Mdoc[]> {
export async function getMany(query: FilterQuery<Mdoc>, sort: any, page: number, limit: number): Promise<Mdoc[]> {
return await coll.find(query).sort(sort)
.skip((page - 1) * limit).limit(limit)
.toArray();
@@ -54,7 +54,7 @@ export async function del(_id: ObjectID) {
return await coll.deleteOne({ _id });
}
export function count(query: any) {
export function count(query: FilterQuery<Mdoc> = {}) {
return coll.find(query).count();
}
+3 -3
View File
@@ -73,7 +73,7 @@ export async function get(
return pdoc;
}
export function getMulti(domainId: string, query: object) {
export function getMulti(domainId: string, query: FilterQuery<Pdoc>) {
return document.getMulti(domainId, document.TYPE_PROBLEM, query);
}
@@ -89,11 +89,11 @@ export function inc(domainId: string, _id: number, field: string, n: number): Pr
return document.inc(domainId, document.TYPE_PROBLEM, _id, field, n);
}
export function count(domainId: string, query: any) {
export function count(domainId: string, query: FilterQuery<Pdoc>) {
return document.count(domainId, document.TYPE_PROBLEM, query);
}
export async function random(domainId: string, query: any): Promise<string | null> {
export async function random(domainId: string, query: FilterQuery<Pdoc>): Promise<string | null> {
const cursor = document.getMulti(domainId, document.TYPE_PROBLEM, query);
const pcount = await cursor.count();
if (pcount) {