diff --git a/game-server/app/servers/guild/handler/guildHandler.ts b/game-server/app/servers/guild/handler/guildHandler.ts index 470ed93be..c775bce3a 100644 --- a/game-server/app/servers/guild/handler/guildHandler.ts +++ b/game-server/app/servers/guild/handler/guildHandler.ts @@ -86,6 +86,7 @@ export class GuildHandler { await r.setRankWithGuildInfo(guild.code, 0, Date.now(), guild); let r2 = new Rank(REDIS_KEY.GUILD_LV_RANK, { serverId }); await r2.setRankWithGuildInfo2(guild.code, guild.lv, guild.activeWeekly, Date.now(), guild); + await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'guildName', value: name }]); let rank = await r.getMyRank({ guildCode: guild.code }); @@ -573,6 +574,7 @@ export class GuildHandler { reportTAEvent(roleId, TA_EVENT.GUILD_DISMISS, { name: guild.name, way: GUILD_DISMISS_WAY.GAME }, ip); for(let roleId of members) { reportTAEvent(roleId, TA_EVENT.GUILD_QUIT, { name: guild.name, way: GUILD_QUIT_WAY.DISMISS }, ip); + updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'guildName', value: '' }]); } return resResult(STATUS.SUCCESS, { code, status: guild.status }); @@ -597,6 +599,7 @@ export class GuildHandler { const guild = await GuildModel.quit(code, roleId, serverId, role.ce, userGuild.auth == GUILD_AUTH.MANAGER); if (!guild) return resResult(STATUS.GUILD_QUIT_ERROR); await updateUserInfo(REDIS_KEY.GUILD_INFO, guild.code, [{ field: 'guildCe', value: guild.guildCe }]) + await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'guildName', value: '' }]); //删除排名信息 await removeBossRank(code, roleId); @@ -629,6 +632,8 @@ export class GuildHandler { const guild = await GuildModel.quit(code, memberRoleId, serverId, role.ce, userGuild.auth == GUILD_AUTH.MANAGER); if (!guild) return resResult(STATUS.GUILD_KICK_ERROR); await updateUserInfo(REDIS_KEY.GUILD_INFO, guild.code, [{ field: 'guildCe', value: guild.guildCe }]) + await updateUserInfo(REDIS_KEY.USER_INFO, memberRoleId, [{ field: 'guildName', value: '' }]); + //删除排名信息 await removeBossRank(code, roleId); diff --git a/game-server/app/services/guildService.ts b/game-server/app/services/guildService.ts index b558ed216..d0cf6973f 100644 --- a/game-server/app/services/guildService.ts +++ b/game-server/app/services/guildService.ts @@ -96,6 +96,7 @@ export async function joinGuild(code: string, guildName: string, lv: number, rol res.releaseCallback();//解锁 return { status: -1, resResult: resResult(STATUS.GUILD_HAS_JOIN) }; } + await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'guildName', value: guildName }]); const dicCenterBase = gameData.centerBase.get(lv); if (!dicCenterBase) { diff --git a/shared/domain/rank.ts b/shared/domain/rank.ts index 53bf17dd6..8a07d0058 100644 --- a/shared/domain/rank.ts +++ b/shared/domain/rank.ts @@ -5,7 +5,7 @@ import { HeroUpdate, } from "../db/Hero"; import { getSeconds } from "../pubUtils/timeUtil"; import { prop } from "@typegoose/typegoose"; import { pick } from "underscore"; -import { REDIS_KEY } from "../consts"; +import { RANK_TYPE, REDIS_KEY } from "../consts"; // 排行榜返回玩家值 export class RankParam { @@ -390,26 +390,29 @@ export class GeneralRankParam { type: number; // 排行榜id hasUser: boolean = false; userInfo?: RankParam; - num: number; + num: number = 0; received: number[]; constructor(type: number, rankInfo: RoleRankInfo|GuildRankInfo, general: number, received?: number[]) { this.type = type; if(general == 1) { - if(rankInfo instanceof RoleRankInfo) { - this.userInfo = pick(rankInfo, ['roleId', 'roleName', 'head', 'frame', 'spine', 'guildName', 'ce', 'title', 'lv', 'topLineupCe']); - this.hasUser = true; - } - if(rankInfo instanceof GuildRankInfo) { - - let leaderInfo = pick(rankInfo.leader, ['roleId', 'roleName', 'head', 'frame', 'spine', 'ce', 'title', 'lv']); - this.userInfo = { - ...leaderInfo, guildName: rankInfo.name, ce: rankInfo.guildCe, topLineupCe: rankInfo.guildCe + let rank = rankInfo? (type == RANK_TYPE.LADDER? rankInfo.num: rankInfo.rank): 0; + if(rank == 1) { + if(rankInfo instanceof RoleRankInfo) { + this.userInfo = pick(rankInfo, ['roleId', 'roleName', 'head', 'frame', 'spine', 'guildName', 'ce', 'title', 'lv', 'topLineupCe']); + this.hasUser = true; } - this.hasUser = true; + if(rankInfo instanceof GuildRankInfo) { + + let leaderInfo = pick(rankInfo.leader, ['roleId', 'roleName', 'head', 'frame', 'spine', 'ce', 'title', 'lv']); + this.userInfo = { + ...leaderInfo, guildName: rankInfo.name, ce: rankInfo.guildCe, topLineupCe: rankInfo.guildCe + } + this.hasUser = true; + } + this.num = rankInfo?.num||0; } } - this.num = rankInfo?.num||0; this.received = received; } } \ No newline at end of file