Browse Source

feat: add FindOneByPhone and FindOneByUsername

master
dark 1 month ago
parent
commit
194b16c6ec
  1. 52
      backend/model/user_model.go

52
backend/model/user_model.go

@ -32,6 +32,19 @@ func FindOne(ctx context.Context, db *gorm.DB, id int64) (*User, error) {
return &user, nil return &user, nil
} }
// FindOneByCasdoorId 根据 Casdoor ID 查询用户
func FindOneByCasdoorId(ctx context.Context, db *gorm.DB, casdoorId string) (*User, error) {
var user User
result := db.WithContext(ctx).Where("casdoor_id = ?", casdoorId).First(&user)
if result.Error != nil {
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
return nil, ErrNotFound
}
return nil, result.Error
}
return &user, nil
}
// FindOneByEmail 根据邮箱查询用户 // FindOneByEmail 根据邮箱查询用户
func FindOneByEmail(ctx context.Context, db *gorm.DB, email string) (*User, error) { func FindOneByEmail(ctx context.Context, db *gorm.DB, email string) (*User, error) {
var user User var user User
@ -45,6 +58,32 @@ func FindOneByEmail(ctx context.Context, db *gorm.DB, email string) (*User, erro
return &user, nil return &user, nil
} }
// FindOneByPhone 根据手机号查询用户
func FindOneByPhone(ctx context.Context, db *gorm.DB, phone string) (*User, error) {
var user User
result := db.WithContext(ctx).Where("phone = ?", phone).First(&user)
if result.Error != nil {
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
return nil, ErrNotFound
}
return nil, result.Error
}
return &user, nil
}
// FindOneByUsername 根据用户名查询用户
func FindOneByUsername(ctx context.Context, db *gorm.DB, username string) (*User, error) {
var user User
result := db.WithContext(ctx).Where("username = ?", username).First(&user)
if result.Error != nil {
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
return nil, ErrNotFound
}
return nil, result.Error
}
return &user, nil
}
// Update 更新用户 // Update 更新用户
func Update(ctx context.Context, db *gorm.DB, user *User) error { func Update(ctx context.Context, db *gorm.DB, user *User) error {
result := db.WithContext(ctx).Save(user) result := db.WithContext(ctx).Save(user)
@ -57,6 +96,19 @@ func Delete(ctx context.Context, db *gorm.DB, id int64) error {
return result.Error return result.Error
} }
// FindOneByRole 根据角色查询第一个用户
func FindOneByRole(ctx context.Context, db *gorm.DB, role string) (*User, error) {
var user User
result := db.WithContext(ctx).Where("role = ?", role).First(&user)
if result.Error != nil {
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
return nil, ErrNotFound
}
return nil, result.Error
}
return &user, nil
}
// FindList 查询用户列表 // FindList 查询用户列表
func FindList(ctx context.Context, db *gorm.DB, page, pageSize int64, keyword string, status int64) ([]User, int64, error) { func FindList(ctx context.Context, db *gorm.DB, page, pageSize int64, keyword string, status int64) ([]User, int64, error) {
var users []User var users []User

Loading…
Cancel
Save