添加数据库类型别名

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';
class WarStatus {
@prop({ required: true })
@@ -38,7 +38,7 @@ export default class TowerRecord extends BaseModel {
const update = Object.assign(recDoc.toJSON(), towerInfo );
const { roleId, lv } = towerInfo;
// console.log(JSON.stringify(towerInfo))
let rec = await TowerRecordModel.findOneAndUpdate({roleId, lv}, {$set: update}, {upsert: true, new: true}).lean(lean);
let rec: TowerRecordType = await TowerRecordModel.findOneAndUpdate({roleId, lv}, {$set: update}, {upsert: true, new: true}).lean(lean);
return rec;
}
@@ -54,7 +54,7 @@ export default class TowerRecord extends BaseModel {
public static async updateRecord(roleId: string, lv: number, battleCode: string, warId: number, heroes: Array<number>, inc: number, lean = true) {
let tower = await TowerRecordModel.findOne({roleId, lv, 'warStatus.warId': warId});
if(tower) {
const rec = await TowerRecordModel.findOneAndUpdate(
const rec: TowerRecordType = await TowerRecordModel.findOneAndUpdate(
{roleId, lv, 'warStatus.warId': warId},
{$set: {'warStatus.$.status': true, 'warStatus.$.battleCode': battleCode, passed: inc === 1 ? true : false}, $push: {heroes: {$each: heroes}}},
{new: true, upsert: true}
@@ -62,7 +62,7 @@ export default class TowerRecord extends BaseModel {
return rec;
} else {
let warStatus = [{warId, status: true,battleCode, passed: inc === 1 ? true : false}];
const rec = await TowerRecordModel.findOneAndUpdate(
const rec: TowerRecordType = await TowerRecordModel.findOneAndUpdate(
{roleId, lv},
{ $push: {heroes: {$each: heroes}, warStatus: {$each: warStatus}}},
{new: true, upsert: true}
@@ -73,12 +73,12 @@ export default class TowerRecord extends BaseModel {
public static async getRecordByLv(roleId: string, lv: number, lean = true) {
const rec = await TowerRecordModel.findOne({roleId, lv}).lean(lean);
const rec: TowerRecordType = await TowerRecordModel.findOne({roleId, lv}).lean(lean);
return rec;
}
public static async resetRecordByLv(roleId: string, lv: number, lean = true) {
const rec = await TowerRecordModel.findOneAndUpdate(
const rec: TowerRecordType = await TowerRecordModel.findOneAndUpdate(
{roleId, lv, passed: false},
{$set: {'warStatus.$[].status': false, 'warStatus.$[].battleCode': '', heroes: []}},
{new: true}).lean(lean);
@@ -86,10 +86,12 @@ export default class TowerRecord extends BaseModel {
}
public static async deleteAccount(roleId: string, lean = true) {
let result = await TowerRecordModel.deleteMany({roleId}).lean(lean);
return result||{};
public static async deleteAccount(roleId: string) {
let result = await TowerRecordModel.deleteMany({roleId});
return result;
}
}
export const TowerRecordModel = getModelForClass(TowerRecord);
export interface TowerRecordType extends Pick<DocumentType<TowerRecord>, keyof TowerRecord>{};