排行榜: 获取排行榜

This commit is contained in:
luying
2021-04-07 21:00:07 +08:00
parent 34e02dea89
commit 5dca7b304d
32 changed files with 1077 additions and 290 deletions

View File

@@ -226,20 +226,34 @@ export const DEFAULT_HERO_LV = 1;
export const FIX_SMS_CODE_TELS = ['18855953630', '13911134885', '15167549151', '15618654010', '15167549151', '18342915387', '15000250967'];
export const REDIS_KEY = {
USER_INFO: "userInfo", // 玩家缓存信息
TOWER_RANK: "towerRank", // 天梯排行榜
COM_TEAM_SEARCH_PRE: 'comTeamSerQ', // 匹配中的玩家,按品质分
PVP_RANK: "pvpRank", // pvp排行榜
GUILD_INFO: "guildInfo", // 公会信息
GUILD_ACTIVE_RANK: "guildActiveRank", // 公会周活跃排行榜
DB_GAME: 'db_game', // 服务器列表
ONLINE_USERS: 'onlineUsers', // 在线用户情况
CHANNEL_SERVERS: 'chat:channelServers', // 渠道对应的 chat 服务器 Id,
USER_GATE_ACTIVITY: 'usrGateAct', // 蛮夷入侵玩家排行
GATE_ACTIVITY: 'gateAct', // 蛮夷入侵军团排行
USER_CITY_ACTIVITY: 'usrCityAct', // 诸侯混战玩家排行
CITY_ACTIVITY: 'cityAct', // 诸侯混战军团排行
RACE_ACTIVITY: 'raceAct', // 粮草先行军团排行
USER_INFO: "userInfo", // 玩家缓存信息
TOWER_RANK: "towerRank", // 天梯排行榜
COM_TEAM_SEARCH_PRE: 'comTeamSerQ', // 匹配中的玩家,按品质分
PVP_RANK: "pvpRank", // pvp排行榜
GUILD_INFO: "guildInfo", // 公会信息
GUILD_ACTIVE_RANK: "guildActiveRank", // 公会周活跃排行榜
DB_GAME: 'dbGame', // 服务器列表
ONLINE_USERS: 'onlineUsers', // 在线用户情况
CHANNEL_SERVERS: 'chat:channelServers', // 渠道对应的 chat 服务器 Id,
USER_GATE_ACTIVITY: 'usrGateAct', // 蛮夷入侵玩家排行
GATE_ACTIVITY: 'gateAct', // 蛮夷入侵军团排行
USER_CITY_ACTIVITY: 'usrCityAct', // 诸侯混战玩家排行
CITY_ACTIVITY: 'cityAct', // 诸侯混战军团排行
RACE_ACTIVITY: 'raceAct', // 粮草先行军团排行
TOP_LINEUP_INFO: 'topLineInfo', // 最强阵容数据
TOP_LINEUP_RANK: 'topLineRank', // 最强阵容排行
TOP_HERO_RANK: 'topHeroRank', // 最强武将排行
HERO_INFO: 'heroInfo', // 最强武将信息
HERO_NUM_RANK: 'heroNum', // 武将数量排行
USER_LV: 'usrLv', // 主公等级排行榜
SUM_CE_RANK: 'sumCeRank', // 总战力排名
DUNGEON_RANK: 'dungeonRank', // 秘境排名
DUNGEON_LINEUP: 'dungeonLineup', // 秘境通关阵容
MAIN_RANK: 'mainRank', // 主线通关排名
MAIN_ELITE_RANK: 'mainEliteRank', // 精英通关排名
GUILD_LV_RANK: "guildLvRank", // 公会等级排行榜
HERO_RANK: "heroRank", // 武将排行榜
SHOW_LINEUP: "showLineup", // 展示阵容
}
// 各排行榜对应hash的key
@@ -247,13 +261,97 @@ export const REDIS_RANK_TO_INFO = new Map([
[REDIS_KEY.TOWER_RANK, REDIS_KEY.USER_INFO],
[REDIS_KEY.PVP_RANK, REDIS_KEY.USER_INFO],
[REDIS_KEY.GUILD_ACTIVE_RANK, REDIS_KEY.GUILD_INFO],
[REDIS_KEY.GUILD_LV_RANK, REDIS_KEY.GUILD_INFO],
[REDIS_KEY.GATE_ACTIVITY, REDIS_KEY.GUILD_INFO],
[REDIS_KEY.USER_GATE_ACTIVITY, REDIS_KEY.USER_INFO],
[REDIS_KEY.CITY_ACTIVITY, REDIS_KEY.GUILD_INFO],
[REDIS_KEY.USER_CITY_ACTIVITY, REDIS_KEY.USER_INFO],
[REDIS_KEY.RACE_ACTIVITY, REDIS_KEY.GUILD_INFO]
[REDIS_KEY.RACE_ACTIVITY, REDIS_KEY.GUILD_INFO],
[REDIS_KEY.TOP_LINEUP_RANK, REDIS_KEY.USER_INFO],
[REDIS_KEY.TOP_HERO_RANK, REDIS_KEY.USER_INFO],
[REDIS_KEY.HERO_NUM_RANK, REDIS_KEY.USER_INFO],
[REDIS_KEY.USER_LV, REDIS_KEY.USER_INFO],
[REDIS_KEY.SUM_CE_RANK, REDIS_KEY.USER_INFO],
[REDIS_KEY.DUNGEON_RANK, REDIS_KEY.USER_INFO],
[REDIS_KEY.MAIN_RANK, REDIS_KEY.USER_INFO],
[REDIS_KEY.MAIN_ELITE_RANK, REDIS_KEY.USER_INFO],
[REDIS_KEY.HERO_RANK, REDIS_KEY.USER_INFO]
]);
export const REDIS_RANK_TO_EXTRA = new Map([
[REDIS_KEY.TOP_LINEUP_RANK, [REDIS_KEY.TOP_LINEUP_INFO]],
[REDIS_KEY.TOP_HERO_RANK, [REDIS_KEY.HERO_INFO]],
[REDIS_KEY.DUNGEON_RANK, [REDIS_KEY.DUNGEON_LINEUP]],
[REDIS_KEY.HERO_RANK, [REDIS_KEY.HERO_INFO, REDIS_KEY.SHOW_LINEUP]]
]);
// 排行榜类型
export enum RANK_TYPE {
TOP_LINTUP = 1, // 最强阵容战力
TOP_HERO = 2, // 最强武将
HERO_NUM = 3, // 武将数量
USER_LV = 4, // 主公等级
SUM_CE = 5, // 总战力
TOWER = 6, // 镇念塔
DUNGEON = 7, // 秘境
MAIN = 8, // 主线
MAIN_ELITE = 9, // 精英
GUILD_LV = 10, // 军团按等级排序
GUILD_ACTIVE = 11, // 军团活跃度排序
HERO = 12, // 武将排行
}
// 接口中的排行榜类型对应的redis中的key
export const RANK_TYPE_TO_KEY = new Map([
[RANK_TYPE.TOP_LINTUP, REDIS_KEY.TOP_LINEUP_RANK],
[RANK_TYPE.TOP_HERO, REDIS_KEY.TOP_HERO_RANK],
[RANK_TYPE.HERO_NUM, REDIS_KEY.HERO_NUM_RANK],
[RANK_TYPE.USER_LV, REDIS_KEY.USER_LV],
[RANK_TYPE.SUM_CE, REDIS_KEY.SUM_CE_RANK],
[RANK_TYPE.TOWER, REDIS_KEY.TOWER_RANK],
[RANK_TYPE.DUNGEON, REDIS_KEY.DUNGEON_RANK],
[RANK_TYPE.MAIN, REDIS_KEY.MAIN_RANK],
[RANK_TYPE.MAIN_ELITE, REDIS_KEY.MAIN_ELITE_RANK],
[RANK_TYPE.GUILD_LV, REDIS_KEY.GUILD_LV_RANK],
[RANK_TYPE.GUILD_ACTIVE, REDIS_KEY.GUILD_ACTIVE_RANK],
[RANK_TYPE.HERO, REDIS_KEY.HERO_RANK]
]);
// field处理方法
export enum COMPOSE_FIELD_TYPE {
ROLE = 1,
GUILD = 2,
ROLE_HERO = 3
}
// 各个key的field如何处理
export const KEY_TO_COMPOSE_FIELD = new Map([
[REDIS_KEY.USER_INFO, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.TOWER_RANK, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.PVP_RANK, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.GUILD_INFO, COMPOSE_FIELD_TYPE.GUILD],
[REDIS_KEY.GUILD_ACTIVE_RANK, COMPOSE_FIELD_TYPE.GUILD],
[REDIS_KEY.GUILD_LV_RANK, COMPOSE_FIELD_TYPE.GUILD],
[REDIS_KEY.USER_GATE_ACTIVITY, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.GATE_ACTIVITY, COMPOSE_FIELD_TYPE.GUILD],
[REDIS_KEY.USER_CITY_ACTIVITY, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.CITY_ACTIVITY, COMPOSE_FIELD_TYPE.GUILD],
[REDIS_KEY.RACE_ACTIVITY, COMPOSE_FIELD_TYPE.GUILD],
[REDIS_KEY.TOP_LINEUP_INFO, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.TOP_LINEUP_RANK, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.TOP_HERO_RANK, COMPOSE_FIELD_TYPE.ROLE_HERO],
[REDIS_KEY.HERO_INFO, COMPOSE_FIELD_TYPE.ROLE_HERO],
[REDIS_KEY.HERO_NUM_RANK, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.USER_LV, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.DUNGEON_RANK, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.DUNGEON_LINEUP, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.MAIN_RANK, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.MAIN_ELITE_RANK, COMPOSE_FIELD_TYPE.ROLE],
[REDIS_KEY.HERO_RANK, COMPOSE_FIELD_TYPE.ROLE_HERO],
[REDIS_KEY.SHOW_LINEUP, COMPOSE_FIELD_TYPE.ROLE],
]);
export const FUNC_OPT_TYPE = {
LEVEL_UP: 1,
BATTLE_END: 2