This commit is contained in:
aozhiwei 2020-10-09 16:56:30 +08:00
parent f036cd9de6
commit 4765f1d8ed
2 changed files with 79 additions and 0 deletions

View File

@ -509,6 +509,55 @@ void Guild::_CMGuildChange(f8::MsgHdr& hdr, const cs::CMGuildChange& msg)
respmsg); respmsg);
MarkDirty(); MarkDirty();
} }
ss::SS_IM_ForwardGuildCMMsg *forward_msg_copy = new ss::SS_IM_ForwardGuildCMMsg;
*forward_msg_copy = *forward_msg;
cs::CMGuildChange* msg_copy = new cs::CMGuildChange;
*msg_copy = msg;
std::string ip;
int port = 0;
JsonDataMgr::Instance()->GetRankServerConf(ip, port);
a8::MutableXObject* params = a8::MutableXObject::NewObject();
params->SetVal("account_id", forward_msg->context().user_info().base_data().account_id());
params->SetVal("guild_id", guild_id_);
params->SetVal("guild_name", guild_name_);
params->SetVal("guild_declaration", guild_declaration_);
f8::HttpClientPool::Instance()->HttpGet
(
a8::XParams()
.SetSender(guild_id_)
.SetParam1(forward_msg_copy)
.SetParam2(hdr.socket_handle)
.SetParam3(msg_copy),
[] (a8::XParams& param, a8::XObject& data)
{
ss::SS_IM_ForwardGuildCMMsg *forward_msg_copy = (ss::SS_IM_ForwardGuildCMMsg*)param.param1.GetUserData();
cs::CMGuildChange* msg_copy = (cs::CMGuildChange*)param.param3.GetUserData();
Guild* guild = GuildMgr::Instance()->GetGuild(param.sender);
if (guild) {
guild->GuildRenameCb(param.param2, forward_msg_copy->context(), *msg_copy);
}
delete msg_copy;
delete forward_msg_copy;
},
[] (a8::XParams& param, const std::string& response)
{
ss::SS_IM_ForwardGuildCMMsg *forward_msg_copy = (ss::SS_IM_ForwardGuildCMMsg*)param.param1.GetUserData();
cs::CMGuildChange* msg_copy = (cs::CMGuildChange*)param.param3.GetUserData();
Guild* guild = GuildMgr::Instance()->GetGuild(param.sender);
if (guild) {
guild->SendErrorMsg(param.param2, forward_msg_copy->context(), "服务器内部错误");
}
delete msg_copy;
delete forward_msg_copy;
},
a8::Format("http://%s:%d/webapp/index.php?c=Guild&a=rename", {ip, port}).c_str(),
*params,
GuildId()
);
delete params;
} }
void Guild::_CMGuildMemberList(f8::MsgHdr& hdr, const cs::CMGuildMemberList& msg) void Guild::_CMGuildMemberList(f8::MsgHdr& hdr, const cs::CMGuildMemberList& msg)
@ -1208,3 +1257,32 @@ GuildMember* Guild::ChooseLeader(std::set<std::string>* members)
} }
return leader; return leader;
} }
void Guild::GuildRenameCb(int socket_handle, const ss::MFIMMsgConext& context, const cs::CMGuildChange& msg)
{
if (msg.has_guild_name()) {
guild_name_ = msg.guild_name();
}
if (msg.has_guild_badge()) {
guild_badge_ = msg.guild_badge();
}
if (msg.has_guild_declaration()) {
guild_declaration_ = msg.guild_declaration();
}
if (msg.has_join_unlimited()) {
join_unlimited_ = msg.join_unlimited();
}
if (msg.has_join_cond1()) {
join_cond1_ = msg.join_cond1();
}
if (msg.has_join_cond2()) {
join_cond2_ = msg.join_cond2();
}
cs::SMGuildChange respmsg;
FillGuildBasic(respmsg.mutable_info());
GuildMgr::Instance()->ForwardGuildSMMsg(socket_handle,
context,
respmsg);
MarkDirty();
}

View File

@ -66,6 +66,7 @@ private:
void SendErrorMsg(int sokcet_handle, const ss::MFIMMsgConext& context, const std::string& errmsg); void SendErrorMsg(int sokcet_handle, const ss::MFIMMsgConext& context, const std::string& errmsg);
void QueryMemberOnlineState(); void QueryMemberOnlineState();
GuildMember* ChooseLeader(std::set<std::string>* members); GuildMember* ChooseLeader(std::set<std::string>* members);
void GuildRenameCb(int socket_handle, const ss::MFIMMsgConext& context, const cs::CMGuildChange& msg);
private: private:
bool dirty_ = false; bool dirty_ = false;