From 83f6327a38aa156631c116079abcfa3d26fdc56e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 9 Oct 2020 20:03:11 +0800 Subject: [PATCH] 1 --- server/rankserver/guildmgr.cc | 12 +++++++++++- server/rankserver/guildmgr.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/server/rankserver/guildmgr.cc b/server/rankserver/guildmgr.cc index 1fda646..142b0eb 100644 --- a/server/rankserver/guildmgr.cc +++ b/server/rankserver/guildmgr.cc @@ -312,7 +312,7 @@ void GuildMgr::__GuildRename(f8::JsonHttpRequest* request) std::string guild_name = request->request.At("guild_name")->AsXValue().GetString(); std::string guild_declaration = request->request.At("guild_declaration")->AsXValue().GetString(); - guild->set_guild_name(guild_name); + GuildMgr::Instance()->GuildRename(guild, guild_name); guild->set_guild_name(guild_declaration); { std::string response; @@ -739,3 +739,13 @@ std::string GuildMgr::GenGuildName(int gameid, int channel, const std::string& r std::string guild_name = a8::XValue(gameid).GetString() + NAME_MAGIC_SYMBOL + raw_name; return guild_name; } + +void GuildMgr::GuildRename(cs::MFGuildBasic* guild, const std::string& new_name) +{ + if (guild->guild_name() != new_name) { + std::string old_name = GenGuildName(guild->_gameid(), guild->_channel(), guild->guild_name()); + name_hash_.erase(old_name); + guild->set_guild_name(new_name); + name_hash_[GenGuildName(guild->_gameid(), guild->_channel(), new_name)] = guild; + } +} diff --git a/server/rankserver/guildmgr.h b/server/rankserver/guildmgr.h index 851863f..689a716 100644 --- a/server/rankserver/guildmgr.h +++ b/server/rankserver/guildmgr.h @@ -41,6 +41,7 @@ class GuildMgr : public a8::Singleton bool CmpGuild(cs::MFGuildBasic* a, cs::MFGuildBasic* b); void InstallSyncGuildTimer(); std::string GenGuildName(int gameid, int channel, const std::string& raw_name); + void GuildRename(cs::MFGuildBasic* guild, const std::string& new_name); private: a8::TimerAttacher timer_attacher_;