排行榜:总览

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

View File

@@ -70,8 +70,8 @@ export class RoleHandler {
myRank = await r.generMyRankWithRole(roleId, role.ce, role.updatedAt.getTime(), role);
} else if (type == RANK_TYPE.TOWER) {
myRank = await r.generMyRankWithRole(roleId, role.towerLv - 1, role.towerUpTime?.getTime() || 0, role);
} else if (type == RANK_TYPE.DUNGEON) {
myRank = await r.generMyRankWithRole(roleId, role.dungeonWarId, role.dungeonUpdatedAt, role);
// } else if (type == RANK_TYPE.DUNGEON) {
// myRank = await r.generMyRankWithRole(roleId, role.dungeonWarId, role.dungeonUpdatedAt, role);
} else if (type == RANK_TYPE.MAIN) {
myRank = await r.generMyRankWithRole(roleId, role.mainWarId, role.mainUpdatedAt, role);
} else if (type == RANK_TYPE.MAIN_ELITE) {

View File

@@ -855,7 +855,7 @@ export class Rank {
let r = new Rank(redisKey, { serverId }, false, 1);
let ranks = <RoleRankInfo[]>await r.getRankByRange();
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 });
}
@@ -1000,7 +1000,7 @@ export async function setRankRedisFromDb(type: string, args?: { serverId?: numbe
export async function getGeneralRank(role: RoleType & { rankReceived: number[] }, serverId: number) {
let { rankReceived = [] } = role;
let result: GeneralRankParam[] = [];
let result: (GeneralRankParam & {general: number})[] = [];
for (let { id, general } of gameData.rank) {
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);
return dic && dic.rankId == id;
});
if (general == 1) {
let r = new Rank(redisKey, { serverId }, false, 1);
let ranks = <RoleRankInfo[]>await r.getRankByRange();
if (ranks.length > 0) {
let param = new GeneralRankParam(id, ranks[0] || new RoleRankInfo({}, false), received);
result.push(param);
}
}
let r = new Rank(redisKey, { serverId }, false, 1);
let ranks = await r.getRankByRange();
// if (ranks.length > 0) {
let param = new GeneralRankParam(id, ranks[0] || new RoleRankInfo({}, false), general, received);
result.push({...param, general});
}
}
return result;

View File

@@ -28,7 +28,7 @@ export async function initAllRank() {
await delKeys(REDIS_KEY.HERO_NUM_RANK);
await delKeys(REDIS_KEY.USER_LV);
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.MAIN_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.USER_LV, { 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_ELITE_RANK, { serverId });
await setRankRedisFromDb(REDIS_KEY.HERO_RANK, { serverId });

View File

@@ -269,10 +269,9 @@ export enum RANK_TYPE {
USER_LV = 4, // 主公等级
SUM_CE = 5, // 总战力
TOWER = 6, // 镇念塔
DUNGEON = 7, // 秘境
MAIN = 8, // 主线
MAIN_ELITE = 9, // 精英
GUILD_LV = 10, // 军团按等级排序
MAIN = 7, // 主线
MAIN_ELITE = 8, // 精英
GUILD_LV = 9, // 军团按等级排序
GUILD_ACTIVE = 11, // 军团活跃度排序
HERO = 12, // 武将排行
}
@@ -285,7 +284,7 @@ export const RANK_TYPE_TO_KEY = new Map([
[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.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],

View File

@@ -352,13 +352,17 @@ export interface myIdInter {
// 排行榜总览左边的数据
export class GeneralRankParam {
type: number; // 排行榜id
userInfo: RankParam;
userInfo?: RankParam;
num: number;
received: number[];
constructor(type: number, rankInfo: RoleRankInfo, received?: number[]) {
constructor(type: number, rankInfo: RoleRankInfo|GuildRankInfo, general: number, received?: number[]) {
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.received = received;
}