go_dreamfactory/modules/friend/api_list.go
2022-08-18 17:10:02 +08:00

85 lines
1.8 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
heroObjId string
)
defer func() {
Resp = &pb.FriendListResp{
List: list,
HeroObjId: heroObjId,
}
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
}
// 助战英雄ID
heroObjId = self.AssistHeroId
// 我的好友
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,
}
// 判断用户在线状态
us := this.moduleFriend.ModuleUser.GetUserSession(userId)
if us == nil || us.SessionId == "" {
base.OfflineTime = user.Offlinetime //离线时间
}
// 判断是否在自己的申请列表中
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
}