添加数据库类型别名

This commit is contained in:
luying
2020-12-15 18:08:29 +08:00
parent 1565dd206a
commit 2d774fc0e4
38 changed files with 393 additions and 321 deletions

View File

@@ -1,5 +1,5 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
function genCodeTmp(len) {
const chars = '123456789ABCDEFGHJKLMNPQRSTWXYZabcdefghijklmnopqrstuvwxyz';
@@ -43,7 +43,7 @@ export default class TowerTaskRec extends BaseModel {
completeTime: Date; // 派遣结束时间
public static async getCurTasks(roleId: string, lean = true) {
const recs = await TowerTaskRecModel.find({roleId, refreshStatus: 1}).sort({createdAt: 1}).lean(lean);
const recs: TowerTaskRecType[] = await TowerTaskRecModel.find({roleId, refreshStatus: 1}).sort({createdAt: 1}).lean(lean);
return recs;
}
@@ -59,14 +59,14 @@ export default class TowerTaskRec extends BaseModel {
}
public static async getTasksByCode(batchCode: string, lean = true) {
const recs = await TowerTaskRecModel.find({batchCode}).lean(lean);
const recs: TowerTaskRecType[] = await TowerTaskRecModel.find({batchCode}).lean(lean);
return recs;
}
public static async sendHeroes(_roleId: string, batchCode: string, tasks: Array<{taskCode:string, heroes: Array<number>, completeTime: number}>, sendTime: Date, lean = true) {
let recs = new Array();
for (let {taskCode, heroes, completeTime} of tasks) {
const rec = await TowerTaskRecModel.findOneAndUpdate(
const rec: TowerTaskRecType = await TowerTaskRecModel.findOneAndUpdate(
{batchCode, taskCode: taskCode, refreshStatus: 1},
{heroes: heroes, status: 1, sendTime, completeTime: new Date(sendTime.getTime() + completeTime * 1000)},
{new: true}).lean(lean);
@@ -76,32 +76,34 @@ export default class TowerTaskRec extends BaseModel {
return recs;
}
public static async finishTask(batchCode: string, tasks: Array<string>, lean = true) {
const recs = await TowerTaskRecModel.updateMany({batchCode, taskCode: {$in:tasks}}, {status: 3, refreshStatus: -1}).lean(lean);
public static async finishTask(batchCode: string, tasks: Array<string>, _lean = true) {
const recs:{ok: number, n:number, nModified:number} = await TowerTaskRecModel.updateMany({batchCode, taskCode: {$in:tasks}}, {status: 3, refreshStatus: -1});
return recs;
}
// 将隐藏的任务显示出来 0=>1
public static async showTask(roleId: string, bactchCode: string, num: number, lean = true) {
const recs = await TowerTaskRecModel.updateMany({roleId, refreshStatus: 0}, {bactchCode, refreshStatus: 1}).sort({createdAt: 1}).limit(num).lean(lean);
public static async showTask(roleId: string, bactchCode: string, num: number, _lean = true) {
const recs:{ok: number, n:number, nModified:number} = await TowerTaskRecModel.updateMany({roleId, refreshStatus: 0}, {bactchCode, refreshStatus: 1}).sort({createdAt: 1}).limit(num);
return recs;
}
// 刷掉旧任务 1=>-1
public static async hideTask(roleId: string, taskIds: Array<string>, lean = true) {
public static async hideTask(roleId: string, taskIds: Array<string>, _lean = true) {
// console.log(refTime)
const recs = await TowerTaskRecModel.updateMany({roleId, taskCode: {$in: taskIds}, refreshStatus: 1}, {refreshStatus: -1}).lean(lean);
const recs:{ok: number, n:number, nModified:number} = await TowerTaskRecModel.updateMany({roleId, taskCode: {$in: taskIds}, refreshStatus: 1}, {refreshStatus: -1});
return recs;
}
public static async updateBatchCode(roleId: string, taskIds: Array<string>, batchCode: string, lean = true) {
const recs = await TowerTaskRecModel.updateMany({roleId, taskCode: {$in: taskIds}}, {batchCode}).lean(lean);
public static async updateBatchCode(roleId: string, taskIds: Array<string>, batchCode: string, _lean = true) {
const recs:{ok: number, n:number, nModified:number} = await TowerTaskRecModel.updateMany({roleId, taskCode: {$in: taskIds}}, {batchCode});
return recs;
}
public static async deleteAccount(roleId: string, lean = true) {
let result = await TowerTaskRecModel.deleteMany({roleId}).lean(lean);
return result||{};
public static async deleteAccount(roleId: string) {
let result = await TowerTaskRecModel.deleteMany({roleId});
return result;
}
}
export const TowerTaskRecModel = getModelForClass(TowerTaskRec);
export interface TowerTaskRecType extends Pick<DocumentType<TowerTaskRec>, keyof TowerTaskRec>{};