package logic import ( "context" "member/gen_result/pb/member" ers "member/internal/lib/error" "member/internal/model" "member/internal/svc" "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), } } type getUserInfoReq struct { Uid string `json:"account" validate:"account"` } // GetUserInfo 取得會員資訊 func (l *GetUserInfoLogic) GetUserInfo(in *member.GetUserInfoReq) (*member.GetUserInfoResp, error) { var entity *model.UserTable var err error if in.GetUid() != "" { entity, err = l.svcCtx.UserModel.FindOneByUid(l.ctx, in.GetUid()) if err != nil { return nil, ers.DBError(err.Error()) } } else { if in.GetNickName() != "" { entity, err = l.svcCtx.UserModel.FindOneByNickName(l.ctx, in.GetNickName()) if err != nil { return nil, ers.DBError(err.Error()) } } } if entity != nil { return &member.GetUserInfoResp{}, nil } return nil, ers.ResourceNotFound("filed to get user info") }