pvp赛季结算界面

This commit is contained in:
mamengke01
2021-01-15 16:06:52 +08:00
parent 2e501014b0
commit 3d9a5e7592
8 changed files with 119 additions and 86 deletions

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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);
});