package service import ( "context" "tydata-server/app/user/model" "github.com/google/uuid" "github.com/zeromicro/go-zero/core/stores/sqlx" ) type UserService struct { userModel model.UserModel userAuthModel model.UserAuthModel } // NewUserService 创建UserService实例 func NewUserService(userModel model.UserModel, userAuthModel model.UserAuthModel) *UserService { return &UserService{ userModel: userModel, userAuthModel: userAuthModel, } } // GenerateUUIDUserId 生成UUID用户ID func (s *UserService) GenerateUUIDUserId(ctx context.Context) (string, error) { id := uuid.NewString() return id, nil } // RegisterUUIDUser 注册UUID用户,返回用户ID func (s *UserService) RegisterUUIDUser(ctx context.Context) (int64, error) { // 生成UUID uuidStr, err := s.GenerateUUIDUserId(ctx) if err != nil { return 0, err } var userId int64 err = s.userModel.Trans(ctx, func(ctx context.Context, session sqlx.Session) error { // 创建用户记录 user := &model.User{} result, err := s.userModel.Insert(ctx, session, user) if err != nil { return err } userId, err = result.LastInsertId() if err != nil { return err } // 创建用户认证记录 userAuth := &model.UserAuth{ UserId: userId, AuthType: model.UserAuthTypeUUID, AuthKey: uuidStr, } _, err = s.userAuthModel.Insert(ctx, session, userAuth) return err }) if err != nil { return 0, err } return userId, nil }