fix pvp刷新对手时保存数据
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||
|
||||
import { PvpEnemies } from './generalField';
|
||||
|
||||
export class HeroScores {
|
||||
@prop({ required: true })
|
||||
hid: number;
|
||||
@prop({ required: true })
|
||||
score: number;
|
||||
}
|
||||
|
||||
@index({ roleId: 1 })
|
||||
export default class PvpHistoryOpp extends BaseModel {
|
||||
@prop({ required: true })
|
||||
roleId: string; // 玩家id
|
||||
@prop({ required: true })
|
||||
pos: number; // 对手位置
|
||||
@prop({ required: true })
|
||||
oppRoleId: string; // 对手角色 id
|
||||
@prop({ required: true })
|
||||
roleName: string; // 角色名称
|
||||
@prop({ required: true, default: 19 })
|
||||
headHid: number; // 对手头像
|
||||
@prop({ required: true, default: 19 })
|
||||
sHid: number; // 对手形象
|
||||
@prop({ required: true, default: 0 })
|
||||
score: number; // 对手军功
|
||||
@prop({ required: true, default: 1 })
|
||||
pLv: number; // 对手等级
|
||||
@prop({ required: true, default: 1 })
|
||||
lv: number; // 对手角色等级
|
||||
@prop({ required: true, default: 1 })
|
||||
title: number; // 对手等级
|
||||
@prop({ required: true, default: 0 })
|
||||
defCe: number; // 防守战力
|
||||
@prop({ required: true, default: 0 })
|
||||
rankLv: number; // 对手排名
|
||||
@prop({ required: true, type: PvpEnemies, default: [] })
|
||||
heroes: PvpEnemies[]; // 对手阵容
|
||||
@prop({ required: true, default: 0 })
|
||||
status: number; // 状态 0-仅刷出 1-挑战过
|
||||
|
||||
public static async createPvpOpp(params: PvpOppCreateParam, lean = true) {
|
||||
const doc = new PvpHistoryOppModel();
|
||||
const update = Object.assign(doc.toJSON(), params);
|
||||
delete update._id;
|
||||
const defense: PvpHistoryOppType = await PvpHistoryOppModel.findOneAndUpdate({ roleId: params.roleId, pos: params.pos }, update, { upsert: true, new: true }).lean(lean);
|
||||
return defense;
|
||||
}
|
||||
|
||||
public static async findByRoleIdAndOppId(roleId: string, oppRoleId: string) {
|
||||
const result: PvpHistoryOppType = await PvpHistoryOppModel.findOne({ roleId, oppRoleId, status: 0 }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async setStatus(roleId: string, oppRoleId: string, status: number) {
|
||||
const result: PvpHistoryOppType = await PvpHistoryOppModel.findOneAndUpdate({ roleId, oppRoleId }, {status}, {new: true}).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const PvpHistoryOppModel = getModelForClass(PvpHistoryOpp);
|
||||
|
||||
export interface PvpHistoryOppType extends Pick<DocumentType<PvpHistoryOpp>, keyof PvpHistoryOpp> { };
|
||||
export type PvpOppCreateParam = Partial<PvpHistoryOppType>; // 将所有字段变成可选项
|
||||
Reference in New Issue
Block a user