package user_public import ( "context" "mingyang-admin-app-rpc/types/app" "mingyang-admin-app-api/internal/svc" "mingyang-admin-app-api/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type RegisterLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewRegisterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RegisterLogic { return &RegisterLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *RegisterLogic) Register(req *types.RegisterReq) (resp *types.RegisterResp, err error) { user, err := l.svcCtx.AppRpc.RegisterUser(l.ctx, &app.RegisterUserRequest{ Email: &req.Value, Password: req.PasswordHash, Username: &req.Value, NickName: &req.NickName, Mobile: &req.Value, Captcha: &req.Captcha, VerificationType: req.VerificationType, Gender: req.Gender, RegistrationSource: req.RegisterSource, }) if err != nil { return nil, err } getUser := user.GetUser() token := user.GetAuthToken() return &types.RegisterResp{ User: &types.UserInfo{ Username: getUser.Username, Mobile: getUser.Mobile, NickName: getUser.NickName, Gender: getUser.Gender, Avatar: getUser.Avatar, Birthday: getUser.BirthdayAt, Email: getUser.Email, }, AuthToken: &types.AuthToken{ AccessToken: token.GetAccessToken(), RefreshToken: token.GetRefreshToken(), TokenType: token.GetTokenType(), AccessTokenExpires: token.AccessTokenExpires.Seconds, RefreshTokenExpires: token.RefreshTokenExpires.Seconds, }, }, nil }