✨ init
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"frank/gin-login-register/models"
|
||||
"gorm.io/gorm"
|
||||
"log"
|
||||
)
|
||||
|
||||
type UserService interface {
|
||||
InitTable()
|
||||
Register(info *models.UserInfo) (*models.UserInfo, error)
|
||||
Login(username string, password string) (*models.UserInfo, error)
|
||||
FindByUsername(username string) (*models.UserInfo, error)
|
||||
UsernameHasRegister(username string) bool
|
||||
UserList() ([]*models.UserInfo, error)
|
||||
}
|
||||
|
||||
type UserServiceImpl struct {
|
||||
db *gorm.DB
|
||||
ctx context.Context
|
||||
}
|
||||
|
||||
func NewUserServiceImpl(db *gorm.DB, ctx context.Context) *UserServiceImpl {
|
||||
return &UserServiceImpl{db: db, ctx: ctx}
|
||||
}
|
||||
|
||||
func (u UserServiceImpl) InitTable() {
|
||||
err := u.db.AutoMigrate(&models.UserInfo{})
|
||||
if err != nil {
|
||||
log.Fatal("初始化表失败, error: ", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (u UserServiceImpl) Register(info *models.UserInfo) (*models.UserInfo, error) {
|
||||
result := u.db.Create(&info)
|
||||
if result.Error != nil {
|
||||
return nil, result.Error
|
||||
}
|
||||
return info, nil
|
||||
}
|
||||
|
||||
func (u UserServiceImpl) Login(username string, password string) (*models.UserInfo, error) {
|
||||
var user *models.UserInfo
|
||||
result := u.db.Where("username=?", username).Where("password=?", password).First(&user)
|
||||
if result.Error != nil {
|
||||
return nil, result.Error
|
||||
}
|
||||
return user, nil
|
||||
}
|
||||
|
||||
func (u UserServiceImpl) UserList() ([]*models.UserInfo, error) {
|
||||
var mds []*models.UserInfo
|
||||
result := u.db.Find(&mds)
|
||||
if result.Error != nil {
|
||||
return nil, result.Error
|
||||
}
|
||||
return mds, nil
|
||||
}
|
||||
|
||||
func (u UserServiceImpl) FindByUsername(username string) (*models.UserInfo, error) {
|
||||
var user *models.UserInfo
|
||||
result := u.db.Where("username=?", username).First(&user)
|
||||
log.Printf("result.RowsAffected: %+v", result)
|
||||
if result.RowsAffected < 1 {
|
||||
return nil, nil
|
||||
}
|
||||
if result.Error != nil {
|
||||
return nil, result.Error
|
||||
}
|
||||
return user, nil
|
||||
}
|
||||
|
||||
func (u UserServiceImpl) UsernameHasRegister(username string) bool {
|
||||
result := u.db.Where("username=?", username).First(&models.UserInfo{})
|
||||
log.Printf("result.RowsAffected: %+v", result.RowsAffected)
|
||||
return result.RowsAffected > 0
|
||||
}
|
||||
Reference in New Issue
Block a user