diff --git a/server/imserver/dbhelper.cc b/server/imserver/dbhelper.cc index 515b425..08fb420 100644 --- a/server/imserver/dbhelper.cc +++ b/server/imserver/dbhelper.cc @@ -130,13 +130,15 @@ void DBHelper::ConfirmGuild(Player* hum, long long guild_id) hum->UpdateGuildData(param.param1, kGuildOwner); hum->SaveToDB (a8::XParams() - .SetSender(hum->AccountId()), + .SetSender(hum->AccountId()) + .SetParam1(param.param1.GetInt64()), [] (a8::XParams& param, const f8::DataSet* data_set) { Player* hum = PlayerMgr::Instance()->GetPlayerByAccountId (param.sender.GetString()); if (hum) { cs::SMGuildCreate respmsg; + respmsg.set_guild_id(param.param1); hum->SendMsg(respmsg); } }, diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index fd0fefd..82da854 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -480,9 +480,9 @@ void Guild::FillGuildBasic(cs::MFGuildBasic* guild_basic) guild_basic->set_guild_badge(guild_badge_); guild_basic->set_member_num(member_hash_.size()); guild_basic->set_guild_declaration(guild_declaration_); - guild_basic->set_guild_owner_id(owner_id_); - guild_basic->set_guild_owner_name(owner_name_); - guild_basic->set_guild_owner_avatar_url(owner_avatar_url_); + guild_basic->set_owner_id(owner_id_); + guild_basic->set_owner_name(owner_name_); + guild_basic->set_owner_avatar_url(owner_avatar_url_); } void Guild::FillGuildDB(ss::MFGuildDB& guild_pb) @@ -660,6 +660,9 @@ Guild* Guild::CreateGuild(int gameid, const std::string& creator_avatar_url, const std::string& guild_data, int guild_status, + int join_unlimited, + int join_cond1, + int join_cond2, int createtime ) { @@ -683,6 +686,9 @@ Guild* Guild::CreateGuild(int gameid, guild->creator_name_ = creator_name; guild->creator_avatar_url_ = creator_avatar_url; guild->guild_status_ = guild_status; + guild->join_unlimited_ = join_unlimited; + guild->join_cond1_ = join_cond1; + guild->join_cond2_ = join_cond2; guild->createtime_ = createtime; //guild_members guild->Deserialize(guild_data, guild_log); diff --git a/server/imserver/guild.h b/server/imserver/guild.h index 4c31094..1ecc956 100644 --- a/server/imserver/guild.h +++ b/server/imserver/guild.h @@ -77,6 +77,9 @@ private: std::string creator_name_; std::string creator_avatar_url_; int guild_status_ = 0; + int join_unlimited_ = 0; + int join_cond1_ = 0; + int join_cond2_ = 0; int createtime_ = 0; a8::TimerAttacher timer_attacher_; @@ -101,6 +104,9 @@ public: const std::string& creator_avatar_url, const std::string& guild_data, int guild_status, + int join_unlimited, + int join_cond1, + int join_cond2, int createtime ); static void GenGuildData(Player* hum, long long guild_id, std::string& guild_data); diff --git a/server/imserver/guildmgr.cc b/server/imserver/guildmgr.cc index a8bce3d..a2edf8b 100644 --- a/server/imserver/guildmgr.cc +++ b/server/imserver/guildmgr.cc @@ -158,7 +158,10 @@ void GuildMgr::LoadGuild(long long guild_id) row[17], //creator_avatar_url row[18], //guild_data a8::XValue(19), //guild_status - a8::XValue(20) //createtime + a8::XValue(20), //join_unlimited + a8::XValue(21), //join_cond1 + a8::XValue(22), //join_cond2 + a8::XValue(23) //createtime ); GuildMgr::Instance()->id_hash_[guild->GuildId()] = guild; break; @@ -199,7 +202,8 @@ void GuildMgr::LoadGuild(long long guild_id) "SELECT gameid, guild_id, guild_name, guild_lv, guild_exp, guild_badge, guild_apply_num, " " guild_members, guild_notice, guild_declaration, guild_log, " " owner_id, owner_name, owner_avatar_url, " - " creator_id, creator_name, creator_avatar_url, guild_data, guild_status, createtime " + " creator_id, creator_name, creator_avatar_url, guild_data, guild_status, " + " join_unlimited, join_cond1, join_cond2, createtime " "WHERE guild_id=%d;", { guild_id diff --git a/server/imserver/player.cc b/server/imserver/player.cc index 1eadac4..4e4ad96 100644 --- a/server/imserver/player.cc +++ b/server/imserver/player.cc @@ -662,6 +662,9 @@ void Player::_CMGuildCreate(f8::MsgHdr& hdr, const cs::CMGuildCreate& msg) params->SetVal("owner_id", AccountId()); params->SetVal("owner_name", NickName()); params->SetVal("owner_avatar_url", AvatarUrl()); + params->SetVal("join_unlimited", msg.join_unlimited()); + params->SetVal("join_cond1", msg.join_cond1()); + params->SetVal("join_cond2", msg.join_cond2()); f8::HttpClientPool::Instance()->HttpGet ( a8::XParams() diff --git a/server/imserver/typeconvert.cc b/server/imserver/typeconvert.cc index 9a3dec5..b0d29cc 100644 --- a/server/imserver/typeconvert.cc +++ b/server/imserver/typeconvert.cc @@ -49,9 +49,12 @@ void TypeConvert::Convert(a8::XObject& xobj, cs::MFGuildBasic* guild_basic) guild_basic->set_guild_badge(xobj.At("guild_badge")->AsXValue()); guild_basic->set_member_num(xobj.At("member_num")->AsXValue()); guild_basic->set_guild_declaration(xobj.At("guild_declaration")->AsXValue().GetString()); - guild_basic->set_guild_owner_id(xobj.At("guild_owner_id")->AsXValue().GetString()); - guild_basic->set_guild_owner_name(xobj.At("guild_owner_name")->AsXValue().GetString()); - guild_basic->set_guild_owner_avatar_url(xobj.At("guild_owner_avatar_url")->AsXValue().GetString()); + guild_basic->set_owner_id(xobj.At("owner_id")->AsXValue().GetString()); + guild_basic->set_owner_name(xobj.At("owner_name")->AsXValue().GetString()); + guild_basic->set_owner_avatar_url(xobj.At("owner_avatar_url")->AsXValue().GetString()); + 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()); } void TypeConvert::Convert(a8::XObject& xobj, cs::MFPaging* paging) diff --git a/server/rankserver/guildmgr.cc b/server/rankserver/guildmgr.cc index a09c96b..6744211 100644 --- a/server/rankserver/guildmgr.cc +++ b/server/rankserver/guildmgr.cc @@ -55,10 +55,10 @@ void GuildMgr::__GuildCreate(f8::JsonHttpRequest* request) "INSERT INTO `guild`(gameid, 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_data, guild_status, createtime, modifytime)" + " guild_data, guild_status, join_unlimited, join_cond1, join_cond2, ,createtime, modifytime)" "VALUES(%d, %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', " " '%s', '%s', '%s', '%s', '%s', " - " '%s', %d, %d, %d);", + " '%s', %d, %d, %d, %d, %d, %d);", { guild->_gameid(), guild->guild_id(), @@ -70,14 +70,17 @@ void GuildMgr::__GuildCreate(f8::JsonHttpRequest* request) "", guild->guild_declaration(), "", - guild->guild_owner_id(), - guild->guild_owner_name(), - guild->guild_owner_avatar_url(), - guild->guild_owner_id(), - guild->guild_owner_name(), - guild->guild_owner_avatar_url(), + guild->owner_id(), + guild->owner_name(), + guild->owner_avatar_url(), + guild->owner_id(), + guild->owner_name(), + guild->owner_avatar_url(), guild_data, 0, + guild->join_unlimited(), + guild->join_cond1(), + guild->join_cond2(), App::Instance()->nowtime, App::Instance()->nowtime }, @@ -277,7 +280,8 @@ void GuildMgr::LoadGuild(int instance_id, long long last_idx) *JsonDataMgr::Instance()->GetMysqlConf(instance_id), "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, createtime, modifytime " + " creator_id, creator_name, creator_avatar_url, guild_status, " + " join_unlimited, join_cond1, join_cond2, createtime, modifytime " "FROM `guild` WHERE idx > %d;", { last_idx @@ -298,9 +302,12 @@ void GuildMgr::LoadGuild(int instance_id, long long last_idx) guild->set_guild_exp(a8::XValue(row[5])); guild->set_guild_badge(a8::XValue(row[6])); guild->set_guild_declaration(row[8]); - guild->set_guild_owner_id(row[9]); - guild->set_guild_owner_name(row[10]); - guild->set_guild_owner_avatar_url(row[11]); + guild->set_owner_id(row[9]); + guild->set_owner_name(row[10]); + guild->set_owner_avatar_url(row[11]); + guild->set_join_unlimited(a8::XValue(row[13])); + guild->set_join_cond1(a8::XValue(row[14])); + guild->set_join_cond2(a8::XValue(row[15])); guild->set__gameid(a8::XValue(row[1])); GuildMgr::Instance()->AddGuild(guild); if (a8::XValue(row[0]).GetInt64() > last_idx) { @@ -344,7 +351,8 @@ void GuildMgr::RefreshGuild(long long guild_id) conn, "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, createtime, modifytime " + " creator_id, creator_name, creator_avatar_url, guild_status, " + " join_unlimited, join_cond1, join_cond2, createtime, modifytime " "FROM `guild` WHERE guild_id = %d;", { guild_id @@ -362,9 +370,12 @@ void GuildMgr::RefreshGuild(long long guild_id) guild->set_guild_exp(a8::XValue(row[5])); guild->set_guild_badge(a8::XValue(row[6])); guild->set_guild_declaration(row[8]); - guild->set_guild_owner_id(row[9]); - guild->set_guild_owner_name(row[10]); - guild->set_guild_owner_avatar_url(row[11]); + guild->set_owner_id(row[9]); + guild->set_owner_name(row[10]); + guild->set_owner_avatar_url(row[11]); + guild->set_join_unlimited(a8::XValue(row[13])); + guild->set_join_cond1(a8::XValue(row[14])); + guild->set_join_cond2(a8::XValue(row[15])); } } } diff --git a/server/rankserver/typeconvert.cc b/server/rankserver/typeconvert.cc index ad9f521..d4211e4 100644 --- a/server/rankserver/typeconvert.cc +++ b/server/rankserver/typeconvert.cc @@ -13,9 +13,12 @@ void TypeConvert::Convert(const cs::MFGuildBasic* guild_basic, a8::MutableXObjec xobj->SetVal("guild_badge", guild_basic->guild_badge()); xobj->SetVal("member_num", guild_basic->member_num()); xobj->SetVal("guild_declareation", guild_basic->guild_declaration()); - xobj->SetVal("guild_owner_id", guild_basic->guild_owner_id()); - xobj->SetVal("guild_owner_name", guild_basic->guild_owner_name()); - xobj->SetVal("guild_owner_avatar_url", guild_basic->guild_owner_avatar_url()); + xobj->SetVal("owner_id", guild_basic->owner_id()); + xobj->SetVal("owner_name", guild_basic->owner_name()); + xobj->SetVal("owner_avatar_url", guild_basic->owner_avatar_url()); + xobj->SetVal("join_unlimited", guild_basic->join_unlimited()); + xobj->SetVal("join_cond1", guild_basic->join_cond1()); + xobj->SetVal("join_cond2", guild_basic->join_cond2()); } void TypeConvert::Convert(f8::JsonHttpRequest* request, cs::MFGuildBasic* guild_basic) @@ -27,7 +30,10 @@ void TypeConvert::Convert(f8::JsonHttpRequest* request, cs::MFGuildBasic* guild_ guild_basic->set_guild_lv(request->request.At("guild_lv")->AsXValue()); guild_basic->set_guild_exp(request->request.At("guild_exp")->AsXValue()); guild_basic->set_guild_declaration(request->request.At("guild_declaration")->AsXValue().GetString()); - guild_basic->set_guild_owner_id(request->request.At("owner_id")->AsXValue().GetString()); - guild_basic->set_guild_owner_name(request->request.At("owner_name")->AsXValue().GetString()); - guild_basic->set_guild_owner_avatar_url(request->request.At("owner_avatar_url")->AsXValue().GetString()); + guild_basic->set_owner_id(request->request.At("owner_id")->AsXValue().GetString()); + guild_basic->set_owner_name(request->request.At("owner_name")->AsXValue().GetString()); + guild_basic->set_owner_avatar_url(request->request.At("owner_avatar_url")->AsXValue().GetString()); + guild_basic->set_join_unlimited(request->request.At("join_unlimited")->AsXValue()); + guild_basic->set_join_cond1(request->request.At("join_cond1")->AsXValue()); + guild_basic->set_join_cond2(request->request.At("join_cond2")->AsXValue()); } diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index e5652ed..67a45fb 100644 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -105,9 +105,12 @@ message MFGuildBasic optional int32 guild_badge = 5; //公会徽章 optional int32 member_num = 6; //公会成员数 optional string guild_declaration = 7; //公会宣言 - optional string guild_owner_id = 8; //公会队长id - optional string guild_owner_name = 9; //公会队长名字 - optional string guild_owner_avatar_url = 10; //公会队长头像 + optional string owner_id = 8; //公会队长id + optional string owner_name = 9; //公会队长名字 + optional string owner_avatar_url = 10; //公会队长头像 + optional int32 join_unlimited = 11; //不限制加入 + optional int32 join_cond1 = 20; //加入条件1 + optional int32 join_cond2 = 21; //加入条件2 optional int32 _gameid = 100; //gameid } @@ -366,12 +369,16 @@ message CMGuildCreate 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 SMGuildCreate { optional int32 errcode = 1; //1:公会已存在 2: 你已经有公会 optional string errmsg = 2; //错误消息 + optional int64 guild_id = 3; //公会id } //加公会 diff --git a/sql/relationdb_n.sql b/sql/relationdb_n.sql index b8a532b..8bcaf1f 100644 --- a/sql/relationdb_n.sql +++ b/sql/relationdb_n.sql @@ -108,6 +108,9 @@ CREATE TABLE `guild` ( `creator_avatar_url` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '公会创建者头像', `guild_data` mediumblob COMMENT '公会数据', `guild_status` int(11) NOT NULL DEFAULT '0' COMMENT '公会状态 0:新建(未确认) 1:已确认 2:已解散', + `join_unlimited` int(11) NOT NULL DEFAULT '0' COMMENT '不限制加入', + `join_cond1` int(11) NOT NULL DEFAULT '0' COMMENT '加入条件1', + `join_cond2` int(11) NOT NULL DEFAULT '0' COMMENT '加入条件2', `createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`idx`),