PersonalMain-Golang/internal/logic/UserServiceImpl/userServiceImpl.go

90 lines
2.4 KiB
Go

package UserServiceImpl
import (
"PersonalMain/internal/dao/userDAO"
"PersonalMain/internal/logic/TokenServiceImpl"
"PersonalMain/internal/model/do"
"PersonalMain/internal/model/entity"
"PersonalMain/internal/service/TokenService"
"PersonalMain/utility/ErrorCode"
"PersonalMain/utility/ResultUtil"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
"golang.org/x/crypto/bcrypt"
"time"
)
type DefaultUserImpl struct{}
func tokenService() TokenService.TokenService {
return &TokenServiceImpl.DefaultTokenImpl{}
}
// UserRegister
//
// 用户注册
func (_ *DefaultUserImpl) UserRegister(req *ghttp.Request, userVO *entity.UserRegisterVO) {
// 密码加密
enPassword, err := bcrypt.GenerateFromPassword([]byte(userVO.Password), bcrypt.DefaultCost)
if err == nil {
// 注册用户
newUserDO := do.UserDO{
Id: nil,
UserName: userVO.Username,
DisplayName: nil,
Email: userVO.Email,
Qq: nil,
Password: string(enPassword),
OldPassword: nil,
EmailVerify: false,
CreatedAt: time.Now(),
UpdatedAt: nil,
}
// 注入注册
switch userDAO.InsertUser(newUserDO) {
case "Success":
userVO.Password = ""
userVO.RePassword = ""
ResultUtil.Success(req, "注册成功", userVO)
break
case "UserExist":
ResultUtil.ErrorNoData(req, ErrorCode.UserExist)
case "DatabaseError":
ResultUtil.ErrorNoData(req, ErrorCode.ServerDatabaseInteriorError)
default:
ResultUtil.ErrorNoData(req, ErrorCode.ServerUnknownError)
}
} else {
ResultUtil.ErrorNoData(req, ErrorCode.PasswordEncodeError)
}
}
// UserLogin
//
// 用户登录
func (_ *DefaultUserImpl) UserLogin(req *ghttp.Request, userVO *entity.UserLoginVO) {
// 获取数据库中用户信息
getUserDO := userDAO.GetUser(userVO.User)
if getUserDO != nil {
// 比对密码-=
err := bcrypt.CompareHashAndPassword([]byte(getUserDO.Password), []byte(userVO.Password))
if err == nil {
// TokenServiceImpl 注册更新
getTokenDO := tokenService().LoginToken(req, *getUserDO)
if getTokenDO != nil {
getUserDO.Password = ""
getUserDO.OldPassword = nil
ResultUtil.Success(req, "登录成功", g.Map{"user": getUserDO, "token": getTokenDO})
}
} else {
ResultUtil.ErrorNoData(req, ErrorCode.PasswordNotMatch)
}
} else {
ResultUtil.ErrorNoData(req, ErrorCode.UserNotExist)
}
}
func (_ *DefaultUserImpl) CheckLogin(req *ghttp.Request) {
}