users_register.go 878 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package users
  2. import (
  3. "context"
  4. "star/internal/dao"
  5. "star/internal/model/do"
  6. "github.com/gogf/gf/v2/errors/gerror"
  7. )
  8. type RegisterInput struct {
  9. Username string
  10. Password string
  11. Email string
  12. }
  13. // Register 注册用户
  14. func (u *Users) Register(ctx context.Context, in RegisterInput) error {
  15. if err := u.checkUser(ctx, in.Username); err != nil {
  16. return err
  17. }
  18. _, err := dao.Users.Ctx(ctx).Data(do.Users{
  19. Username: in.Username,
  20. Password: u.encryptPassword(in.Password), // 加密密码
  21. Email: in.Email,
  22. }).Insert()
  23. if err != nil {
  24. return err
  25. }
  26. return nil
  27. }
  28. // checkUser 检查用户是否存在
  29. func (u *Users) checkUser(ctx context.Context, username string) error {
  30. count, err := dao.Users.Ctx(ctx).Where("username", username).Count()
  31. if err != nil {
  32. return err
  33. }
  34. if count > 0 {
  35. return gerror.New("用户名已存在")
  36. }
  37. return nil
  38. }