From 225555b28a11caee7e89c16cc8051209ce5daa98 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 30 Sep 2020 16:19:51 +0800 Subject: [PATCH] 1 --- server/imserver/guild.cc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index 5070383..c59309c 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -75,6 +75,13 @@ void Guild::RemoveMember(const std::string& sender_id, { GuildMember* member = GetMember(target_id); if (member) { + { + member_job_hash_.erase(member->account_id); + std::set* members = GetJobMembers(GetMemberJob(member->account_id)); + if (members) { + members->erase(member->account_id); + } + } SyncHelper::Instance()->SyncGuildMemberQuit ( this, @@ -346,10 +353,13 @@ void Guild::_CMGuildQuit(f8::MsgHdr& hdr, const cs::CMGuildQuit& msg) respmsg); GuildMember* sender = GetMember(forward_msg->context().user_info().base_data().account_id()); if (sender) { - if (GetMemberJob(sender->account_id) != kGuildOwner) { - RemoveMember(sender->account_id, - sender->account_id, - kGuildQuit); + std::string src_account_id = sender->account_id; + int src_job = GetMemberJob(sender->account_id); + RemoveMember(sender->account_id, + sender->account_id, + kGuildQuit); + if (src_job == kGuildOwner && GetJobMemberNum(kGuildOwner) < 1) { + } SaveToDB(); }