🐞 fix(初始): pvp排行榜初始问题修复
This commit is contained in:
@@ -22,6 +22,7 @@ import { GVGVestigeLeagueRankModel } from "../db/GVGVestigeLeagueRank";
|
|||||||
import { getDayKeyInfo } from "./gvg/gvgFightService";
|
import { getDayKeyInfo } from "./gvg/gvgFightService";
|
||||||
import { ActivityMiniGameModel } from "../db/ActivityMiniGame";
|
import { ActivityMiniGameModel } from "../db/ActivityMiniGame";
|
||||||
import { getPVPServerGroup } from "./serverService";
|
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);
|
await r.setRankWithGuildInfoArrParam(guild.code, [guild.lv, guild.activeWeekly, guild.activeUpdateTime], guild);
|
||||||
}
|
}
|
||||||
} else if (type == REDIS_KEY.PVP_RANK) {
|
} 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) {
|
if(seasonNum > 0) {
|
||||||
let serverGroup = await getPVPServerGroup();
|
let serverGroup = await getPVPServerGroup();
|
||||||
for(let [groupId, serverIds] of serverGroup) {
|
for(let [groupId, serverIds] of serverGroup) {
|
||||||
@@ -1098,7 +1100,6 @@ export async function setRankRedisFromDb(type: string, args?: { serverId?: numbe
|
|||||||
await delKeys(keyName.getName());
|
await delKeys(keyName.getName());
|
||||||
let ranks = await PvpDefenseModel.getRank(serverIds, seasonNum);//获得全服前1000名的排名,加入到redis中
|
let ranks = await PvpDefenseModel.getRank(serverIds, seasonNum);//获得全服前1000名的排名,加入到redis中
|
||||||
|
|
||||||
console.log('#####', seasonNum, groupId, serverIds, ranks.length)
|
|
||||||
let r = new Rank(type, { seasonNum, groupId });
|
let r = new Rank(type, { seasonNum, groupId });
|
||||||
r.setIsInit(true);
|
r.setIsInit(true);
|
||||||
for (let { roleId, role: _role, score, updatedAt } of ranks) {
|
for (let { roleId, role: _role, score, updatedAt } of ranks) {
|
||||||
|
|||||||
@@ -104,11 +104,14 @@ function getPinusKeyOfFun(fun: SERVER_GROUP_FUN_TYPE) {
|
|||||||
|
|
||||||
export async function getPVPServerGroup() {
|
export async function getPVPServerGroup() {
|
||||||
let now = nowSeconds();
|
let now = nowSeconds();
|
||||||
|
const servers = await ServerlistModel.findByEnv(pinus.app.get('env'));
|
||||||
const pvpServerGroup = await ServerGroupModel.findByTime(now, SERVER_GROUP_FUN_TYPE.PVP);
|
const pvpServerGroup = await ServerGroupModel.findByTime(now, SERVER_GROUP_FUN_TYPE.PVP);
|
||||||
let map = new Map<number, number[]>();
|
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, []);
|
if(!map.has(groupId)) map.set(groupId, []);
|
||||||
map.get(groupId).push(serverId);
|
map.get(groupId).push(server.id);
|
||||||
}
|
}
|
||||||
return map
|
return map
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user