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 = auto on_ok =
[] (a8::XParams& param, const f8::DataSet* data_set) [] (a8::XParams& param, const f8::DataSet* data_set)
{ {
GuildMgr::Instance()->pending_guild_hash_.erase(param.sender);
if (data_set) { if (data_set) {
} }
}; };
auto on_error = auto on_error =
[] (a8::XParams& param, int error_code, const std::string& error_msg) [] (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)); a8::XObject conn_info = DBEngine::Instance()->GetConnInfo(GetGuildCrc32(guild_id));
DBEngine::Instance()->ExecAsyncQuery DBEngine::Instance()->ExecAsyncQuery
( (
conn_info, 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_ok,
on_error, on_error,
GetGuildCrc32(guild_id) GetGuildCrc32(guild_id)
@ -353,3 +364,25 @@ void GuildMgr::ForwardGuildSMMsg(int socket_handle,
smmsg.SerializeToString(msg.mutable_payload()); smmsg.SerializeToString(msg.mutable_payload());
IMListener::Instance()->SendMsg(socket_handle, msg); 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 CreateAsyncTask(int socket_handle, long long guild_id, AsyncGuildTask* task);
void LoadGuild(long long guild_id); void LoadGuild(long long guild_id);
bool IsValidGuildId(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: private:
std::map<long long, Guild*> id_hash_; std::map<long long, Guild*> id_hash_;