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