pvp结算展示
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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> { };
|
||||
Reference in New Issue
Block a user