排行榜:总览

This commit is contained in:
luying
2021-09-08 19:40:21 +08:00
parent c3931a3043
commit cb59d0aa96
5 changed files with 22 additions and 22 deletions
@@ -70,8 +70,8 @@ export class RoleHandler {
myRank = await r.generMyRankWithRole(roleId, role.ce, role.updatedAt.getTime(), role); myRank = await r.generMyRankWithRole(roleId, role.ce, role.updatedAt.getTime(), role);
} else if (type == RANK_TYPE.TOWER) { } else if (type == RANK_TYPE.TOWER) {
myRank = await r.generMyRankWithRole(roleId, role.towerLv - 1, role.towerUpTime?.getTime() || 0, role); myRank = await r.generMyRankWithRole(roleId, role.towerLv - 1, role.towerUpTime?.getTime() || 0, role);
} else if (type == RANK_TYPE.DUNGEON) { // } else if (type == RANK_TYPE.DUNGEON) {
myRank = await r.generMyRankWithRole(roleId, role.dungeonWarId, role.dungeonUpdatedAt, role); // myRank = await r.generMyRankWithRole(roleId, role.dungeonWarId, role.dungeonUpdatedAt, role);
} else if (type == RANK_TYPE.MAIN) { } else if (type == RANK_TYPE.MAIN) {
myRank = await r.generMyRankWithRole(roleId, role.mainWarId, role.mainUpdatedAt, role); myRank = await r.generMyRankWithRole(roleId, role.mainWarId, role.mainUpdatedAt, role);
} else if (type == RANK_TYPE.MAIN_ELITE) { } else if (type == RANK_TYPE.MAIN_ELITE) {
+7 -10
View File
@@ -855,7 +855,7 @@ export class Rank {
let r = new Rank(redisKey, { serverId }, false, 1); let r = new Rank(redisKey, { serverId }, false, 1);
let ranks = <RoleRankInfo[]>await r.getRankByRange(); let ranks = <RoleRankInfo[]>await r.getRankByRange();
if (ranks.length > 0) { if (ranks.length > 0) {
let param = new GeneralRankParam(id, ranks[0] || new RoleRankInfo({}, false)); let param = new GeneralRankParam(id, ranks[0] || new RoleRankInfo({}, false), general);
pinus.app.rpc.chat.chatRemote.sendRankTopUpdated.toServer(sid, serverId, { ...param, general }); pinus.app.rpc.chat.chatRemote.sendRankTopUpdated.toServer(sid, serverId, { ...param, general });
} }
@@ -1000,7 +1000,7 @@ export async function setRankRedisFromDb(type: string, args?: { serverId?: numbe
export async function getGeneralRank(role: RoleType & { rankReceived: number[] }, serverId: number) { export async function getGeneralRank(role: RoleType & { rankReceived: number[] }, serverId: number) {
let { rankReceived = [] } = role; let { rankReceived = [] } = role;
let result: GeneralRankParam[] = []; let result: (GeneralRankParam & {general: number})[] = [];
for (let { id, general } of gameData.rank) { for (let { id, general } of gameData.rank) {
let redisKey = RANK_TYPE_TO_KEY.get(id); let redisKey = RANK_TYPE_TO_KEY.get(id);
@@ -1009,14 +1009,11 @@ export async function getGeneralRank(role: RoleType & { rankReceived: number[] }
let dic = gameData.generalRankReward.get(rewardId); let dic = gameData.generalRankReward.get(rewardId);
return dic && dic.rankId == id; return dic && dic.rankId == id;
}); });
if (general == 1) { let r = new Rank(redisKey, { serverId }, false, 1);
let r = new Rank(redisKey, { serverId }, false, 1); let ranks = await r.getRankByRange();
let ranks = <RoleRankInfo[]>await r.getRankByRange(); // if (ranks.length > 0) {
if (ranks.length > 0) { let param = new GeneralRankParam(id, ranks[0] || new RoleRankInfo({}, false), general, received);
let param = new GeneralRankParam(id, ranks[0] || new RoleRankInfo({}, false), received); result.push({...param, general});
result.push(param);
}
}
} }
} }
return result; return result;
+2 -2
View File
@@ -28,7 +28,7 @@ export async function initAllRank() {
await delKeys(REDIS_KEY.HERO_NUM_RANK); await delKeys(REDIS_KEY.HERO_NUM_RANK);
await delKeys(REDIS_KEY.USER_LV); await delKeys(REDIS_KEY.USER_LV);
await delKeys(REDIS_KEY.SUM_CE_RANK); await delKeys(REDIS_KEY.SUM_CE_RANK);
await delKeys(REDIS_KEY.DUNGEON_RANK); // await delKeys(REDIS_KEY.DUNGEON_RANK);
await delKeys(REDIS_KEY.DUNGEON_LINEUP); await delKeys(REDIS_KEY.DUNGEON_LINEUP);
await delKeys(REDIS_KEY.MAIN_RANK); await delKeys(REDIS_KEY.MAIN_RANK);
await delKeys(REDIS_KEY.MAIN_ELITE_RANK); await delKeys(REDIS_KEY.MAIN_ELITE_RANK);
@@ -54,7 +54,7 @@ export async function initRank(serverId: number) {
await setRankRedisFromDb(REDIS_KEY.HERO_NUM_RANK, { serverId }); await setRankRedisFromDb(REDIS_KEY.HERO_NUM_RANK, { serverId });
await setRankRedisFromDb(REDIS_KEY.USER_LV, { serverId }); await setRankRedisFromDb(REDIS_KEY.USER_LV, { serverId });
await setRankRedisFromDb(REDIS_KEY.SUM_CE_RANK, { serverId }); await setRankRedisFromDb(REDIS_KEY.SUM_CE_RANK, { serverId });
await setRankRedisFromDb(REDIS_KEY.DUNGEON_RANK, { serverId }); // await setRankRedisFromDb(REDIS_KEY.DUNGEON_RANK, { serverId });
await setRankRedisFromDb(REDIS_KEY.MAIN_RANK, { serverId }); await setRankRedisFromDb(REDIS_KEY.MAIN_RANK, { serverId });
await setRankRedisFromDb(REDIS_KEY.MAIN_ELITE_RANK, { serverId }); await setRankRedisFromDb(REDIS_KEY.MAIN_ELITE_RANK, { serverId });
await setRankRedisFromDb(REDIS_KEY.HERO_RANK, { serverId }); await setRankRedisFromDb(REDIS_KEY.HERO_RANK, { serverId });
+4 -5
View File
@@ -269,10 +269,9 @@ export enum RANK_TYPE {
USER_LV = 4, // 主公等级 USER_LV = 4, // 主公等级
SUM_CE = 5, // 总战力 SUM_CE = 5, // 总战力
TOWER = 6, // 镇念塔 TOWER = 6, // 镇念塔
DUNGEON = 7, // 秘境 MAIN = 7, // 主线
MAIN = 8, // 主线 MAIN_ELITE = 8, // 精英
MAIN_ELITE = 9, // 精英 GUILD_LV = 9, // 军团按等级排序
GUILD_LV = 10, // 军团按等级排序
GUILD_ACTIVE = 11, // 军团活跃度排序 GUILD_ACTIVE = 11, // 军团活跃度排序
HERO = 12, // 武将排行 HERO = 12, // 武将排行
} }
@@ -285,7 +284,7 @@ export const RANK_TYPE_TO_KEY = new Map([
[RANK_TYPE.USER_LV, REDIS_KEY.USER_LV], [RANK_TYPE.USER_LV, REDIS_KEY.USER_LV],
[RANK_TYPE.SUM_CE, REDIS_KEY.SUM_CE_RANK], [RANK_TYPE.SUM_CE, REDIS_KEY.SUM_CE_RANK],
[RANK_TYPE.TOWER, REDIS_KEY.TOWER_RANK], [RANK_TYPE.TOWER, REDIS_KEY.TOWER_RANK],
[RANK_TYPE.DUNGEON, REDIS_KEY.DUNGEON_RANK], // [RANK_TYPE.DUNGEON, REDIS_KEY.DUNGEON_RANK],
[RANK_TYPE.MAIN, REDIS_KEY.MAIN_RANK], [RANK_TYPE.MAIN, REDIS_KEY.MAIN_RANK],
[RANK_TYPE.MAIN_ELITE, REDIS_KEY.MAIN_ELITE_RANK], [RANK_TYPE.MAIN_ELITE, REDIS_KEY.MAIN_ELITE_RANK],
[RANK_TYPE.GUILD_LV, REDIS_KEY.GUILD_LV_RANK], [RANK_TYPE.GUILD_LV, REDIS_KEY.GUILD_LV_RANK],
+7 -3
View File
@@ -352,13 +352,17 @@ export interface myIdInter {
// 排行榜总览左边的数据 // 排行榜总览左边的数据
export class GeneralRankParam { export class GeneralRankParam {
type: number; // 排行榜id type: number; // 排行榜id
userInfo: RankParam; userInfo?: RankParam;
num: number; num: number;
received: number[]; received: number[];
constructor(type: number, rankInfo: RoleRankInfo, received?: number[]) { constructor(type: number, rankInfo: RoleRankInfo|GuildRankInfo, general: number, received?: number[]) {
this.type = type; this.type = type;
this.userInfo = pick(rankInfo, ['roleId', 'roleName', 'head', 'frame', 'spine', 'guildName', 'ce', 'title', 'lv']); if(general == 1) {
if(rankInfo instanceof RoleRankInfo) {
this.userInfo = pick(rankInfo, ['roleId', 'roleName', 'head', 'frame', 'spine', 'guildName', 'ce', 'title', 'lv']);
}
}
this.num = rankInfo.num; this.num = rankInfo.num;
this.received = received; this.received = received;
} }