This commit is contained in:
aozhiwei 2020-09-29 17:33:23 +08:00
parent 339e707ef9
commit e32c76faa8
7 changed files with 50 additions and 12 deletions

View File

@ -387,8 +387,27 @@ void Guild::_CMGuildChange(f8::MsgHdr& hdr, const cs::CMGuildChange& msg)
{
ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data;
guild_name_ = msg.new_name();
if (msg.has_guild_name()) {
guild_name_ = msg.guild_name();
}
if (msg.has_guild_badge()) {
guild_badge_ = msg.guild_badge();
}
if (msg.has_guild_declaration()) {
guild_declaration_ = msg.guild_declaration();
}
if (msg.has_join_unlimited()) {
join_unlimited_ = msg.join_unlimited();
}
if (msg.has_join_cond1()) {
join_cond1_ = msg.join_cond1();
}
if (msg.has_join_cond2()) {
join_cond2_ = msg.join_cond2();
}
cs::SMGuildChange respmsg;
FillGuildBasic(respmsg.mutable_guild_basic());
GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle,
forward_msg->context(),
respmsg);

View File

@ -69,10 +69,11 @@ private:
std::vector<std::set<std::string>> job_hash_;
int gameid_ = 0;
int channel_ = 0;
long long guild_id_ = 0;
std::string guild_name_;
int guild_lv_ = 0;
int guild_exp_ = 0;
double guild_exp_ = 0;
int guild_badge_ = 0;
int guild_apply_num_ = 0;
std::string guild_notice_;

View File

@ -55,6 +55,8 @@ void TypeConvert::Convert(a8::XObject& xobj, cs::MFGuildBasic* guild_basic)
guild_basic->set_join_unlimited(xobj.At("join_unlimited")->AsXValue());
guild_basic->set_join_cond1(xobj.At("join_cond1")->AsXValue());
guild_basic->set_join_cond2(xobj.At("join_cond2")->AsXValue());
guild_basic->set__gameid(xobj.At("_gameid")->AsXValue());
guild_basic->set__channel(xobj.At("_channel")->AsXValue());
}
void TypeConvert::Convert(a8::XObject& xobj, cs::MFPaging* paging)

View File

