From 13dfd2647f41ed6ea796e180c2686a0492b2485c Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 9 Apr 2024 19:37:16 +0800 Subject: [PATCH] 1 --- server/imserver_new/guild/guildmgr.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/server/imserver_new/guild/guildmgr.go b/server/imserver_new/guild/guildmgr.go index f29715b0..591fc994 100644 --- a/server/imserver_new/guild/guildmgr.go +++ b/server/imserver_new/guild/guildmgr.go @@ -860,16 +860,26 @@ func (this* guildMgr) updateGuildRank(guild *guild) { q5.AppendSlice(&this.guildRankList, guild) this.guildRankHash[guild.guildId] = guild this.rankSort() - } else if guild.totalStars > this.guildRankList[len(this.guildRankList) - 1].totalStars { + } else { lastGuild := this.guildRankList[len(this.guildRankList) - 1] - delete(this.guildRankHash, lastGuild.guildId) - this.guildRankList[len(this.guildRankList) - 1] = guild - this.rankSort() + if guild.totalStars > lastGuild.totalStars || + (guild.totalStars == lastGuild.totalStars && guild.guildId < lastGuild.guildId) { + delete(this.guildRankHash, lastGuild.guildId) + this.guildRankList[len(this.guildRankList) - 1] = guild + this.rankSort() + } } } func (this* guildMgr) rankSort() { - + q5.Sort( + this.guildRankList, + func (a *guild, b *guild) bool { + if a.totalStars == b.totalStars { + return a.guildId < b.guildId + } + return a.totalStars < b.totalStars + }) } func (this* guildMgr) traverseGuild(cb func(*guild) bool) {