123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package user
- import (
- "context"
- v1 "cris/api/user/v1"
- "cris/internal/dao"
- "cris/internal/model/do"
- "cris/internal/service"
- "github.com/gogf/gf/v2/errors/gerror"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/util/gconv"
- )
- type sUser struct{}
- func init() {
- service.RegisterUser(&sUser{})
- }
- func (s *sUser) Register(ctx context.Context, req *v1.UserRegisterReq) error {
- // 两次密码不一致
- if req.ConfirmPassword != req.Password {
- return gerror.New("invalid password")
- }
- //链式安全model
- m := dao.User.Ctx(ctx)
- count, err := m.Where("email=?", req.Email).Count()
- if err != nil {
- return err
- }
- if count > 0 {
- return gerror.New("Email is already in use")
- }
- var user do.User
- err = gconv.Struct(req, &user)
- if err != nil {
- return gerror.New("register failed")
- }
- result, err := m.Data(user).Insert()
- if err != nil {
- g.Log().Error(ctx, err.Error())
- return gerror.New("register failed")
- }
- if result == nil {
- return gerror.New("register failed")
- }
- return nil
- }
- func (s *sUser) Login(ctx context.Context, req *v1.UserLoginReq) error {
- // 验证邮箱和密码
- m := dao.User.Ctx(ctx).Where("email=?", req.Email)
- record, err := m.One()
- if err != nil {
- return err
- }
- if record == nil {
- return gerror.New("email not found")
- }
- password := gconv.String(record["password"])
- if password != req.Password {
- return gerror.New("password is incorrect")
- }
- return nil
- }
|