@ -53,15 +53,16 @@ void GuildMgr::__GuildCreate(f8::JsonHttpRequest* request)
DBEngine::Instance()->ExecAsyncScript
(
conn,
"INSERT INTO `guild`(gameid, guild_id, guild_name, guild_lv, guild_exp, guild_badge, "
"INSERT INTO `guild`(gameid, channel, guild_id, guild_name, guild_lv, guild_exp, guild_badge, "
" guild_apply_num, guild_notice, guild_declaration, guild_log, owner_id, "
" owner_name, owner_avatar_url, creator_id, creator_name, creator_avatar_url, guild_member_num, "
" guild_data, guild_status, join_unlimited, join_cond1, join_cond2, createtime, modifytime)"
"VALUES(%d, %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', "
"VALUES(%d, %d, %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', "
" '%s', '%s', '%s', '%s', '%s', 1, "
" '%s', %d, %d, %d, %d, %d, %d);",
{
guild->_gameid(),
guild->_channel(),
guild->guild_id(),
guild->guild_name(),
guild->guild_lv(),
@ -289,7 +290,7 @@ void GuildMgr::LoadGuild(int instance_id, long long last_idx)
"SELECT idx, gameid, guild_id, guild_name, guild_lv, guild_exp, guild_badge, guild_notice, "
" guild_declaration, owner_id, owner_name, owner_avatar_url, "
" creator_id, creator_name, creator_avatar_url, guild_status, "
" join_unlimited, join_cond1, join_cond2, createtime, modifytime "
" join_unlimited, join_cond1, join_cond2, createtime, modifytime, channel "
"FROM `guild` WHERE idx > %d;",
{
last_idx
@ -317,6 +318,7 @@ void GuildMgr::LoadGuild(int instance_id, long long last_idx)
guild->set_join_cond1(a8::XValue(row[14]));
guild->set_join_cond2(a8::XValue(row[15]));
guild->set__gameid(a8::XValue(row[1]));
guild->set__channel(a8::XValue(row[18]));
GuildMgr::Instance()->AddGuild(guild);
if (a8::XValue(row[0]).GetInt64() > last_idx) {
last_idx = a8::XValue(row[0]);

View File

@ -19,11 +19,17 @@ void TypeConvert::Convert(const cs::MFGuildBasic* guild_basic, a8::MutableXObjec
xobj->SetVal("join_unlimited", guild_basic->join_unlimited());
xobj->SetVal("join_cond1", guild_basic->join_cond1());
xobj->SetVal("join_cond2", guild_basic->join_cond2());
xobj->SetVal("_gameid", guild_basic->_gameid());
xobj->SetVal("_channel", guild_basic->_channel());
}
void TypeConvert::Convert(f8::JsonHttpRequest* request, cs::MFGuildBasic* guild_basic)
{
guild_basic->set__gameid(request->request.At("gameid")->AsXValue());
std::string owner_id = request->request.At("owner_id")->AsXValue().GetString();
int gameid = f8::ExtractGameIdFromAccountId(owner_id);
int channel = f8::ExtractChannelIdFromAccountId(owner_id);
guild_basic->set__gameid(gameid);
guild_basic->set__channel(channel);
guild_basic->set_guild_id(request->request.At("guild_id")->AsXValue());
guild_basic->set_guild_name(request->request.At("guild_name")->AsXValue().GetString());
guild_basic->set_guild_badge(request->request.At("guild_badge")->AsXValue());

View File

@ -39,7 +39,7 @@ message MFBaseUserData
optional int32 sex = 4; // 1 2 0
optional int32 last_login_time = 5; //
optional int64 guild_id = 6; //id(0)
optional int32 guild_job = 7; // 1: 2: 3
optional int32 guild_job = 7; // 1: 2: 3 (0)
optional int64 user_value1 = 50; //1
optional int64 user_value2 = 51; //2
@ -101,7 +101,7 @@ message MFGuildBasic
optional int64 guild_id = 1; //id
optional string guild_name = 2; //
optional int32 guild_lv = 3; //
optional int32 guild_exp = 4; //
optional double guild_exp = 4; //
optional int32 guild_badge = 5; //
optional int32 member_num = 6; //
optional string guild_declaration = 7; //
@ -113,6 +113,7 @@ message MFGuildBasic
optional int32 join_cond2 = 21; //2
optional int32 _gameid = 100; //gameid
optional int32 _channel = 101; //channel
}
//
@ -448,15 +449,21 @@ message SMGuildDismiss
optional string errmsg = 2; //
}
//
//()
message CMGuildChange
{
optional string new_name = 1; //
optional string guild_name = 1; //
optional int32 guild_badge = 2; //
optional string guild_declaration = 3; //
optional int32 join_unlimited = 4; //
optional int32 join_cond1 = 5; //1
optional int32 join_cond2 = 6; //2
}
message SMGuildChange
{
optional int32 errcode = 1; //
optional string errmsg = 2; //
optional MFGuildBasic guild_basic = 3; //
}
//
@ -527,7 +534,7 @@ message SMGuildLog
/*
values[0]: account_id
values[1]:
values[2]: 1: 2: 3: :
values[2]: 1: 2: 3: (0):
values[3]: (unix时间戳)
values[4]:
*/

View File

@ -90,10 +90,11 @@ DROP TABLE IF EXISTS `guild`;
CREATE TABLE `guild` (
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
`gameid` int(11) NOT NULL DEFAULT '0' COMMENT 'gameid',
`channel` int(11) NOT NULL DEFAULT '0' COMMENT 'channel',
`guild_id` bigint NOT NULL COMMENT '公会id',
`guild_name` tinyblob COMMENT '公会名字',
`guild_lv` int(11) NOT NULL DEFAULT '0' COMMENT '公会等级',
`guild_exp` int(11) NOT NULL DEFAULT '0' COMMENT '公会经验',
`guild_exp` double NOT NULL DEFAULT '0' COMMENT '公会经验',
`guild_badge` int(11) NOT NULL DEFAULT '0' COMMENT '公会徽章',
`guild_apply_num` int(11) NOT NULL DEFAULT '0' COMMENT '申请人数',
`guild_members` blob COMMENT '公会管理员',