41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import BaseModel from './BaseModel';
|
|
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
|
|
|
class WarStatus {
|
|
@prop({ required: true })
|
|
warId: number; // 策划表中战斗编号
|
|
@prop({ required: true })
|
|
battleCode: string; // 服务器生成的战斗唯一标识
|
|
@prop({ required: true })
|
|
status: boolean; // 是否通过,true-通过,false-未通过
|
|
}
|
|
|
|
/**
|
|
* 天梯记录表
|
|
*/
|
|
@index({ roleId: 1, lv: 1 })
|
|
|
|
export default class TowerRecord extends BaseModel {
|
|
@prop({ required: true })
|
|
roleId: string; // 角色 id
|
|
@prop({ required: true, default: 1 })
|
|
lv: number; // 天梯层数
|
|
@prop({ required: true, default: [] })
|
|
heroes: Array<number>; // 本层已使用武将
|
|
@prop({ required: true, default: [] })
|
|
warStatus: Array<WarStatus>;
|
|
@prop({ required: true, default: 0 })
|
|
speedUpCnt: number; // 加速总次数
|
|
@prop({ required: true, default: 0 })
|
|
speedUpTime: number; // 加速总时长
|
|
@prop({ required: true })
|
|
hangUpTime: Date; // 挂机开始时间
|
|
|
|
public static async getRecordByLv(roleId: string, lv: number, lean = true) {
|
|
const rec = await TowerRecordModel.findOne({roleId, lv}).lean(lean);
|
|
return rec;
|
|
}
|
|
}
|
|
|
|
export const TowerRecordModel = getModelForClass(TowerRecord);
|