1
This commit is contained in:
parent
dc3cd883c6
commit
df68445d60
@ -5,6 +5,7 @@
|
|||||||
#include "ss_proto.pb.h"
|
#include "ss_proto.pb.h"
|
||||||
#include "cs_proto.pb.h"
|
#include "cs_proto.pb.h"
|
||||||
#include "dbengine.h"
|
#include "dbengine.h"
|
||||||
|
#include "app.h"
|
||||||
|
|
||||||
void GuildMgr::Init()
|
void GuildMgr::Init()
|
||||||
{
|
{
|
||||||
@ -29,23 +30,58 @@ void GuildMgr::__GuildCreate(f8::JsonHttpRequest* request)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cs::MFGuildBasic* guild = new cs::MFGuildBasic;
|
||||||
|
TypeConvert::Convert(request, guild);
|
||||||
a8::XObject conn = DBEngine::Instance()->GetConnInfo(guild_id);
|
a8::XObject conn = DBEngine::Instance()->GetConnInfo(guild_id);
|
||||||
DBEngine::Instance()->ExecAsyncQuery
|
DBEngine::Instance()->ExecAsyncQuery
|
||||||
(
|
(
|
||||||
conn,
|
conn,
|
||||||
"",
|
"INSERT INTO `guild`(gameid, guild_id, guild_name, guild_lv, guild_exp, guild_badge, "
|
||||||
|
" guild_apply_num, guild_notice, guild_declaration, guild_log, owner_id, "
|
||||||
|
" owner_name, owner_avatar_url, creator_id, creator_name, creator_avatar_url, "
|
||||||
|
" guild_data, guild_status, createtime, modifytime)"
|
||||||
|
"VALUES(%d, %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', "
|
||||||
|
" '%s', '%s', '%s', '%s', '%s', "
|
||||||
|
" '%s', %d, %d, %d)",
|
||||||
{
|
{
|
||||||
|
guild->_gameid(),
|
||||||
|
guild->guild_id(),
|
||||||
|
guild->guild_name(),
|
||||||
|
guild->guild_lv(),
|
||||||
|
guild->guild_exp(),
|
||||||
|
guild->guild_badge(),
|
||||||
|
0,
|
||||||
|
"",
|
||||||
|
guild->guild_declaration(),
|
||||||
|
"",
|
||||||
|
guild->guild_owner_id(),
|
||||||
|
guild->guild_owner_name(),
|
||||||
|
guild->guild_owner_avatar_url(),
|
||||||
|
guild->guild_owner_id(),
|
||||||
|
guild->guild_owner_name(),
|
||||||
|
guild->guild_owner_avatar_url(),
|
||||||
|
"",
|
||||||
|
0,
|
||||||
|
App::Instance()->nowtime,
|
||||||
|
App::Instance()->nowtime
|
||||||
},
|
},
|
||||||
a8::XParams()
|
a8::XParams()
|
||||||
.SetSender(request),
|
.SetSender(request)
|
||||||
|
.SetParam1(guild),
|
||||||
[] (a8::XParams& param, const f8::DataSet* data_set)
|
[] (a8::XParams& param, const f8::DataSet* data_set)
|
||||||
{
|
{
|
||||||
f8::JsonHttpRequest* request = (f8::JsonHttpRequest*)param.sender.GetUserData();
|
f8::JsonHttpRequest* request = (f8::JsonHttpRequest*)param.sender.GetUserData();
|
||||||
|
cs::MFGuildBasic* guild = (cs::MFGuildBasic*)param.param1.GetUserData();
|
||||||
|
|
||||||
|
GuildMgr::Instance()->AddGuild(guild);
|
||||||
delete request;
|
delete request;
|
||||||
},
|
},
|
||||||
[] (a8::XParams& param, int error_code, const std::string& error_msg)
|
[] (a8::XParams& param, int error_code, const std::string& error_msg)
|
||||||
{
|
{
|
||||||
f8::JsonHttpRequest* request = (f8::JsonHttpRequest*)param.sender.GetUserData();
|
f8::JsonHttpRequest* request = (f8::JsonHttpRequest*)param.sender.GetUserData();
|
||||||
|
cs::MFGuildBasic* guild = (cs::MFGuildBasic*)param.param1.GetUserData();
|
||||||
|
|
||||||
|
delete guild;
|
||||||
delete request;
|
delete request;
|
||||||
},
|
},
|
||||||
0);
|
0);
|
||||||
@ -103,18 +139,24 @@ void GuildMgr::__GuildSearch(f8::JsonHttpRequest* request)
|
|||||||
|
|
||||||
void GuildMgr::__GuildRank(f8::JsonHttpRequest* request)
|
void GuildMgr::__GuildRank(f8::JsonHttpRequest* request)
|
||||||
{
|
{
|
||||||
|
int gameid = request->request.At("gameid")->AsXValue();
|
||||||
|
std::vector<cs::MFGuildBasic*>* sorted_guild_list = GetGuildRank(gameid);
|
||||||
|
|
||||||
request->resp_xobj->SetVal("errcode", 0);
|
request->resp_xobj->SetVal("errcode", 0);
|
||||||
request->resp_xobj->SetVal("errmsg", "");
|
request->resp_xobj->SetVal("errmsg", "");
|
||||||
request->resp_xobj->SetVal("curr_page", 0);
|
request->resp_xobj->SetVal("curr_page", 0);
|
||||||
request->resp_xobj->SetVal("page_size", 50);
|
request->resp_xobj->SetVal("page_size", 50);
|
||||||
request->resp_xobj->SetVal("_total_page", 1);
|
request->resp_xobj->SetVal("_total_page", 1);
|
||||||
request->resp_xobj->SetVal("_total_count", sorted_guild_list_.size());
|
request->resp_xobj->SetVal("_total_count", 0);
|
||||||
a8::MutableXObject* guild_list = a8::MutableXObject::NewArray();
|
a8::MutableXObject* guild_list = a8::MutableXObject::NewArray();
|
||||||
for (auto& guild : sorted_guild_list_) {
|
if (sorted_guild_list) {
|
||||||
|
request->resp_xobj->SetVal("_total_count", sorted_guild_list->size());
|
||||||
|
for (auto& guild : *sorted_guild_list) {
|
||||||
a8::MutableXObject* guild_xobj = a8::MutableXObject::NewObject();
|
a8::MutableXObject* guild_xobj = a8::MutableXObject::NewObject();
|
||||||
TypeConvert::Convert(guild, guild_xobj);
|
TypeConvert::Convert(guild, guild_xobj);
|
||||||
delete guild_xobj;
|
delete guild_xobj;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
request->resp_xobj->SetVal("guild_list", *guild_list);
|
request->resp_xobj->SetVal("guild_list", *guild_list);
|
||||||
delete guild_list;
|
delete guild_list;
|
||||||
}
|
}
|
||||||
@ -124,3 +166,14 @@ cs::MFGuildBasic* GuildMgr::GetGuild(long long guild_id)
|
|||||||
auto itr = guild_hash_.find(guild_id);
|
auto itr = guild_hash_.find(guild_id);
|
||||||
return itr != guild_hash_.end() ? itr->second : nullptr;
|
return itr != guild_hash_.end() ? itr->second : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<cs::MFGuildBasic*>* GuildMgr::GetGuildRank(int gameid)
|
||||||
|
{
|
||||||
|
auto itr = sorted_game_guild_list_.find(gameid);
|
||||||
|
return itr != sorted_game_guild_list_.end() ? &itr->second : nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuildMgr::AddGuild(cs::MFGuildBasic* guild)
|
||||||
|
{
|
||||||
|
guild_hash_[guild->guild_id()] = guild;
|
||||||
|
}
|
||||||
|
@ -21,8 +21,10 @@ class GuildMgr : public a8::Singleton<GuildMgr>
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
cs::MFGuildBasic* GetGuild(long long guild_id);
|
cs::MFGuildBasic* GetGuild(long long guild_id);
|
||||||
|
std::vector<cs::MFGuildBasic*>* GetGuildRank(int gameid);
|
||||||
|
void AddGuild(cs::MFGuildBasic* guild);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::map<long long, cs::MFGuildBasic*> guild_hash_;
|
std::map<long long, cs::MFGuildBasic*> guild_hash_;
|
||||||
std::vector<cs::MFGuildBasic*> sorted_guild_list_;
|
std::map<int, std::vector<cs::MFGuildBasic*>> sorted_game_guild_list_;
|
||||||
};
|
};
|
||||||
|
@ -17,3 +17,8 @@ void TypeConvert::Convert(const cs::MFGuildBasic* guild_basic, a8::MutableXObjec
|
|||||||
xobj->SetVal("guild_owner_name", guild_basic->guild_owner_name());
|
xobj->SetVal("guild_owner_name", guild_basic->guild_owner_name());
|
||||||
xobj->SetVal("guild_owner_avatar_url", guild_basic->guild_owner_avatar_url());
|
xobj->SetVal("guild_owner_avatar_url", guild_basic->guild_owner_avatar_url());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TypeConvert::Convert(const f8::JsonHttpRequest* request, cs::MFGuildBasic* guild_basic)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -7,9 +7,15 @@ namespace cs
|
|||||||
class MFGuildBasic;
|
class MFGuildBasic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace f8
|
||||||
|
{
|
||||||
|
struct JsonHttpRequest;
|
||||||
|
}
|
||||||
|
|
||||||
class TypeConvert
|
class TypeConvert
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
static void Convert(const cs::MFGuildBasic* guild_basic, a8::MutableXObject* xobj);
|
static void Convert(const cs::MFGuildBasic* guild_basic, a8::MutableXObject* xobj);
|
||||||
|
static void Convert(const f8::JsonHttpRequest* request, cs::MFGuildBasic* guild_basic);
|
||||||
};
|
};
|
||||||
|
@ -100,6 +100,8 @@ message MFGuildBasic
|
|||||||
optional string guild_owner_id = 8; //公会队长id
|
optional string guild_owner_id = 8; //公会队长id
|
||||||
optional string guild_owner_name = 9; //公会队长名字
|
optional string guild_owner_name = 9; //公会队长名字
|
||||||
optional string guild_owner_avatar_url = 10; //公会队长头像
|
optional string guild_owner_avatar_url = 10; //公会队长头像
|
||||||
|
|
||||||
|
optional int32 _gameid = 100; //gameid
|
||||||
}
|
}
|
||||||
|
|
||||||
//登录好友服
|
//登录好友服
|
||||||
|
Loading…
x
Reference in New Issue
Block a user