diff --git a/server/imserver/guildmgr.cc b/server/imserver/guildmgr.cc index 19729a7..e49d302 100644 --- a/server/imserver/guildmgr.cc +++ b/server/imserver/guildmgr.cc @@ -15,6 +15,7 @@ #include "player.h" #include "playermgr.h" #include "app.h" +#include "typeconvert.h" #include "framework/cpp/httpclientpool.h" @@ -373,6 +374,15 @@ void GuildMgr::_CMGuildSearch(int socket_handle, const ss::MFIMMsgConext& contex cs::SMGuildSearch respmsg; respmsg.set_errcode(data.At("errcode")->AsXValue()); respmsg.set_errmsg(data.At("errmsg")->AsXValue()); + if (respmsg.errcode() == 0) { + TypeConvert::Convert(*data.At("paging"), respmsg.mutable_paging()); + auto guild_list = data.At("guild_list"); + for (int i = 0; i < guild_list->Size(); ++i) { + auto guild = guild_list->At(i); + auto guild_pb = respmsg.add_guild_list(); + TypeConvert::Convert(*guild, guild_pb); + } + } hum->SendMsg(respmsg); } @@ -435,6 +445,15 @@ void GuildMgr::_CMGuildRank(int socket_handle, const ss::MFIMMsgConext& context, cs::SMGuildRank respmsg; respmsg.set_errcode(data.At("errcode")->AsXValue()); respmsg.set_errmsg(data.At("errmsg")->AsXValue()); + if (respmsg.errcode() == 0) { + TypeConvert::Convert(*data.At("paging"), respmsg.mutable_paging()); + auto guild_list = data.At("guild_list"); + for (int i = 0; i < guild_list->Size(); ++i) { + auto guild = guild_list->At(i); + auto guild_pb = respmsg.add_guild_list(); + TypeConvert::Convert(*guild, guild_pb); + } + } hum->SendMsg(respmsg); } diff --git a/server/imserver/typeconvert.cc b/server/imserver/typeconvert.cc index e6e36db..fa27930 100644 --- a/server/imserver/typeconvert.cc +++ b/server/imserver/typeconvert.cc @@ -22,6 +22,17 @@ void TypeConvert::Convert(const FriendApply& apply, cs::MFFriendApply& apply_pb) Convert(apply.base_data, *apply_pb.mutable_base_data()); } +void TypeConvert::Convert(a8::XObject& xobj, cs::MFGuildBasic* guild_basic) +{ + guild_basic->set_guild_id(xobj.At("guild_id")->AsXValue()); + guild_basic->set_guild_name(xobj.At("guild_name")->AsXValue().GetString()); +} + +void TypeConvert::Convert(a8::XObject& xobj, cs::MFPaging* paging) +{ + +} + void TypeConvert::Convert(const BaseUserData& base_data, ss::MFBaseUserDataDB& base_data_pb) { base_data_pb.set_account_id(base_data.account_id); diff --git a/server/imserver/typeconvert.h b/server/imserver/typeconvert.h index 3cd7946..0f27e57 100644 --- a/server/imserver/typeconvert.h +++ b/server/imserver/typeconvert.h @@ -5,6 +5,8 @@ namespace cs class MFFriendApply; class MFBaseUserData; class MFUserTempCustomData; + class MFGuildBasic; + class MFPaging; } namespace ss @@ -18,6 +20,9 @@ class TypeConvert static void Convert(const cs::MFFriendApply& apply_pb, FriendApply& apply); static void Convert(const FriendApply& apply, cs::MFFriendApply& apply_pb); + static void Convert(a8::XObject& xobj, cs::MFGuildBasic* guild_basic); + static void Convert(a8::XObject& xobj, cs::MFPaging* paging); + static void Convert(const BaseUserData& base_data, ss::MFBaseUserDataDB& base_data_pb); static void Convert(const ss::MFBaseUserDataDB& base_data_pb, BaseUserData& base_data);