package logic import ( "context" "gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/internal/svc" "gitea.youtukeji.com.cn/youtu/youtu_grpc/app/user/user" "github.com/zeromicro/go-zero/core/logx" ) type FindByIdLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewFindByIdLogic(ctx context.Context, svcCtx *svc.ServiceContext) *FindByIdLogic { return &FindByIdLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } // FindById 创建用户或者获取用户 func (l *FindByIdLogic) FindById(in *user.UserId) (*user.User, error) { userModel, err := l.svcCtx.Query.User.WithContext(l.ctx).Where(l.svcCtx.Query.User.ID.Eq(in.GetUserId())).FirstOrCreate() if err != nil { return nil, err } return &user.User{ ID: userModel.ID, Nickname: userModel.Nickname, Avatar: userModel.Avatar, IsNew: userModel.IsNew == 1, }, nil }