aozhiwei 6b68ffde99 1
2020-10-09 15:02:00 +08:00

52 lines
1.6 KiB
C++

#pragma once
#include <a8/timer_attacher.h>
namespace cs
{
class MFGuildBasic;
}
class GuildMgr : public a8::Singleton<GuildMgr>
{
private:
GuildMgr() {};
friend class a8::Singleton<GuildMgr>;
public:
void Init();
void UnInit();
void __GuildCreate(f8::JsonHttpRequest* request);
void __GuildSearch(f8::JsonHttpRequest* request);
void __GuildUpdate(f8::JsonHttpRequest* request);
void __GuildRank(f8::JsonHttpRequest* request);
void __GuildConfirmed(f8::JsonHttpRequest* request);
void __GenTestData(f8::JsonHttpRequest* request);
private:
cs::MFGuildBasic* GetGuildById(long long guild_id);
cs::MFGuildBasic* GetGuildByName(const std::string& guild_name);
std::vector<cs::MFGuildBasic*>* GetGuildRank(int gameid);
void AddGuild(cs::MFGuildBasic* guild);
void LoadGuild(int instance_id, long long last_idx);
void SyncGuild(int instance_id);
void OnOneDBDone(int instance_id);
void RefreshGuild(long long guild_id);
void GenGuildRank();
void ResortRank(std::vector<cs::MFGuildBasic*>& rank_list);
void UpdateRank(std::vector<cs::MFGuildBasic*>& rank_list, cs::MFGuildBasic* guild);
void UpdateGuild(cs::MFGuildBasic* new_guild);
bool CmpGuild(cs::MFGuildBasic* a, cs::MFGuildBasic* b);
void InstallSyncGuildTimer();
private:
a8::TimerAttacher timer_attacher_;
bool load_done_ = false;
std::map<int, int> pending_db_hash_;
std::map<int, int> sync_db_hash_;
std::map<long long, cs::MFGuildBasic*> id_hash_;
std::map<std::string, cs::MFGuildBasic*> name_hash_;
std::map<int, std::vector<cs::MFGuildBasic*>> sorted_game_guild_list_;
};