排行榜:修改格式

This commit is contained in:
luying
2021-09-08 17:48:58 +08:00
parent 343f77a40b
commit 5a02164803
12 changed files with 443 additions and 309 deletions
@@ -7,7 +7,7 @@ import { addUserToChannel, getSimpleRoleInfo } from '../../../services/roleServi
import { ChannelUser } from '../../../domain/ChannelUser';
import { getWorldChannelSid, groupRoomId } from '../../../services/chatService';
import { reloadResources } from '../../../pubUtils/data';
import { GeneralRankParamRole, GeneralRankParamBattle } from '../../../domain/rank';
import { GeneralRankParam } from '../../../domain/rank';
import { getAllGuildActivityStatus } from '../../../services/guildActivityService';
import { MailParam } from '../../../domain/roleField/mail';
@@ -188,7 +188,7 @@ export class ChatRemote {
* @description 全服推送排行榜更新信息
* @param serverId
*/
public async sendRankTopUpdated(serverId: number, rank: (GeneralRankParamRole | GeneralRankParamBattle) & { general: number }) {
public async sendRankTopUpdated(serverId: number, rank: GeneralRankParam & { general: number }) {
let roomId = groupRoomId(CHANNEL_PREFIX.WORLD, serverId);
let channel = this.channelService.getChannel(roomId, false);
@@ -236,9 +236,9 @@ export class GateActivityHandler {
if (isSuccess) {
let score = gameData.gateActivityPoint.get(GET_POINT_WAYS.DEFENSE_SUCCESS);
// 更新redis数据
await myR.setRank({ roleId }, score, Date.now(), true);
await myR.setRank({ roleId }, [score, Date.now()], true);
await r.setRank({ guildCode }, score, Date.now(), true);
await r.setRank({ guildCode }, [score, Date.now()], true);
}
// 发放活跃
@@ -74,7 +74,7 @@ export class GuildHandler {
let r = new Rank(REDIS_KEY.GUILD_ACTIVE_RANK, { serverId });
await r.setRankWithGuildInfo(guild.code, 0, Date.now(), guild);
let r2 = new Rank(REDIS_KEY.GUILD_LV_RANK, { serverId });
await r2.setRankWithGuildInfo(guild.code, 0, Date.now(), guild);
await r2.setRankWithGuildInfo2(guild.code, guild.lv, guild.activeWeekly, Date.now(), guild);
let rank = await r.getMyRank({ guildCode: guild.code });
@@ -716,7 +716,7 @@ export class GuildHandler {
}
if (id == GUILD_STRUCTURE.ARMY_CENTER) {
let r = new Rank(REDIS_KEY.GUILD_LV_RANK, { serverId });
await r.setRankWithGuildInfo(code, guild.lv, guild.lvUpdateTime, guild);
await r.setRankWithGuildInfo2(code, guild.lv, guild.activeWeekly, guild.lvUpdateTime, guild);
}
const resultStructure = result.structure.find(cur => cur.id == id);
@@ -10,6 +10,7 @@ import { gameData } from "../../../pubUtils/data";
import { addItems } from "../../../services/rewardService";
import { HeroModel, HeroUpdate } from "../../../db/Hero";
import { RewardInter } from "../../../pubUtils/interface";
import { GuildRankInfo, RoleAndGuildRankInfo, RoleRankInfo } from "../../../domain/rank";
export default function (app: Application) {
new HandlerService(app, {});
@@ -28,21 +29,32 @@ export class RoleHandler {
let role = await RoleModel.findByRoleId(roleId, 'rankReceived');
if (!role) return resResult(STATUS.WRONG_PARMS);
let res = await getGeneralRank(role, serverId);
let ranks = await getGeneralRank(role, serverId);
return resResult(STATUS.SUCCESS, res);
return resResult(STATUS.SUCCESS, { ranks });
}
async getRank(msg: { type: number }, session: BackendSession) {
let roleId = session.get('roleId');
let serverId = session.get('serverId');
let guildCode = session.get('guildCode');
let { type } = msg;
let redisKey = RANK_TYPE_TO_KEY.get(type);
if (!redisKey) return resResult(STATUS.WRONG_PARMS);
let r = new Rank(redisKey, { serverId });
r.setGenerFieldsFun((obj => {
let result = new RoleAndGuildRankInfo(obj.rank, obj.num);
if(obj instanceof GuildRankInfo) {
result.setGuildInfo(obj);
}
if(obj instanceof RoleRankInfo) {
result.setUserInfo(obj);
}
return result
}));
let { ranks, myRank } = await r.getRankListWithMyRank({ roleId });
let { ranks, myRank } = await r.getRankListWithMyRank({ roleId, guildCode });
if (!myRank) {
let role = await RoleModel.findByRoleId(roleId, ROLE_SELECT.RANK, true);
if (type == RANK_TYPE.TOP_LINTUP) {
@@ -64,6 +76,11 @@ export class RoleHandler {
myRank = await r.generMyRankWithRole(roleId, role.mainWarId, role.mainUpdatedAt, role);
} else if (type == RANK_TYPE.MAIN_ELITE) {
myRank = await r.generMyRankWithRole(roleId, role.mainEliteWarId, role.mainEliteUpdatedAt, role);
} else if (type == RANK_TYPE.GUILD_LV) {
if(role.hasGuild) {
let guild = await GuildModel.findByCode(guildCode, serverId);
myRank = await r.generMyRankWithGuild2(roleId, guild.lv, guild.activeWeekly, guild.lvUpdateTime, guild);
}
}
}