🐞 fix(初始): pvp排行榜初始问题修复
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user