2025-05-11 19:39:56 +08:00
|
|
|
|
package service
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
2025-06-09 12:34:52 +08:00
|
|
|
|
"qnc-server/app/main/model"
|
2025-05-11 19:39:56 +08:00
|
|
|
|
|
|
|
|
|
"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
|
|
|
|
|
}
|