This commit is contained in:
aozhiwei 2020-09-17 19:45:11 +08:00
parent f0c6445d06
commit d204076325
2 changed files with 22 additions and 2 deletions

View File

@ -33,7 +33,7 @@ GuildMember* Guild::GetMember(const std::string& account_id)
bool Guild::IsFull() bool Guild::IsFull()
{ {
return member_hash_.size() < 100; return member_hash_.size() < 50;
} }
void Guild::Rename(const std::string& new_guild_name) void Guild::Rename(const std::string& new_guild_name)
@ -102,6 +102,7 @@ void Guild::Deserialize(const std::string& guild_data, const std::string& guild_
TypeConvert::Convert(member_pb.base_data(), *member); TypeConvert::Convert(member_pb.base_data(), *member);
member_hash_[member->account_id] = member; member_hash_[member->account_id] = member;
} }
GenSortedMembers();
} }
void Guild::_CMGuildInfo(int socket_handle, const ss::MFIMMsgConext& context, const cs::CMGuildInfo& msg) void Guild::_CMGuildInfo(int socket_handle, const ss::MFIMMsgConext& context, const cs::CMGuildInfo& msg)
@ -145,7 +146,17 @@ void Guild::_CMGuildRename(int socket_handle, const ss::MFIMMsgConext& context,
void Guild::_CMGuildMemberList(int socket_handle, const ss::MFIMMsgConext& context, const cs::CMGuildMemberList& msg) void Guild::_CMGuildMemberList(int socket_handle, const ss::MFIMMsgConext& context, const cs::CMGuildMemberList& msg)
{ {
cs::SMGuildMemberList respmsg;
*respmsg.mutable_paging() = msg.paging();
if (respmsg.paging().page_size() <= 0) {
respmsg.mutable_paging()->set_page_size(10);
}
respmsg.mutable_paging()->set__total_page(std::ceil(sorted_members_.size() / respmsg.paging().page_size()));
respmsg.mutable_paging()->set__total_count(sorted_members_.size());
if (respmsg.paging().curr_page() >= respmsg.paging()._total_page()) {
respmsg.mutable_paging()->set_curr_page(respmsg.paging()._total_page());
}
GuildMgr::Instance()->ForwardGuildSMMsg(socket_handle, context, respmsg);
} }
void Guild::_CMGuildLog(int socket_handle, const ss::MFIMMsgConext& context, const cs::CMGuildLog& msg) void Guild::_CMGuildLog(int socket_handle, const ss::MFIMMsgConext& context, const cs::CMGuildLog& msg)
@ -253,3 +264,11 @@ void Guild::SaveToDB()
guild_id guild_id
); );
} }
void Guild::GenSortedMembers()
{
sorted_members_.clear();
for (auto& pair : member_hash_) {
sorted_members_.push_back(pair.second);
}
}

View File

@ -76,6 +76,7 @@ private:
void FillGuildDB(ss::MFGuildDB& guild_pb); void FillGuildDB(ss::MFGuildDB& guild_pb);
void SerializeMembers(std::string& guild_members); void SerializeMembers(std::string& guild_members);
void SaveToDB(); void SaveToDB();
void GenSortedMembers();
private: private:
bool dirty_ = false; bool dirty_ = false;