diff --git a/server/imserver/player.h b/server/imserver/player.h index 15947f8..6824df5 100644 --- a/server/imserver/player.h +++ b/server/imserver/player.h @@ -132,12 +132,13 @@ class Player long long GuildId(); int GetFriendNum(); + void SaveToDB(a8::XParams param, f8::AsyncDBOnOkFunc on_ok, f8::AsyncDBOnErrorFunc on_error); + private: void FillFriendList(::google::protobuf::RepeatedPtrField< ::cs::MFUserInfo >* friend_list); void FillBlackList(::google::protobuf::RepeatedPtrField< ::cs::MFUserInfo >* black_list); void ForwardGroupCMMsg(f8::MsgHdr& hdr, long long hash_code); void ForwardGuildCMMsg(f8::MsgHdr& hdr, long long guild_id); - void SaveToDB(a8::XParams param, f8::AsyncDBOnOkFunc on_ok, f8::AsyncDBOnErrorFunc on_error); void FillApplyList(const cs::MFPaging& paging, cs::SMFriendApplyList& respmsg); void MarkDirty(); void OnDataVersion1Change(); diff --git a/server/imserver/playermgr.cc b/server/imserver/playermgr.cc index 4e82d12..1d9ecae 100644 --- a/server/imserver/playermgr.cc +++ b/server/imserver/playermgr.cc @@ -207,6 +207,21 @@ void PlayerMgr::_SS_IM_GuildMemberQuitRequest(f8::MsgHdr& hdr, const ss::SS_IM_G Player* hum = GetPlayerByAccountId(msg.target_id()); if (hum) { hum->UpdateGuildData(0, 0); + hum->SaveToDB(a8::XParams() + .SetSender(hdr.socket_handle) + .SetParam1(msg.seqid()), + [] (a8::XParams& param, const f8::DataSet* data_set) + { + int socket_handle = param.sender; + long long seqid = param.param1; + ss::SS_IM_GuildMemberQuitRequest respmsg; + respmsg.set_seqid(seqid); + IMListener::Instance()->SendMsg(socket_handle, respmsg); + }, + [] (a8::XParams& param, int error_code, const std::string& error_msg) + { + + }); } }