This commit is contained in:
aozhiwei 2020-09-21 18:47:12 +08:00
parent b1a349c52e
commit 1985fe4b27

View File

@ -4,6 +4,7 @@
#include "typeconvert.h"
#include "ss_proto.pb.h"
#include "cs_proto.pb.h"
#include "dbengine.h"
void GuildMgr::Init()
{
@ -16,8 +17,30 @@ void GuildMgr::UnInit()
}
void GuildMgr::__GuildCreate(f8::JsonHttpRequest* request)
{
request->pending = true;
long long guild_id = request->request.At("guild_id")->AsXValue();
a8::XObject conn = DBEngine::Instance()->GetConnInfo(guild_id);
DBEngine::Instance()->ExecAsyncQuery
(
conn,
"",
{
},
a8::XParams(),
[] (a8::XParams& param, const f8::DataSet* data_set)
{
},
[] (a8::XParams& param, int error_code, const std::string& error_msg)
{
},
0);
std::string guild_name = request->request.At("guild_name")->AsXValue().GetString();
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
}
void GuildMgr::__GuildSearch(f8::JsonHttpRequest* request)
@ -33,6 +56,7 @@ void GuildMgr::__GuildSearch(f8::JsonHttpRequest* request)
}
int total_page = 0;
int total_count = 0;
std::vector<cs::MFGuildBasic*> last_page_data;
request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", "");
@ -43,6 +67,10 @@ void GuildMgr::__GuildSearch(f8::JsonHttpRequest* request)
cs::MFGuildBasic* guild = pair.second;
if (guild->guild_name().find(search_name) != std::string::npos) {
++total_count;
last_page_data.push_back(guild);
if (last_page_data.size() % page_size == 0) {
last_page_data.clear();
}
if (total_count >= curr_page * page_size && guild_list->Size() < page_size) {
a8::MutableXObject* guild_xobj = a8::MutableXObject::NewObject();
TypeConvert::Convert(guild, guild_xobj);
@ -51,6 +79,14 @@ void GuildMgr::__GuildSearch(f8::JsonHttpRequest* request)
}
}
total_page = std::ceil((double)total_count / page_size);
if (curr_page >= total_page) {
for (auto& guild : last_page_data) {
a8::MutableXObject* guild_xobj = a8::MutableXObject::NewObject();
TypeConvert::Convert(guild, guild_xobj);
delete guild_xobj;
}
curr_page = total_page - 1;
}
request->resp_xobj->SetVal("_total_page", total_page);
request->resp_xobj->SetVal("_total_count", total_count);
request->resp_xobj->SetVal("guild_list", *guild_list);