This commit is contained in:
aozhiwei 2020-09-17 20:27:57 +08:00
parent b01e8159a1
commit c2456dee43
5 changed files with 50 additions and 11 deletions

View File

@ -37,12 +37,6 @@ bool Guild::IsFull()
return member_hash_.size() < 50;
}
void Guild::Rename(const std::string& new_guild_name)
{
guild_name = new_guild_name;
MarkDirty();
}
void Guild::AddMember(GuildMember* member)
{
if (member_hash_.find(member->account_id) != member_hash_.end()) {
@ -143,6 +137,7 @@ void Guild::_CMGuildRename(int socket_handle, const ss::MFIMMsgConext& context,
guild_name = msg.new_name();
cs::SMGuildRename respmsg;
GuildMgr::Instance()->ForwardGuildSMMsg(socket_handle, context, respmsg);
MarkDirty();
}
void Guild::_CMGuildMemberList(int socket_handle, const ss::MFIMMsgConext& context, const cs::CMGuildMemberList& msg)
@ -153,12 +148,38 @@ void Guild::_CMGuildMemberList(int socket_handle, const ss::MFIMMsgConext& conte
respmsg.mutable_paging()->set_page_size(10);
}
AdjustPaging(respmsg.mutable_paging(), sorted_members_.size());
for (size_t i = respmsg.paging().curr_page() * respmsg.paging().page_size();
i < sorted_members_.size();
++i) {
if (respmsg.member_list().size() >= respmsg.paging().page_size()) {
break;
}
auto p = respmsg.add_member_list();
TypeConvert::Convert(*sorted_members_[i], *p);
}
GuildMgr::Instance()->ForwardGuildSMMsg(socket_handle, context, respmsg);
}
void Guild::_CMGuildLog(int socket_handle, const ss::MFIMMsgConext& context, const cs::CMGuildLog& msg)
{
cs::SMGuildLog respmsg;
*respmsg.mutable_paging() = msg.paging();
if (respmsg.paging().page_size() <= 0) {
respmsg.mutable_paging()->set_page_size(10);
}
AdjustPaging(respmsg.mutable_paging(), logdb_->logs().size());
for (int i = respmsg.paging().curr_page() * respmsg.paging().page_size();
i < logdb_->logs().size();
++i) {
#if 0
if (respmsg.member_list().size() >= respmsg.paging().page_size()) {
break;
}
auto p = respmsg.add_member_list();
TypeConvert::Convert(*sorted_members_[i], *p);
#endif
}
GuildMgr::Instance()->ForwardGuildSMMsg(socket_handle, context, respmsg);
}
void Guild::FillGuildBasic(cs::MFGuildBasic* guild_basic)

View File

@ -67,7 +67,6 @@ class Guild
private:
bool IsFull();
void Rename(const std::string& new_guild_name);
GuildMember* GetMember(const std::string& account_id);
void AddMember(GuildMember* member);
void RemoveMember(const std::string& account_id);
@ -82,6 +81,6 @@ private:
bool dirty_ = false;
timer_list* dirty_timer_ = nullptr;
std::map<std::string, GuildMember*> member_hash_;
std::list<GuildMember*> sorted_members_;
std::vector<GuildMember*> sorted_members_;
ss::MFGuildLogDB* logdb_ = nullptr;
};

View File

@ -68,6 +68,20 @@ void TypeConvert::Convert(const GuildMember& member, ss::MFBaseUserDataDB& base_
base_data_pb.set_base_data_version(member.data_version1);
}
void TypeConvert::Convert(const GuildMember& member, cs::MFBaseUserData& base_data_pb)
{
base_data_pb.set_account_id(member.account_id);
base_data_pb.set_nickname(member.nickname);
base_data_pb.set_avatar_url(member.avatar_url);
base_data_pb.set_sex(member.sex);
base_data_pb.set_last_login_time(member.last_login_time);
base_data_pb.set_guild_job(member.guild_job);
base_data_pb.set_user_value1(member.user_value1);
base_data_pb.set_user_value2(member.user_value2);
base_data_pb.set_user_value3(member.user_value3);
base_data_pb.set_base_data_version(member.data_version1);
}
void TypeConvert::Convert(const ss::MFBaseUserDataDB& base_data_pb, GuildMember& member)
{
member.account_id = base_data_pb.account_id();

View File

@ -23,6 +23,7 @@ class TypeConvert
static void Convert(const GuildMember& member, ss::MFBaseUserDataDB& base_data_pb);
static void Convert(const ss::MFBaseUserDataDB& base_data_pb, GuildMember& member);
static void Convert(const GuildMember& member, cs::MFBaseUserData& base_data_pb);
static void Convert(const cs::MFBaseUserData& base_data_pb, BaseUserData& base_data);
static void Convert(const BaseUserData& base_data, cs::MFBaseUserData& base_data_pb);

View File

@ -39,6 +39,8 @@ message MFBaseUserData
optional int32 sex = 4; // 1 2 0
optional int32 last_login_time = 5; //
optional int64 guild_id = 6; //id
optional string guild_name = 7; //
optional int32 guild_job = 8; //
optional int64 user_value1 = 50; //1
optional int64 user_value2 = 51; //2
@ -466,17 +468,19 @@ message SMGuildMemberList
optional int32 errcode = 1; //
optional string errmsg = 2; //
optional MFPaging paging = 3; //
repeated MFGuildBasic guild_list = 4; //
repeated MFBaseUserData member_list = 4; //
}
//()
message CMGuildLog
{
optional MFPaging paging = 1; //
}
message SMGuildLog
{
optional int32 errcode = 1; //
optional string errmsg = 2; //
optional MFPaging paging = 3; //
/*
values[0]: account_id
values[1]:
@ -484,7 +488,7 @@ message SMGuildLog
values[3]: (unix时间戳)
values[4]:
*/
repeated MFStringTuple logs = 3;
repeated MFStringTuple logs = 4;
}
//