package friend import ( "go_dreamfactory/comm" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" "go_dreamfactory/utils" "google.golang.org/protobuf/proto" ) //搜索 func (this *apiComp) SearchCheck(session comm.IUserSession, req *pb.FriendSearchReq) (code pb.ErrorCode) { if req.NickName == "" { code = pb.ErrorCode_FriendSearchNameEmpty this.moduleFriend.Error("参数错误", log.Fields{"uid": session.GetUserId(), "params": req}) return } return } func (this *apiComp) Search(session comm.IUserSession, req *pb.FriendSearchReq) (code pb.ErrorCode, data proto.Message) { if code = this.SearchCheck(session, req); code != pb.ErrorCode_Success { return } uid := session.GetUserId() resp := &pb.FriendSearchResp{} users, err := this.moduleFriend.ModuleUser.SearchRmoteUser(req.NickName) if err != nil { code = pb.ErrorCode_DBError this.moduleFriend.Error("搜索玩家", log.Fields{"uid": uid, "params": req.NickName, "err": err.Error()}) return } for _, u := range users { // 排除自己 if u.Uid == session.GetUserId() { continue } base := &pb.FriendBase{ UserId: u.Uid, NickName: u.Name, Level: u.Lv, Avatar: u.Avatar, ServerId: u.Sid, } target := this.moduleFriend.modelFriend.GetFriend(u.Uid) if target == nil { continue } if _, ok := utils.Findx(target.ApplyIds,uid); ok { base.IsApplied = true } resp.Friends = append(resp.Friends, base) } if err := session.SendMsg(string(this.moduleFriend.GetType()), FriendSubTypeSearch, resp); err != nil { code = pb.ErrorCode_SystemError } return }