From 4fafae4a841a457ff8a36fd08f2741def3af1abe Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 15 Oct 2020 14:06:52 +0800 Subject: [PATCH] 1 --- server/imserver/constant.h | 2 ++ server/imserver/guild.cc | 4 +++- server/imserver/guild.h | 1 + server/imserver/guildmgr.h | 1 + server/imserver/handlermgr.cc | 2 ++ server/imserver/player.cc | 3 +++ server/imserver/player.h | 1 + server/imserver/playermgr.cc | 5 +++++ server/imserver/playermgr.h | 2 ++ server/imserver/synchelper.cc | 19 +++++++++++++++++++ server/imserver/synchelper.h | 9 +++++++++ server/tools/protobuild/cs_proto.proto | 9 +++++++++ server/tools/protobuild/ss_msgid.proto | 2 ++ server/tools/protobuild/ss_proto.proto | 17 +++++++++++++++-- 14 files changed, 74 insertions(+), 3 deletions(-) diff --git a/server/imserver/constant.h b/server/imserver/constant.h index c5e66cf..b3947aa 100644 --- a/server/imserver/constant.h +++ b/server/imserver/constant.h @@ -81,6 +81,8 @@ const char* const PROJ_ROOT_FMT = "/data/logs/%s"; const char* const EVENT_FRIEND_AGREE = "friend.agree"; const char* const EVENT_FRIEND_DELETE = "friend.delete"; +const char* const EVENT_GUILD_REFUSE = "guild.refuse"; + const int MAX_INSTANCE_ID = 1023; const int MAX_FRIEND_NUM = 30; diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index 1335c47..1b22358 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -688,6 +688,7 @@ void Guild::_CMGuildMemberList(f8::MsgHdr& hdr, const cs::CMGuildMemberList& msg ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data; cs::SMGuildMemberList respmsg; + respmsg.set_guild_lv(guild_lv_); *respmsg.mutable_paging() = msg.paging(); if (respmsg.paging().page_size() <= 0) { respmsg.mutable_paging()->set_page_size(10); @@ -764,6 +765,7 @@ void Guild::_CMGuildApplyList(f8::MsgHdr& hdr, const cs::CMGuildApplyList& msg) } } cs::SMGuildApplyList respmsg; + respmsg.set_guild_lv(guild->GuildLv()); guild->FillApplyList(forward_msg->context().user_info().base_data().account_id(), *paging, respmsg); @@ -782,7 +784,7 @@ void Guild::_CMGuildApplyList(f8::MsgHdr& hdr, const cs::CMGuildApplyList& msg) ss::SS_IM_ForwardGuildCMMsg* forward_msg = (ss::SS_IM_ForwardGuildCMMsg*) param.param3.GetUserData(); - cs::SMGuildJoin respmsg; + cs::SMGuildApplyList respmsg; GuildMgr::Instance()->ForwardGuildSMMsg(param.param1, forward_msg->context(), respmsg); diff --git a/server/imserver/guild.h b/server/imserver/guild.h index edba9fc..57f4730 100644 --- a/server/imserver/guild.h +++ b/server/imserver/guild.h @@ -30,6 +30,7 @@ public: void _CMGuildAgreeInvite(f8::MsgHdr& hdr, const cs::CMGuildAgreeInvite& msg); long long GuildId() { return guild_id_; } + int GuildLv() { return guild_lv_; } const std::string GuildName() { return guild_name_; } int GetMemberJob(const std::string& account_id); int Status() { return guild_status_; } diff --git a/server/imserver/guildmgr.h b/server/imserver/guildmgr.h index d5bfeae..8b7a248 100644 --- a/server/imserver/guildmgr.h +++ b/server/imserver/guildmgr.h @@ -9,6 +9,7 @@ namespace ss class SS_IM_PushGuildUserOnlineState; class SS_IM_GuildRecalcRedPoint; class SS_IM_GuildNewApply; + class SS_IM_ApplyChangeResponse; } class Guild; diff --git a/server/imserver/handlermgr.cc b/server/imserver/handlermgr.cc index e4e8b9d..8d4ca7a 100644 --- a/server/imserver/handlermgr.cc +++ b/server/imserver/handlermgr.cc @@ -44,10 +44,12 @@ void HandlerMgr::RegisterNetMsgHandlers() RegisterNetMsgHandler(&immsghandler, &SyncHelper::_SS_IM_FriendDeleteResponse); RegisterNetMsgHandler(&immsghandler, &SyncHelper::_SS_IM_GuildMemberQuitResponse); RegisterNetMsgHandler(&immsghandler, &SyncHelper::_SS_IM_GuildMemberUpdateResponse); + RegisterNetMsgHandler(&immsghandler, &SyncHelper::_SS_IM_ApplyChangeResponse); RegisterNetMsgHandler(&immsghandler, &PlayerMgr::_SS_IM_PushUserOnlineState); RegisterNetMsgHandler(&immsghandler, &PlayerMgr::_SS_IM_RandomUsersResponse); RegisterNetMsgHandler(&immsghandler, &PlayerMgr::_SS_GS_QueryGuildUserOnlineState); RegisterNetMsgHandler(&immsghandler, &PlayerMgr::_SS_GS_PushGuildRedPoint); + RegisterNetMsgHandler(&immsghandler, &PlayerMgr::_SS_GS_ApplyChangeRequest); RegisterNetMsgHandler(&immsghandler, &GuildMgr::_SS_IM_ForwardGuildSMMsg); RegisterNetMsgHandler(&mscmsghandler, &PlayerMgr::_SS_MS_PushUserList); diff --git a/server/imserver/player.cc b/server/imserver/player.cc index 4df3f74..a75e150 100644 --- a/server/imserver/player.cc +++ b/server/imserver/player.cc @@ -114,6 +114,9 @@ void Player::Deserialize(const ss::MFUserDB& user_db) role_data.today_create_guild_times = user_db.role_data().today_create_guild_times(); role_data.save_count = user_db.role_data().save_count(); role_data.last_save_time = user_db.role_data().last_save_time(); + for (auto& pair : user_db.role_data().applyed_guild_list()) { + applyed_guild_hash_[pair.key()] = pair.val(); + } } void Player::Serialize(ss::MFUserDB& user_db) diff --git a/server/imserver/player.h b/server/imserver/player.h index 458d34c..5705325 100644 --- a/server/imserver/player.h +++ b/server/imserver/player.h @@ -210,4 +210,5 @@ private: std::map friend_hash_; std::map black_hash_; std::map apply_hash_; + std::map applyed_guild_hash_; }; diff --git a/server/imserver/playermgr.cc b/server/imserver/playermgr.cc index 42b4b61..5758f72 100644 --- a/server/imserver/playermgr.cc +++ b/server/imserver/playermgr.cc @@ -260,6 +260,11 @@ void PlayerMgr::_SS_GS_PushGuildRedPoint(f8::MsgHdr& hdr, const ss::SS_GS_PushGu } } +void PlayerMgr::_SS_GS_ApplyChangeRequest(f8::MsgHdr& hdr, const ss::SS_GS_ApplyChangeRequest& msg) +{ + +} + void PlayerMgr::_CMLoginOld(f8::MsgHdr& hdr, const cs::CMLoginOld& msg) { cs::CMLogin new_msg; diff --git a/server/imserver/playermgr.h b/server/imserver/playermgr.h index 5c19575..ebf3729 100644 --- a/server/imserver/playermgr.h +++ b/server/imserver/playermgr.h @@ -28,6 +28,7 @@ namespace ss class SS_IM_GuildMemberUpdateResponse; class SS_GS_QueryGuildUserOnlineState; class SS_GS_PushGuildRedPoint; + class SS_GS_ApplyChangeRequest; } class Player; @@ -64,6 +65,7 @@ class PlayerMgr : public a8::Singleton void _SS_GS_QueryGuildUserOnlineState(f8::MsgHdr& hdr, const ss::SS_GS_QueryGuildUserOnlineState& msg); void _SS_GS_PushGuildRedPoint(f8::MsgHdr& hdr, const ss::SS_GS_PushGuildRedPoint& msg); + void _SS_GS_ApplyChangeRequest(f8::MsgHdr& hdr, const ss::SS_GS_ApplyChangeRequest& msg); void _CMLoginOld(f8::MsgHdr& hdr, const cs::CMLoginOld& msg); void _CMLogin(f8::MsgHdr& hdr, const cs::CMLogin& msg); diff --git a/server/imserver/synchelper.cc b/server/imserver/synchelper.cc index 28b7ff7..f2fed88 100644 --- a/server/imserver/synchelper.cc +++ b/server/imserver/synchelper.cc @@ -194,6 +194,11 @@ void SyncHelper::_SS_IM_GuildMemberUpdateResponse(f8::MsgHdr& hdr, const ss::SS_ } } +void SyncHelper::_SS_IM_ApplyChangeResponse(f8::MsgHdr& hdr, const ss::SS_IM_ApplyChangeResponse& msg) +{ + +} + void SyncHelper::RemovePendingRequest(long long seqid) { pending_request_hash_.erase(seqid); @@ -344,3 +349,17 @@ void SyncHelper::InternalSyncGuildMemberQuit(Guild* guild, ); } } + +void SyncHelper::SyncGuildApplyed(Guild* guild, + const std::string& target_id + ) +{ + +} + +void SyncHelper::SyncGuildRefuse(Guild* guild, + const std::string& target_id + ) +{ + +} diff --git a/server/imserver/synchelper.h b/server/imserver/synchelper.h index afd1a88..b26a84e 100644 --- a/server/imserver/synchelper.h +++ b/server/imserver/synchelper.h @@ -12,6 +12,7 @@ namespace ss class SS_IM_GuildMemberQuitResponse; class SS_IM_GuildMemberUpdateRequest; class SS_IM_GuildMemberUpdateResponse; + class SS_IM_ApplyChangeResponse; } class Guild; @@ -52,10 +53,18 @@ public: const std::string& target_id, int reason); + void SyncGuildApplyed(Guild* guild, + const std::string& target_id + ); + void SyncGuildRefuse(Guild* guild, + const std::string& target_id + ); + void _SS_IM_FriendAgreeResponse(f8::MsgHdr& hdr, const ss::SS_IM_FriendAgreeResponse& msg); void _SS_IM_FriendDeleteResponse(f8::MsgHdr& hdr, const ss::SS_IM_FriendDeleteResponse& msg); void _SS_IM_GuildMemberQuitResponse(f8::MsgHdr& hdr, const ss::SS_IM_GuildMemberQuitResponse& msg); void _SS_IM_GuildMemberUpdateResponse(f8::MsgHdr& hdr, const ss::SS_IM_GuildMemberUpdateResponse& msg); + void _SS_IM_ApplyChangeResponse(f8::MsgHdr& hdr, const ss::SS_IM_ApplyChangeResponse& msg); private: diff --git a/server/tools/protobuild/cs_proto.proto b/server/tools/protobuild/cs_proto.proto index 0cffee3..b33cefa 100644 --- a/server/tools/protobuild/cs_proto.proto +++ b/server/tools/protobuild/cs_proto.proto @@ -21,6 +21,13 @@ message MFStringTuple repeated string values = 1; //values } +//int64 pair +message MFPairInt64 +{ + optional int64 key = 1; //key + optional int64 val = 2; //val +} + //分页信息 message MFPaging { @@ -554,6 +561,7 @@ message SMGuildMemberList optional string errmsg = 2; //错误信息 optional MFPaging paging = 3; //分页信息 repeated MFUserInfo member_list = 4; //公会成员列表 + optional int32 guild_lv = 5; //公会等级 } //获取公会申请列表 @@ -568,6 +576,7 @@ message SMGuildApplyList optional string errmsg = 2; //错误消息 optional MFPaging paging = 3; //分页信息回传 repeated MFGuildApply apply_list = 4; //申请加公会友列表 + optional int32 guild_lv = 5; //公会等级 } //公会动态(日志) diff --git a/server/tools/protobuild/ss_msgid.proto b/server/tools/protobuild/ss_msgid.proto index eb1678f..64b40f7 100644 --- a/server/tools/protobuild/ss_msgid.proto +++ b/server/tools/protobuild/ss_msgid.proto @@ -53,4 +53,6 @@ enum SSMessageId_e _SS_IM_GuildRecalcRedPoint = 1038; _SS_GS_PushGuildRedPoint = 1039; _SS_IM_GuildNewApply = 1041; + _SS_GS_ApplyChangeRequest = 1042; + _SS_IM_ApplyChangeResponse = 1043; } diff --git a/server/tools/protobuild/ss_proto.proto b/server/tools/protobuild/ss_proto.proto index 45ac95a..7a127e0 100755 --- a/server/tools/protobuild/ss_proto.proto +++ b/server/tools/protobuild/ss_proto.proto @@ -61,7 +61,7 @@ message MFRole optional int32 last_save_time = 3; optional int32 today_apply_guild_times = 4; optional int32 today_create_guild_times = 5; - repeated int64 applyed_guild_list = 6; + repeated cs.MFPairInt64 applyed_guild_list = 6; } message MFGroupMemberDB @@ -393,4 +393,17 @@ message SS_IM_GuildNewApply { optional MFIMMsgConext context = 1; optional int64 guild_id = 2; -} \ No newline at end of file +} + +message SS_GS_ApplyChangeRequest +{ + optional int64 seqid = 1; + optional int64 guild_id = 2; + optional string account_id = 3; + optional int32 is_refuse = 4; +} + +message SS_IM_ApplyChangeResponse +{ + optional int64 seqid = 1; +}