This commit is contained in:
aozhiwei 2020-09-17 16:30:13 +08:00
parent f3a85ea51f
commit 61d221b324
2 changed files with 36 additions and 17 deletions

View File

@ -1,6 +1,7 @@
#include "precompile.h" #include "precompile.h"
#include <a8/timer.h> #include <a8/timer.h>
#include <a8/mutable_xobject.h>
#include "guild.h" #include "guild.h"
#include "cs_proto.pb.h" #include "cs_proto.pb.h"
@ -71,8 +72,8 @@ void Guild::MarkDirty()
{ {
if (!dirty_) { if (!dirty_) {
dirty_ = true; dirty_ = true;
dirty_timer_ = a8::Timer::Instance()-> dirty_timer_ = a8::Timer::Instance()->AddDeadLineTimerAndAttach
AddDeadLineTimerAndAttach(1000 * 60, (1000 * 60,
a8::XParams() a8::XParams()
.SetSender((void*)this), .SetSender((void*)this),
[] (const a8::XParams& param) [] (const a8::XParams& param)
@ -161,10 +162,26 @@ void Guild::FillGuildDB(ss::MFGuildDB& guild_dto)
} }
void Guild::SerializeMembers(std::string& guild_members)
{
a8::MutableXObject* members_xobj = a8::MutableXObject::NewArray();
for (auto& pair : member_hash_) {
a8::MutableXObject* member_xobj = a8::MutableXObject::NewObject();
member_xobj->SetVal("account_id", pair.second->account_id);
member_xobj->SetVal("nickname", pair.second->nickname);
member_xobj->SetVal("guild_job", pair.second->guild_job);
members_xobj->Push(*member_xobj);
delete member_xobj;
}
members_xobj->ToJsonStr(guild_members);
delete members_xobj;
}
void Guild::SaveToDB() void Guild::SaveToDB()
{ {
std::string guild_data; std::string guild_data;
std::string guild_log; std::string guild_log;
std::string guild_members;
{ {
ss::MFGuildDB guild_db; ss::MFGuildDB guild_db;
FillGuildDB(guild_db); FillGuildDB(guild_db);
@ -172,6 +189,7 @@ void Guild::SaveToDB()
} }
{ {
logdb_->SerializeToString(&guild_log); logdb_->SerializeToString(&guild_log);
SerializeMembers(guild_members);
} }
auto on_ok = auto on_ok =
@ -201,7 +219,7 @@ void Guild::SaveToDB()
guild_exp, guild_exp,
guild_badge, guild_badge,
guild_apply_num, guild_apply_num,
"", guild_members,
guild_notice, guild_notice,
guild_declaration, guild_declaration,
guild_log, guild_log,

View File

@ -74,6 +74,7 @@ private:
void FillGuildBasic(cs::MFGuildBasic* guild_basic); void FillGuildBasic(cs::MFGuildBasic* guild_basic);
void FillGuildDB(ss::MFGuildDB& guild_dto); void FillGuildDB(ss::MFGuildDB& guild_dto);
void SerializeMembers(std::string& guild_members);
void SaveToDB(); void SaveToDB();
private: private: