🐞 fix(初始): pvp排行榜初始问题修复

This commit is contained in:
luying
2023-05-26 11:26:41 +08:00
parent 12c040a7f7
commit 73f470bdbf
2 changed files with 8 additions and 4 deletions

View File

@@ -22,6 +22,7 @@ import { GVGVestigeLeagueRankModel } from "../db/GVGVestigeLeagueRank";
import { getDayKeyInfo } from "./gvg/gvgFightService";
import { ActivityMiniGameModel } from "../db/ActivityMiniGame";
import { getPVPServerGroup } from "./serverService";
import { PVPConfigModel } from "../db/PvpConfig";
/**
@@ -1090,7 +1091,8 @@ export async function setRankRedisFromDb(type: string, args?: { serverId?: numbe
await r.setRankWithGuildInfoArrParam(guild.code, [guild.lv, guild.activeWeekly, guild.activeUpdateTime], guild);
}
} else if (type == REDIS_KEY.PVP_RANK) {
let seasonNum: number = pinus.app.get('pvpSettleSeasonNum');
let pvpConfig = await PVPConfigModel.findCurPVPConfig();
let seasonNum = pvpConfig?.seasonNum;
if(seasonNum > 0) {
let serverGroup = await getPVPServerGroup();
for(let [groupId, serverIds] of serverGroup) {
@@ -1098,7 +1100,6 @@ export async function setRankRedisFromDb(type: string, args?: { serverId?: numbe
await delKeys(keyName.getName());
let ranks = await PvpDefenseModel.getRank(serverIds, seasonNum);//获得全服前1000名的排名加入到redis中
console.log('#####', seasonNum, groupId, serverIds, ranks.length)
let r = new Rank(type, { seasonNum, groupId });
r.setIsInit(true);
for (let { roleId, role: _role, score, updatedAt } of ranks) {

View File

@@ -104,11 +104,14 @@ function getPinusKeyOfFun(fun: SERVER_GROUP_FUN_TYPE) {
export async function getPVPServerGroup() {
let now = nowSeconds();
const servers = await ServerlistModel.findByEnv(pinus.app.get('env'));
const pvpServerGroup = await ServerGroupModel.findByTime(now, SERVER_GROUP_FUN_TYPE.PVP);
let map = new Map<number, number[]>();
for(let { serverId, groupId } of pvpServerGroup) {
for(let server of servers) {
let serverGroup = pvpServerGroup.find(cur => cur.serverId == server.id);
let groupId = serverGroup? serverGroup.groupId: server.groupId;
if(!map.has(groupId)) map.set(groupId, []);
map.get(groupId).push(serverId);
map.get(groupId).push(server.id);
}
return map
}