This commit is contained in:
aozhiwei 2020-09-27 16:18:58 +08:00
parent c8dbdbe5d6
commit 8d04dbde9e
4 changed files with 83 additions and 1 deletions

View File

@ -10,6 +10,8 @@
#include "IMConn.h" #include "IMConn.h"
#include "IMConnMgr.h" #include "IMConnMgr.h"
#include "dbhelper.h" #include "dbhelper.h"
#include "guild.h"
#include "guildmgr.h"
#include "cs_proto.pb.h" #include "cs_proto.pb.h"
#include "ss_proto.pb.h" #include "ss_proto.pb.h"
@ -107,7 +109,34 @@ void SyncHelper::SyncGuildMemberQuit(Guild* guild,
const std::string& target_id, const std::string& target_id,
int reason) int reason)
{ {
ss::SS_IM_GuildMemberQuitRequest* notifymsg = new ss::SS_IM_GuildMemberQuitRequest;
notifymsg->set_seqid(App::Instance()->NewUUID());
notifymsg->set_guild_id(guild->GuildId());
notifymsg->set_sender_id(sender_id);
notifymsg->set_target_id(target_id);
notifymsg->set_reason(reason);
BroadcastIMConnMsg(*notifymsg);
pending_request_hash_[notifymsg->seqid()] =
a8::Timer::Instance()->AddDeadLineTimer
(
1000 * 10,
a8::XParams()
.SetSender(notifymsg)
.SetParam1(notifymsg->seqid()),
[] (const a8::XParams& param)
{
ss::SS_IM_GuildMemberQuitRequest* notifymsg =
(ss::SS_IM_GuildMemberQuitRequest*)param.sender.GetUserData();
SyncHelper::Instance()->SS_IM_GuildMemberQuitRequest_TimeOut(notifymsg);
},
[] (const a8::XParams& param)
{
ss::SS_IM_GuildMemberQuitRequest* notifymsg =
(ss::SS_IM_GuildMemberQuitRequest*)param.sender.GetUserData();
delete notifymsg;
SyncHelper::Instance()->RemovePendingRequest(param.param1);
}
);
} }
void SyncHelper::BroadcastIMConnMsg(int msgid, ::google::protobuf::Message& msg) void SyncHelper::BroadcastIMConnMsg(int msgid, ::google::protobuf::Message& msg)
@ -190,6 +219,16 @@ void SyncHelper::SS_IM_FriendDeleteRequest_TimeOut(ss::SS_IM_FriendDeleteRequest
); );
} }
void SyncHelper::SS_IM_GuildMemberQuitRequest_TimeOut(ss::SS_IM_GuildMemberQuitRequest* msg)
{
}
void SyncHelper::SS_IM_GuildMemberUpdateRequest_TimeOut(ss::SS_IM_GuildMemberUpdateRequest* msg)
{
}
void SyncHelper::SendIMConnMsg(int instance_id, int msgid, const ::google::protobuf::Message& msg) void SyncHelper::SendIMConnMsg(int instance_id, int msgid, const ::google::protobuf::Message& msg)
{ {
if (instance_id == App::Instance()->instance_id) { if (instance_id == App::Instance()->instance_id) {

View File

@ -8,6 +8,8 @@ namespace ss
class SS_IM_FriendAgreeResponse; class SS_IM_FriendAgreeResponse;
class SS_IM_FriendDeleteRequest; class SS_IM_FriendDeleteRequest;
class SS_IM_FriendDeleteResponse; class SS_IM_FriendDeleteResponse;
class SS_IM_GuildMemberQuitRequest;
class SS_IM_GuildMemberUpdateRequest;
} }
class Guild; class Guild;
@ -49,6 +51,8 @@ private:
void RemovePendingRequest(long long seqid); void RemovePendingRequest(long long seqid);
void SS_IM_FriendAgreeRequest_TimeOut(ss::SS_IM_FriendAgreeRequest* msg); void SS_IM_FriendAgreeRequest_TimeOut(ss::SS_IM_FriendAgreeRequest* msg);
void SS_IM_FriendDeleteRequest_TimeOut(ss::SS_IM_FriendDeleteRequest* msg); void SS_IM_FriendDeleteRequest_TimeOut(ss::SS_IM_FriendDeleteRequest* msg);
void SS_IM_GuildMemberQuitRequest_TimeOut(ss::SS_IM_GuildMemberQuitRequest* msg);
void SS_IM_GuildMemberUpdateRequest_TimeOut(ss::SS_IM_GuildMemberUpdateRequest* msg);
public: public:
template <typename T> template <typename T>

View File

@ -43,4 +43,8 @@ enum SSMessageId_e
_SS_IM_RandomUsersResponse = 1026; _SS_IM_RandomUsersResponse = 1026;
_SS_IM_ForwardGuildCMMsg = 1027; _SS_IM_ForwardGuildCMMsg = 1027;
_SS_IM_ForwardGuildSMMsg = 1028; _SS_IM_ForwardGuildSMMsg = 1028;
_SS_IM_GuildMemberQuitRequest = 1031;
_SS_IM_GuildMemberQuitResponsea = 1032;
_SS_IM_GuildMemberUpdateRequest = 1033;
_SS_IM_GuildMemberUpdateResponse = 1034;
} }

View File

@ -324,3 +324,38 @@ message SS_IM_RandomUsersResponse
optional MFIMMsgConext context = 1; optional MFIMMsgConext context = 1;
repeated cs.MFUserInfo user_infos = 2; repeated cs.MFUserInfo user_infos = 2;
} }
message SS_IM_GuildMemberQuitRequest
{
optional int64 seqid = 1;
optional int64 guild_id = 2;
optional string sender_id = 3;
optional string target_id = 4;
optional int32 reason = 5;
}
message SS_IM_GuildMemberQuitResponse
{
optional int64 seqid = 1;
optional int64 guild_id = 2;
optional string sender_id = 3;
optional string target_id = 4;
optional int32 reason = 5;
}
message SS_IM_GuildMemberUpdateRequest
{
optional int64 seqid = 1;
optional int64 guild_id = 2;
optional string sender_id = 3;
optional string target_id = 4;
optional int32 reason = 5;
}
message SS_IM_GuildMemberUpdateResponse
{
optional int64 seqid = 1;
optional int64 guild_id = 2;
optional string target_id = 4;
optional int32 reason = 5;
}