diff --git a/server/imserver/guildmgr.cc b/server/imserver/guildmgr.cc index d7540e4..2eb4c0a 100644 --- a/server/imserver/guildmgr.cc +++ b/server/imserver/guildmgr.cc @@ -12,6 +12,9 @@ #include "asynctaskmgr.h" #include "dbengine.h" #include "jsondatamgr.h" +#include "player.h" +#include "playermgr.h" +#include "app.h" #include "framework/cpp/httpclientpool.h" @@ -257,11 +260,15 @@ unsigned int GuildMgr::GetGuildCrc32(long long guild_id) void GuildMgr::_CMGuildCreate(int socket_handle, const ss::MFIMMsgConext& context, const cs::CMGuildCreate& msg) { + Player* hum = PlayerMgr::Instance()->GetPlayerBySocket(socket_handle); + if (!hum) { + return; + } Guild* guild = GetGuild(context.user_info().base_data().guild_id()); if (guild) { cs::SMGuildCreate respmsg; respmsg.set_errcode(1); - respmsg.set_errmsg("群id已经存在"); + respmsg.set_errmsg("公会id已经存在"); ForwardGuildSMMsg(socket_handle, context, respmsg); return; } @@ -274,12 +281,24 @@ void GuildMgr::_CMGuildCreate(int socket_handle, const ss::MFIMMsgConext& contex int socket_handle = 0; ss::MFIMMsgConext context; cs::CMGuildCreate msg; + long long guild_id = 0; }; MsgContext* msg_context = new MsgContext; msg_context->socket_handle = socket_handle; msg_context->context = context; msg_context->msg = msg; + msg_context->guild_id = App::Instance()->NewUUID(); a8::MutableXObject* params = a8::MutableXObject::NewObject(); + params->SetVal("gameid", hum->gameid); + params->SetVal("guild_id", msg_context->guild_id); + params->SetVal("guild_name", msg.guild_name()); + params->SetVal("guild_badge", msg.guild_badge()); + params->SetVal("guild_lv", 1); + params->SetVal("guild_exp", 0); + params->SetVal("guild_declaration", msg.guild_declaration()); + params->SetVal("owner_id", hum->AccountId()); + params->SetVal("owner_name", hum->NickName()); + params->SetVal("owner_avatar_url", hum->AvatarUrl()); f8::HttpClientPool::Instance()->HttpGet ( a8::XParams() @@ -300,7 +319,7 @@ void GuildMgr::_CMGuildCreate(int socket_handle, const ss::MFIMMsgConext& contex }, a8::Format("http://%s:%d/webapp/index.php?c=Guild&a=create", {ip, port}).c_str(), *params, - 0 + msg_context->guild_id ); delete params; } diff --git a/server/imserver/player.cc b/server/imserver/player.cc index 9962712..3bf7a0c 100644 --- a/server/imserver/player.cc +++ b/server/imserver/player.cc @@ -1138,6 +1138,11 @@ const std::string Player::NickName() return myself.base_data.nickname; } +const std::string Player::AvatarUrl() +{ + return myself.base_data.avatar_url; +} + int Player::GetFriendNum() { return friend_hash_.size(); diff --git a/server/imserver/player.h b/server/imserver/player.h index a0f705d..6196046 100644 --- a/server/imserver/player.h +++ b/server/imserver/player.h @@ -126,6 +126,7 @@ class Player const std::string AccountId(); const std::string SessionId(); const std::string NickName(); + const std::string AvatarUrl(); int GetFriendNum(); private: diff --git a/server/rankserver/typeconvert.cc b/server/rankserver/typeconvert.cc index 3356db0..ad9f521 100644 --- a/server/rankserver/typeconvert.cc +++ b/server/rankserver/typeconvert.cc @@ -20,9 +20,10 @@ void TypeConvert::Convert(const cs::MFGuildBasic* guild_basic, a8::MutableXObjec void TypeConvert::Convert(f8::JsonHttpRequest* request, cs::MFGuildBasic* guild_basic) { - guild_basic->set_guild_id(request->request.At("guild_id")->AsXValue()); guild_basic->set__gameid(request->request.At("gameid")->AsXValue()); + guild_basic->set_guild_id(request->request.At("guild_id")->AsXValue()); guild_basic->set_guild_name(request->request.At("guild_name")->AsXValue().GetString()); + guild_basic->set_guild_badge(request->request.At("guild_badge")->AsXValue()); guild_basic->set_guild_lv(request->request.At("guild_lv")->AsXValue()); guild_basic->set_guild_exp(request->request.At("guild_exp")->AsXValue()); guild_basic->set_guild_declaration(request->request.At("guild_declaration")->AsXValue().GetString());