秘境:首通信息

This commit is contained in:
luying
2021-09-07 17:31:21 +08:00
parent dd607934f7
commit 8c93cd1eba
10 changed files with 143 additions and 10 deletions

View File

@@ -1,5 +1,6 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
import { LineupParam } from '../domain/rank';
/**
* 战斗记录接口
@@ -12,6 +13,8 @@ class Record {
heroes: Array<number>; // 武将id
@prop({ required: true, type: Number })
seqIds: Array<number>; // 武将seqid
@prop({ required: true, type: () => LineupParam, _id: false })
lineup: Array<LineupParam>; // 武将详细信息
@prop({ required: false })
oppRoleId?: string; // pvp对手
@prop({ required: false })

45
shared/db/DungeonFirst.ts Normal file
View File

@@ -0,0 +1,45 @@
/**
* 秘境首通
*/
import BaseModel from './BaseModel';
import { getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
import { RankParam, LineupParam } from '../domain/rank';
export default class DungeonFirst extends BaseModel {
@prop({ required: true })
serverId: number; // 服务器id
@prop({ required: true, default: 0})
movePoint: number; // 秘境的类型
@prop({ required: true, default: 0})
warId: number; // 关卡id
@prop({ required: true })
time: number; // 首通时间
@prop({ required: true })
roleId: string; // 玩家id
@prop({ required: true, type: () => RankParam, _id: false })
userInfo: RankParam; // 玩家信息
@prop({ required: true, type: () => LineupParam, _id: false })
lineup: LineupParam[]; // 玩家信息
public static async createDungeonFirst(serverId: number, movePoint: number, warId: number, update: DungeonFirstUpdateParam) {
const rec: DungeonFirstType = await DungeonFirstModel.findOneAndUpdate({ serverId, movePoint, warId}, { $setOnInsert: update }, { new: true, upsert: true }).lean();
return rec;
}
public static async findByMovePoint(serverId: number, movePoint: number) {
const rec: DungeonFirstType[] = await DungeonFirstModel.find({ serverId, movePoint}).lean();
return rec;
}
}
export const DungeonFirstModel = getModelForClass(DungeonFirst);
export interface DungeonFirstType extends Pick<DocumentType<DungeonFirst>, keyof DungeonFirst>{}
export type DungeonFirstUpdateParam = Partial<DungeonFirstType>; // 将所有字段变成可选项