diff --git a/server/rankserver/guildmgr.cc b/server/rankserver/guildmgr.cc index 6ae6e14..60e4f3d 100644 --- a/server/rankserver/guildmgr.cc +++ b/server/rankserver/guildmgr.cc @@ -286,6 +286,57 @@ void GuildMgr::__GuildRename(f8::JsonHttpRequest* request) request->resp_xobj->SetVal("errmsg", "公会名含有违禁字符"); return; } + + request->pending = true; + request->resp_xobj->SetVal("errcode", 0); + request->resp_xobj->SetVal("errmsg", ""); + a8::XObject conn = DBEngine::Instance()->GetConnInfo(guild_id); + DBEngine::Instance()->ExecAsyncScript + ( + conn, + "UPDATE `guild` SET guild_name='%s', guild_declaration='%s' " + "WHERE guild_id=%d;", + { + guild_name, + guild_declaration, + guild->guild_id() + }, + a8::XParams() + .SetSender(request) + .SetParam1(guild), + [] (a8::XParams& param, const f8::DataSet* data_set) + { + f8::JsonHttpRequest* request = (f8::JsonHttpRequest*)param.sender.GetUserData(); + cs::MFGuildBasic* guild = (cs::MFGuildBasic*)param.param1.GetUserData(); + std::string guild_name = request->request.At("guild_name")->AsXValue().GetString(); + std::string guild_declaration = request->request.At("guild_declaration")->AsXValue().GetString(); + + guild->set_guild_name(guild_name); + guild->set_guild_name(guild_declaration); + { + std::string response; + request->resp_xobj->ToJsonStr(response); + IMListener::Instance()->SendText(request->socket_handle, a8::HttpResponse(response)); + } + + delete request; + }, + [] (a8::XParams& param, int error_code, const std::string& error_msg) + { + f8::JsonHttpRequest* request = (f8::JsonHttpRequest*)param.sender.GetUserData(); + cs::MFGuildBasic* guild = (cs::MFGuildBasic*)param.param1.GetUserData(); + + { + std::string response; + request->resp_xobj->SetVal("errcode", 2); + request->resp_xobj->SetVal("errmsg", "服务器内部错误"); + request->resp_xobj->ToJsonStr(response); + IMListener::Instance()->SendText(request->socket_handle, a8::HttpResponse(response)); + } + + delete request; + }, + 0); } void GuildMgr::__GuildRank(f8::JsonHttpRequest* request)