1
This commit is contained in:
parent
91bfb69548
commit
effbe6c224
@ -11,8 +11,10 @@
|
||||
#include "app.h"
|
||||
#include "jsondatamgr.h"
|
||||
#include "IMListener.h"
|
||||
#include "metamgr.h"
|
||||
|
||||
const size_t MAX_RANK_HUMAN_NUM = 50;
|
||||
const char* const NAME_MAGIC_SYMBOL = "@";
|
||||
|
||||
void GuildMgr::Init()
|
||||
{
|
||||
@ -37,9 +39,6 @@ void GuildMgr::__GuildCreate(f8::JsonHttpRequest* request)
|
||||
request->resp_xobj->SetVal("errmsg", "");
|
||||
return;
|
||||
}
|
||||
request->pending = true;
|
||||
request->resp_xobj->SetVal("errcode", 0);
|
||||
request->resp_xobj->SetVal("errmsg", "");
|
||||
|
||||
long long guild_id = request->request.At("guild_id")->AsXValue();
|
||||
if (GetGuildById(guild_id)) {
|
||||
@ -51,6 +50,38 @@ void GuildMgr::__GuildCreate(f8::JsonHttpRequest* request)
|
||||
std::string guild_data;
|
||||
cs::MFGuildBasic* guild = new cs::MFGuildBasic;
|
||||
TypeConvert::Convert(request, guild);
|
||||
if (guild->guild_name().empty()) {
|
||||
request->resp_xobj->SetVal("errcode", 2);
|
||||
request->resp_xobj->SetVal("errmsg", "公会名字不能为空");
|
||||
delete guild;
|
||||
return;
|
||||
}
|
||||
if (GetGuildByName(
|
||||
guild->_gameid(),
|
||||
guild->_channel(),
|
||||
guild->guild_name()
|
||||
)) {
|
||||
request->resp_xobj->SetVal("errcode", 3);
|
||||
request->resp_xobj->SetVal("errmsg", "公会名已经存在");
|
||||
delete guild;
|
||||
return;
|
||||
}
|
||||
if (MetaMgr::Instance()->HasDirtyWord(guild->guild_name())) {
|
||||
request->resp_xobj->SetVal("errcode", 4);
|
||||
request->resp_xobj->SetVal("errmsg", "公会名含有违禁字符");
|
||||
delete guild;
|
||||
return;
|
||||
}
|
||||
if (MetaMgr::Instance()->HasDirtyWord(guild->guild_declaration())) {
|
||||
request->resp_xobj->SetVal("errcode", 5);
|
||||
request->resp_xobj->SetVal("errmsg", "公会宣言含有违禁字符");
|
||||
delete guild;
|
||||
return;
|
||||
}
|
||||
|
||||
request->pending = true;
|
||||
request->resp_xobj->SetVal("errcode", 0);
|
||||
request->resp_xobj->SetVal("errmsg", "");
|
||||
a8::XObject conn = DBEngine::Instance()->GetConnInfo(guild_id);
|
||||
DBEngine::Instance()->ExecAsyncScript
|
||||
(
|
||||
@ -111,6 +142,14 @@ void GuildMgr::__GuildCreate(f8::JsonHttpRequest* request)
|
||||
f8::JsonHttpRequest* request = (f8::JsonHttpRequest*)param.sender.GetUserData();
|
||||
cs::MFGuildBasic* guild = (cs::MFGuildBasic*)param.param1.GetUserData();
|
||||
|
||||
{
|
||||
std::string response;
|
||||
request->resp_xobj->SetVal("errcode", 2);
|
||||
request->resp_xobj->SetVal("errmsg", "服务器内部错误");
|
||||
request->resp_xobj->ToJsonStr(response);
|
||||
IMListener::Instance()->SendText(request->socket_handle, a8::HttpResponse(response));
|
||||
}
|
||||
|
||||
delete guild;
|
||||
delete request;
|
||||
},
|
||||
@ -306,9 +345,9 @@ cs::MFGuildBasic* GuildMgr::GetGuildById(long long guild_id)
|
||||
return itr != id_hash_.end() ? itr->second : nullptr;
|
||||
}
|
||||
|
||||
cs::MFGuildBasic* GuildMgr::GetGuildByName(int gameid, const std::string& guild_name)
|
||||
cs::MFGuildBasic* GuildMgr::GetGuildByName(int gameid, int channel, const std::string& guild_name)
|
||||
{
|
||||
auto itr = name_hash_.find(guild_name);
|
||||
auto itr = name_hash_.find(GenGuildName(gameid, channel, guild_name));
|
||||
return itr != name_hash_.end() ? itr->second : nullptr;
|
||||
}
|
||||
|
||||
@ -321,7 +360,7 @@ std::vector<cs::MFGuildBasic*>* GuildMgr::GetGuildRank(int gameid)
|
||||
void GuildMgr::AddGuild(cs::MFGuildBasic* guild)
|
||||
{
|
||||
id_hash_[guild->guild_id()] = guild;
|
||||
name_hash_[guild->guild_name()] = guild;
|
||||
name_hash_[GenGuildName(guild->_gameid(), guild->_channel(), guild->guild_name())] = guild;
|
||||
}
|
||||
|
||||
void GuildMgr::LoadGuild(int instance_id, long long last_idx)
|
||||
@ -598,3 +637,9 @@ void GuildMgr::InstallSyncGuildTimer()
|
||||
&timer_attacher_.timer_list_);
|
||||
}
|
||||
}
|
||||
|
||||
std::string GuildMgr::GenGuildName(int gameid, int channel, const std::string& raw_name)
|
||||
{
|
||||
std::string guild_name = a8::XValue(gameid).GetString() + NAME_MAGIC_SYMBOL + raw_name;
|
||||
return guild_name;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ class GuildMgr : public a8::Singleton<GuildMgr>
|
||||
|
||||
private:
|
||||
cs::MFGuildBasic* GetGuildById(long long guild_id);
|
||||
cs::MFGuildBasic* GetGuildByName(int gameid, const std::string& guild_name);
|
||||
cs::MFGuildBasic* GetGuildByName(int gameid, int channel, 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);
|
||||
@ -40,6 +40,7 @@ class GuildMgr : public a8::Singleton<GuildMgr>
|
||||
void UpdateGuild(cs::MFGuildBasic* new_guild);
|
||||
bool CmpGuild(cs::MFGuildBasic* a, cs::MFGuildBasic* b);
|
||||
void InstallSyncGuildTimer();
|
||||
std::string GenGuildName(int gameid, int channel, const std::string& raw_name);
|
||||
|
||||
private:
|
||||
a8::TimerAttacher timer_attacher_;
|
||||
|
@ -79,3 +79,8 @@ void MetaMgr::Reload()
|
||||
loader_ = new MetaDataLoader();
|
||||
loader_->Load();
|
||||
}
|
||||
|
||||
bool MetaMgr::HasDirtyWord(const std::string& word)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -16,6 +16,8 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
void UnInit();
|
||||
void Reload();
|
||||
|
||||
bool HasDirtyWord(const std::string& word);
|
||||
|
||||
private:
|
||||
MetaDataLoader* loader_ = nullptr;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user