排行榜:总览
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 });
|
||||||
|
|||||||
@@ -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],
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user