pvp赛季结算界面
This commit is contained in:
@@ -22,7 +22,6 @@ export interface pvpUpdateInter {
|
||||
challengeRefTime?:number;
|
||||
isFirstEntry?:boolean;
|
||||
receivedBox?: Array<number>;
|
||||
seasonEndTime?:number;
|
||||
isDefaultHero?:boolean;
|
||||
}
|
||||
|
||||
@@ -143,8 +142,6 @@ export default class PvpDefense extends BaseModel {
|
||||
receivedBox: Array<number>;
|
||||
@prop({ required: true, default: 0 })
|
||||
seasonNum: number;
|
||||
@prop({ required: true, default: 0 })
|
||||
seasonEndTime: number;
|
||||
@prop({ required: true, default: true })
|
||||
isFirstEntry: boolean;
|
||||
public static async findByRoleId(roleId: string, lean = true) {
|
||||
@@ -160,7 +157,7 @@ export default class PvpDefense extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async createPvpDefense(params: { roleId: string, roleName: string, role: string, heroes: Array<Heroes>, oppPlayers: Array<OppPlayers>, defCe: number, seasonNum: number, seasonEndTime:number, challengeCnt: number }, lean = true) {
|
||||
public static async createPvpDefense(params: { roleId: string, roleName: string, role: string, heroes: Array<Heroes>, oppPlayers: Array<OppPlayers>, defCe: number, seasonNum: number,challengeCnt: number }, lean = true) {
|
||||
const doc = new PvpDefenseModel();
|
||||
const update = Object.assign(doc.toJSON(), params);
|
||||
const defense: PvpDefenseType = await PvpDefenseModel.findOneAndUpdate({ roleId: params.roleId }, update, { upsert: true, new: true }).lean(lean);
|
||||
@@ -230,9 +227,9 @@ export default class PvpDefense extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async getRank(page = 1, limit = 1000, lean = true) {
|
||||
public static async getRank(seasonNum: number, page = 1, limit = 1000, lean = true) {
|
||||
let sortBy = { score: -1, updatedAt: 1 };
|
||||
const ranks: PvpDefenseType[] = await PvpDefenseModel.find().select('roleId role score updatedAt')
|
||||
const ranks: PvpDefenseType[] = await PvpDefenseModel.find({seasonNum}).select('roleId role score updatedAt')
|
||||
.populate('role', 'roleId roleName headHid sHid title lv vLv')
|
||||
.sort(sortBy).limit(limit).skip((page - 1) * limit).lean(lean);
|
||||
return ranks;
|
||||
|
||||
@@ -11,6 +11,8 @@ export default class SystemConfig extends BaseModel {
|
||||
seasonNum: number; // 赛季
|
||||
@prop({ required: true })
|
||||
seasonEndTime: number; //赛季结束的时间
|
||||
@prop({ required: true , default: 0 })
|
||||
oldSeasonEndTime: number; //上赛季结束的时间
|
||||
public static async findSystemConfig(lean = true) {
|
||||
const result: SystemConfigType = await SystemConfigModel.findOne({ id: 1 }).lean(lean);
|
||||
return result;
|
||||
@@ -21,13 +23,13 @@ export default class SystemConfig extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async updateSystemConfig(update: { seasonEndTime?: number, warId?: number, seasonNum?:number }, lean = true) {
|
||||
public static async updateSystemConfig(update: { seasonEndTime?: number, warId?: number, seasonNum?:number , oldSeasonEndTime?: number}, lean = true) {
|
||||
const result: SystemConfigType = await SystemConfigModel.findOneAndUpdate({ id: 1}, update, { upsert: true, new: true }).lean(lean);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async updateSeason( seasonEndTime: number, lean = true) {
|
||||
const result: SystemConfigType = await SystemConfigModel.findOneAndUpdate({ id: 1}, { seasonEndTime, $inc: { seasonNum: 1 } }, { upsert: true, new: true }).lean(lean);
|
||||
public static async updateSeason( seasonEndTime: number, oldSeasonEndTime: number, lean = true) {
|
||||
const result: SystemConfigType = await SystemConfigModel.findOneAndUpdate({ id: 1}, { seasonEndTime, $inc: { seasonNum: 1 }, oldSeasonEndTime }, { upsert: true, new: true }).lean(lean);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ import { dicPvpTeamLevel } from './dictionary/DicPvpTeamLevel';
|
||||
import { dicPvpRefreshConsume, maxPvpRefreshCnt } from './dictionary/DicPvpRefreshConsume';
|
||||
import { dicGkPvp, dicGkPvps } from './dictionary/DicGkPvp';
|
||||
import { dicHeroRewads } from './dictionary/DicPvpHeroReward';
|
||||
import { dicRankRewads } from './dictionary/DicPvpRankReward';
|
||||
import { dicRankRewads, dicRankMax } from './dictionary/DicPvpRankReward';
|
||||
import { dicPvpBoxs } from './dictionary/DicPvpBox';
|
||||
export const gameData = {
|
||||
blurprtCompose: dicBlueprtCompose,
|
||||
@@ -101,6 +101,7 @@ export const gameData = {
|
||||
pvpHeroRewards: dicHeroRewads,
|
||||
pvpRankRewards: dicRankRewads,
|
||||
pvpBoxs: dicPvpBoxs,
|
||||
pvpRankMax: dicRankMax,
|
||||
};
|
||||
|
||||
// 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据
|
||||
@@ -297,4 +298,8 @@ export function getPvpRankRewards() {
|
||||
|
||||
export function getPvpBoxs() {
|
||||
return gameData.pvpBoxs;
|
||||
}
|
||||
|
||||
export function getResultMaxRank() {
|
||||
return gameData.pvpRankMax;
|
||||
}
|
||||
@@ -14,7 +14,11 @@ const str = readJsonFile(FILENAME.DIC_PVP_RANK_REWARD);
|
||||
let arr = JSON.parse(str);
|
||||
|
||||
export const dicRankRewads = new Array<DicRankRewads>();
|
||||
export var dicRankMax: DicRankRewads;
|
||||
arr.forEach(o => {
|
||||
o.reward = parseGoodStr(o.reward);
|
||||
if (!dicRankMax||o.min > dicRankMax.min) {
|
||||
dicRankMax = o;
|
||||
}
|
||||
dicRankRewads.push(o);
|
||||
});
|
||||
Reference in New Issue
Block a user