user.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package user
  2. import (
  3. "context"
  4. v1 "cris/api/user/v1"
  5. "cris/internal/model/do"
  6. "cris/internal/service"
  7. "github.com/gogf/gf/v2/errors/gerror"
  8. "github.com/gogf/gf/v2/frame/g"
  9. "github.com/gogf/gf/v2/util/gconv"
  10. )
  11. type sUser struct{}
  12. func init() {
  13. service.RegisterUser(&sUser{})
  14. }
  15. func (s *sUser) Register(ctx context.Context, req *v1.UserRegisterReq) error {
  16. // 两次密码不一致
  17. if req.ConfirmPassword != req.Password {
  18. return gerror.New("invalid password")
  19. }
  20. m := g.Model("user")
  21. count, err := m.Where("email=?", req.Email).Count()
  22. if err != nil {
  23. return err
  24. }
  25. if count > 0 {
  26. return gerror.New("Email is already in use")
  27. }
  28. var user do.User
  29. err = gconv.Struct(req, &user)
  30. if err != nil {
  31. return gerror.New("register failed")
  32. }
  33. result, err := m.Data(user).Insert()
  34. if err != nil {
  35. return gerror.New("register failed1")
  36. }
  37. if result == nil {
  38. return gerror.New("register failed2")
  39. }
  40. return nil
  41. }
  42. func (s *sUser) Login(ctx context.Context, req *v1.UserLoginReq) error {
  43. // 在这里进行具体的逻辑处理
  44. return nil
  45. }