1
This commit is contained in:
parent
b1a349c52e
commit
1985fe4b27
@ -4,6 +4,7 @@
|
||||
#include "typeconvert.h"
|
||||
#include "ss_proto.pb.h"
|
||||
#include "cs_proto.pb.h"
|
||||
#include "dbengine.h"
|
||||
|
||||
void GuildMgr::Init()
|
||||
{
|
||||
@ -17,7 +18,29 @@ 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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user