pvp结算展示

This commit is contained in:
mamengke01
2021-01-14 14:47:42 +08:00
parent ab20a62531
commit 2fad019a2e
5 changed files with 127 additions and 27 deletions
+3
View File
@@ -24,6 +24,7 @@ export interface pvpUpdateInter {
receivedBox?: Array<number>;
seasonEndTime?:number;
isDefaultHero?:boolean;
oldSeasonEndTime?:number;
}
export class Heroes {
@@ -149,6 +150,8 @@ export default class PvpDefense extends BaseModel {
seasonEndTime: number;
@prop({ required: true, default: true })
isFirstEntry: boolean;
@prop({ required: true, default: 0 })
oldSeasonEndTime:number;
public static async findByRoleId(roleId: string, lean = true) {
const result: PvpDefenseType = await PvpDefenseModel.findOne({ roleId }).lean(lean);
return result;
+80
View File
@@ -0,0 +1,80 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
class RewardInter {
@prop({ required: true })
id: number;
@prop({ required: true })
count: number;
}
export class HeroScores {
@prop({ required: true })
hid: number;
@prop({ required: true })
score: number;
}
export interface pvpUpdate {
goods?:Array<RewardInter>;
oldSeasonData?: SeasonData;
show?: boolean;
}
class SeasonData {
@prop({ required: true })
score: number;
@prop({ required: true })
pLv: number;
@prop({ required: true, type:HeroScores, default:[] })
heroScores: HeroScores[];
@prop({ required: true })
winStreakNum: number;
@prop({ required: true })
seasonNum: number;
@prop({ required: true })
challengeCnt: number;
@prop({ required: true })
challengeRefTime: number;
@prop({ required: true })
seasonEndTime: number;
@prop({ required: true })
rankLv: number;
@prop({ required: true })
refOppCnt:number;
}
@index({ roleId: 1 })
export default class PvpSeasonResult extends BaseModel {
@prop({ required: true })
roleId: string;
@prop({ required: true, type: RewardInter, default: [], _id: false})
goods: Array<RewardInter>;
@prop({ required: true, type: SeasonData, _id: false})
oldSeasonData: SeasonData;
@prop({ required: true, default: true, _id: false})
show: boolean;
public static async updatePvpSeasonResult(roleId: string, update: pvpUpdate , lean = true) {
let result: PvpSeasonResultType = await PvpSeasonResultModel.findOneAndUpdate({roleId}, {$set: update}, {upsert: true, new: true}).lean(lean);
return result;
}
public static async getPvpSeasonResult(roleId: string, lean = true) {
let result: PvpSeasonResultType = await PvpSeasonResultModel.findOne({roleId}).lean(lean);
return result;
}
}
export const PvpSeasonResultModel = getModelForClass(PvpSeasonResult);
export interface PvpSeasonResultType extends Pick<DocumentType<PvpSeasonResult>, keyof PvpSeasonResult> { };