This commit is contained in:
aozhiwei 2020-10-14 13:34:57 +08:00
parent 397808c1d2
commit 59f8b0ac36
2 changed files with 25 additions and 2 deletions

View File

@ -30,11 +30,26 @@ enum GuildApplyStatus_e
void Guild::Init()
{
last_active_time_ = App::Instance()->nowtime;
last_saveok_time_ = App::Instance()->nowtime;
logdb_ = new ss::MFGuildLogDB;
for (size_t i = 0; i < kGuildJobMax; ++i) {
job_hash_.push_back(std::set<std::string>());
}
RecalcRedPoint();
a8::Timer::Instance()->AddRepeatTimerAndAttach
(
1000 * 60,
a8::XParams()
.SetSender(this),
[] (const a8::XParams& param)
{
Guild* guild = (Guild*)param.sender.GetUserData();
if (App::Instance()->nowtime - guild->last_active_time_ < 300) {
guild->SaveToDB();
}
},
&timer_attacher_.timer_list_);
}
void Guild::UnInit()
@ -1014,6 +1029,7 @@ void Guild::UpdateMemberOffline(const std::string& account_id)
void Guild::Active()
{
last_active_time_ = App::Instance()->nowtime;
if (App::Instance()->nowtime - last_query_member_time_ > 15) {
QueryMemberOnlineState();
last_query_member_time_ = App::Instance()->nowtime;
@ -1121,7 +1137,10 @@ void Guild::SaveToDB()
auto on_ok =
[] (a8::XParams& param, const f8::DataSet* data_set)
{
Guild* guild = GuildMgr::Instance()->GetGuild(param.sender);
if (guild) {
guild->last_saveok_time_ = App::Instance()->nowtime;
}
};
auto on_error =
[] (a8::XParams& param, int error_code, const std::string& error_msg)
@ -1165,7 +1184,8 @@ void Guild::SaveToDB()
guild_status_ == kGuildDismissed ? GuildId() : 0,
guild_id_
},
a8::XParams(),
a8::XParams()
.SetSender(GuildId()),
on_ok,
on_error,
guild_id_

View File

@ -118,6 +118,9 @@ private:
time_t last_query_member_time_ = 0;
a8::TimerAttacher timer_attacher_;
time_t last_active_time_ = 0;
time_t last_saveok_time_ = 0;
public:
static Guild* CreateGuild(int gameid,
long long guild_id,