package logic import ( "context" "slowwild/internal/svc" "slowwild/internal/errorx" "slowwild/internal/model" "git.banshen.xyz/huangguangrong/slow_wild_protobuff/slowwild/slowwildserver" "github.com/zeromicro/go-zero/core/logx" ) type GetUserInfoLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewGetUserInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserInfoLogic { return &GetUserInfoLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } // 获取用户信息 func (l *GetUserInfoLogic) GetUserInfo(in *slowwildserver.GetUserInfoReq) (*slowwildserver.GetUserInfoResp, error) { if in.UserId <= 0 || in.QueryUserId <= 0 { return nil, errorx.ErrInvalidParam } // 查询用户基本信息 user, err := l.svcCtx.UserModel.FindOneById(l.ctx, in.QueryUserId) if err == model.ErrNotFound { return nil, errorx.ErrUserNotFound } if err != nil { return nil, errorx.ErrUserQueryFailed } // 查询是否关注了该用户 mutualFollows, err := l.svcCtx.UserFollowModel.CheckMutualFollows(l.ctx, in.UserId, []int64{in.QueryUserId}) if err != nil { return nil, errorx.ErrUserQueryFailed } return &slowwildserver.GetUserInfoResp{ Id: user.ID, Nickname: user.Nickname, Avatar: user.Avatar, Sex: int32(user.Sex), IsFollow: mutualFollows[in.QueryUserId], }, nil }