go_dreamfactory/modules/friend/api_list.go

73 lines
1.5 KiB
Go

package friend
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/utils"
"google.golang.org/protobuf/proto"
)
func (this *apiComp) ListCheck(session comm.IUserSession, req *pb.FriendListReq) (code pb.ErrorCode) {
return
}
//好友列表
func (this *apiComp) List(session comm.IUserSession, req *pb.FriendListReq) (code pb.ErrorCode, data proto.Message) {
var (
self *pb.DBFriend
Resp *pb.FriendListResp
list []*pb.FriendBase
)
defer func() {
Resp = &pb.FriendListResp{
List: list,
}
err := session.SendMsg(string(this.moduleFriend.GetType()), FriendSubTypeList, Resp)
if err != nil {
code = pb.ErrorCode_SystemError
return
}
}()
self = this.moduleFriend.modelFriend.GetFriend(session.GetUserId())
if self == nil {
code = pb.ErrorCode_FriendSelfNoData
return
}
// 我的好友
for _, userId := range self.FriendIds {
// 获取好友详情
user := this.moduleFriend.ModuleUser.GetUser(userId)
if user == nil {
continue
}
base := &pb.FriendBase{
UserId: userId,
NickName: user.Name,
Level: user.Lv,
Avatar: user.Avatar,
}
// 判断是否在自己的申请列表中
if _, ok := utils.Findx(self.ApplyIds, userId); ok {
base.IsApplied = true
}
// 判断是否已点赞
if _, ok := utils.Findx(self.ZanIds, userId); ok {
base.IsZaned = true
}
//判断是否已接收获赞
if _, ok := utils.Findx(self.GetZandIds, userId); ok {
base.IsGetZaned = true
}
list = append(list, base)
}
return
}