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 "typeconvert.h"
#include "ss_proto.pb.h" #include "ss_proto.pb.h"
#include "cs_proto.pb.h" #include "cs_proto.pb.h"
#include "dbengine.h"
void GuildMgr::Init() void GuildMgr::Init()
{ {
@ -17,7 +18,29 @@ void GuildMgr::UnInit()
void GuildMgr::__GuildCreate(f8::JsonHttpRequest* request) 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) void GuildMgr::__GuildSearch(f8::JsonHttpRequest* request)
@ -33,6 +56,7 @@ void GuildMgr::__GuildSearch(f8::JsonHttpRequest* request)
} }
int total_page = 0; int total_page = 0;
int total_count = 0; int total_count = 0;
std::vector<cs::MFGuildBasic*> last_page_data;
request->resp_xobj->SetVal("errcode", 0); request->resp_xobj->SetVal("errcode", 0);
request->resp_xobj->SetVal("errmsg", ""); request->resp_xobj->SetVal("errmsg", "");
@ -43,6 +67,10 @@ void GuildMgr::__GuildSearch(f8::JsonHttpRequest* request)
cs::MFGuildBasic* guild = pair.second; cs::MFGuildBasic* guild = pair.second;
if (guild->guild_name().find(search_name) != std::string::npos) { if (guild->guild_name().find(search_name) != std::string::npos) {
++total_count; ++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) { if (total_count >= curr_page * page_size && guild_list->Size() < page_size) {
a8::MutableXObject* guild_xobj = a8::MutableXObject::NewObject(); a8::MutableXObject* guild_xobj = a8::MutableXObject::NewObject();
TypeConvert::Convert(guild, guild_xobj); TypeConvert::Convert(guild, guild_xobj);
@ -51,6 +79,14 @@ void GuildMgr::__GuildSearch(f8::JsonHttpRequest* request)
} }
} }
total_page = std::ceil((double)total_count / page_size); 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_page", total_page);
request->resp_xobj->SetVal("_total_count", total_count); request->resp_xobj->SetVal("_total_count", total_count);
request->resp_xobj->SetVal("guild_list", *guild_list); request->resp_xobj->SetVal("guild_list", *guild_list);