diff --git a/server/imserver/dbhelper.cc b/server/imserver/dbhelper.cc index ad76924..d74b2b8 100644 --- a/server/imserver/dbhelper.cc +++ b/server/imserver/dbhelper.cc @@ -6,6 +6,7 @@ #include "dbhelper.h" #include "player.h" +#include "playermgr.h" #include "app.h" #include "synchelper.h" @@ -53,8 +54,8 @@ void DBHelper::SetFriendApplyStatus( conn_info, "UPDATE `friend_apply` SET status=%d WHERE idx=%d AND target_id='%s' AND sender_id='%s';", { - idx, status, + idx, target_id, sender_id }, @@ -70,7 +71,10 @@ void DBHelper::AddFriendApply(Player* hum, const std::string& target_id) auto on_ok = [] (a8::XParams& param, const f8::DataSet* data_set) { - + Player* hum = PlayerMgr::Instance()->GetPlayerByAccountId(param.sender.GetString()); + if (hum) { + SyncHelper::Instance()->SyncApplyFriend(hum, param.param1.GetString()); + } }; auto on_error = [] (a8::XParams& param, int error_code, const std::string& error_msg) @@ -103,12 +107,13 @@ void DBHelper::AddFriendApply(Player* hum, const std::string& target_id) hum->myself.base_data.user_value3, App::Instance()->nowtime }, - a8::XParams(), + a8::XParams() + .SetSender(hum->AccountId()) + .SetParam1(target_id), on_ok, on_error, friend_crc32_code ); - SyncHelper::Instance()->SyncApplyFriend(hum, target_id); } void DBHelper::AddEvent(const std::string& sender_id, diff --git a/server/imserver/handlermgr.cc b/server/imserver/handlermgr.cc index 77d8ead..1c8b4a0 100644 --- a/server/imserver/handlermgr.cc +++ b/server/imserver/handlermgr.cc @@ -53,6 +53,7 @@ void HandlerMgr::RegisterNetMsgHandlers() RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_UpdateUserInfo); RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_FriendAgreeRequest); RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_FriendDeleteRequest); + RegisterNetMsgHandler(&imcmsghandler, &PlayerMgr::_SS_IM_FriendApply); RegisterNetMsgHandler(&wsmsghandler, &WSListener::_SS_Ping); diff --git a/server/imserver/player.cc b/server/imserver/player.cc index a5ba8a8..54308d4 100644 --- a/server/imserver/player.cc +++ b/server/imserver/player.cc @@ -313,7 +313,7 @@ void Player::_CMFriendRefuse(f8::MsgHdr& hdr, const cs::CMFriendRefuse& msg) ( myself.crc32_code, msg.apply().idx(), - msg.apply().target_id(), + msg.apply().base_data().account_id(), AccountId(), 2 );