This commit is contained in:
aozhiwei 2020-09-16 19:53:43 +08:00
parent f70f76a135
commit d636f8e31e
2 changed files with 56 additions and 5 deletions

View File

@ -307,24 +307,35 @@ void GuildMgr::LoadGuild(long long guild_id)
auto on_ok =
[] (a8::XParams& param, const f8::DataSet* data_set)
{
GuildMgr::Instance()->pending_guild_hash_.erase(param.sender);
if (data_set) {
}
};
auto on_error =
[] (a8::XParams& param, int error_code, const std::string& error_msg)
{
GuildMgr::Instance()->pending_guild_hash_.erase(param.sender);
auto itr = GuildMgr::Instance()->task_hash_.find(param.sender);
if (itr != GuildMgr::Instance()->task_hash_.end()) {
for (auto task : itr->second) {
task->OnError();
}
}
};
a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(GetGuildCrc32(guild_id));
DBEngine::Instance()->ExecAsyncQuery
(
conn_info,
"",
"SELECT gameid, guild_id, guild_name, guild_lv, guild_exp, guild_badge, guild_apply_num, "
" guild_administers, guild_notice, guild_declaration, guild_log, owner_id, owner_name, "
" creator_id, guild_data, guild_status, createtime "
"WHERE guild_id=%d;",
{
guild_id
},
a8::XParams(),
a8::XParams()
.SetSender(guild_id),
on_ok,
on_error,
GetGuildCrc32(guild_id)
@ -353,3 +364,25 @@ void GuildMgr::ForwardGuildSMMsg(int socket_handle,
smmsg.SerializeToString(msg.mutable_payload());
IMListener::Instance()->SendMsg(socket_handle, msg);
}
Guild* GuildMgr::CreateGuild(int gameid,
long long guild_id,
const std::string& guild_name,
int guild_lv,
int guild_exp,
int guild_badge,
int guild_apply_num,
const std::string& guild_administers,
const std::string& guild_notice,
const std::string& guild_declaration,
const std::string& guild_log,
const std::string& owner_id,
const std::string& owner_name,
const std::string& creator_id,
const std::string& guild_data,
int guild_status,
int createtime
)
{
return nullptr;
}

View File

@ -49,7 +49,25 @@ class GuildMgr : public a8::Singleton<GuildMgr>
void CreateAsyncTask(int socket_handle, long long guild_id, AsyncGuildTask* task);
void LoadGuild(long long guild_id);
bool IsValidGuildId(long long guild_id);
Guild* GetGuild(long long group_id);
Guild* GetGuild(long long guild_id);
Guild* CreateGuild(int gameid,
long long guild_id,
const std::string& guild_name,
int guild_lv,
int guild_exp,
int guild_badge,
int guild_apply_num,
const std::string& guild_administers,
const std::string& guild_notice,
const std::string& guild_declaration,
const std::string& guild_log,
const std::string& owner_id,
const std::string& owner_name,
const std::string& creator_id,
const std::string& guild_data,
int guild_status,
int createtime
);
private:
std::map<long long, Guild*> id_hash_;