1
This commit is contained in:
parent
f3a85ea51f
commit
61d221b324
@ -1,6 +1,7 @@
|
||||
#include "precompile.h"
|
||||
|
||||
#include <a8/timer.h>
|
||||
#include <a8/mutable_xobject.h>
|
||||
|
||||
#include "guild.h"
|
||||
#include "cs_proto.pb.h"
|
||||
@ -71,22 +72,22 @@ void Guild::MarkDirty()
|
||||
{
|
||||
if (!dirty_) {
|
||||
dirty_ = true;
|
||||
dirty_timer_ = a8::Timer::Instance()->
|
||||
AddDeadLineTimerAndAttach(1000 * 60,
|
||||
a8::XParams()
|
||||
.SetSender((void*)this),
|
||||
[] (const a8::XParams& param)
|
||||
{
|
||||
Guild* guild = (Guild*)param.sender.GetUserData();
|
||||
guild->SaveToDB();
|
||||
},
|
||||
&timer_attacher.timer_list_,
|
||||
[] (const a8::XParams& param)
|
||||
{
|
||||
Guild* guild = (Guild*)param.sender.GetUserData();
|
||||
guild->dirty_timer_ = nullptr;
|
||||
}
|
||||
);
|
||||
dirty_timer_ = a8::Timer::Instance()->AddDeadLineTimerAndAttach
|
||||
(1000 * 60,
|
||||
a8::XParams()
|
||||
.SetSender((void*)this),
|
||||
[] (const a8::XParams& param)
|
||||
{
|
||||
Guild* guild = (Guild*)param.sender.GetUserData();
|
||||
guild->SaveToDB();
|
||||
},
|
||||
&timer_attacher.timer_list_,
|
||||
[] (const a8::XParams& param)
|
||||
{
|
||||
Guild* guild = (Guild*)param.sender.GetUserData();
|
||||
guild->dirty_timer_ = nullptr;
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
{
|
||||
std::string guild_data;
|
||||
std::string guild_log;
|
||||
std::string guild_members;
|
||||
{
|
||||
ss::MFGuildDB guild_db;
|
||||
FillGuildDB(guild_db);
|
||||
@ -172,6 +189,7 @@ void Guild::SaveToDB()
|
||||
}
|
||||
{
|
||||
logdb_->SerializeToString(&guild_log);
|
||||
SerializeMembers(guild_members);
|
||||
}
|
||||
|
||||
auto on_ok =
|
||||
@ -201,7 +219,7 @@ void Guild::SaveToDB()
|
||||
guild_exp,
|
||||
guild_badge,
|
||||
guild_apply_num,
|
||||
"",
|
||||
guild_members,
|
||||
guild_notice,
|
||||
guild_declaration,
|
||||
guild_log,
|
||||
|
@ -74,6 +74,7 @@ private:
|
||||
|
||||
void FillGuildBasic(cs::MFGuildBasic* guild_basic);
|
||||
void FillGuildDB(ss::MFGuildDB& guild_dto);
|
||||
void SerializeMembers(std::string& guild_members);
|
||||
void SaveToDB();
|
||||
|
||||
private:
|
||||
|
Loading…
x
Reference in New Issue
Block a user