新增客户端管理功能,包括创建、编辑和删除客户端的API,更新用户管理功能,添加用户创建和编辑页面,优化管理员功能,增强用户和客户端的管理体验。
This commit is contained in:
@@ -177,3 +177,72 @@ func (s *AdminService) ListClients(page, pageSize int) ([]models.Client, int64,
|
||||
err := s.db.Offset((page - 1) * pageSize).Limit(pageSize).Find(&clients).Error
|
||||
return clients, total, err
|
||||
}
|
||||
|
||||
// CreateUser 创建新用户
|
||||
func (s *AdminService) CreateUser(username, password, email string) (*models.User, error) {
|
||||
hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
user := &models.User{
|
||||
Username: username,
|
||||
Password: string(hashedPassword),
|
||||
Email: email,
|
||||
IsActive: true,
|
||||
}
|
||||
|
||||
if err := s.db.Create(user).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return user, nil
|
||||
}
|
||||
|
||||
// UpdateUser 更新用户信息
|
||||
func (s *AdminService) UpdateUser(id uint, username, email string, isActive *bool) (*models.User, error) {
|
||||
user := &models.User{}
|
||||
if err := s.db.First(user, id).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if username != "" {
|
||||
user.Username = username
|
||||
}
|
||||
if email != "" {
|
||||
user.Email = email
|
||||
}
|
||||
if isActive != nil {
|
||||
user.IsActive = *isActive
|
||||
}
|
||||
|
||||
if err := s.db.Save(user).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return user, nil
|
||||
}
|
||||
|
||||
// UpdateUserPassword 更新用户密码
|
||||
func (s *AdminService) UpdateUserPassword(id uint, password string) error {
|
||||
hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return s.db.Model(&models.User{}).Where("id = ?", id).Update("password", string(hashedPassword)).Error
|
||||
}
|
||||
|
||||
// DeleteUser 删除用户
|
||||
func (s *AdminService) DeleteUser(id uint) error {
|
||||
return s.db.Delete(&models.User{}, id).Error
|
||||
}
|
||||
|
||||
// GetUser 获取单个用户信息
|
||||
func (s *AdminService) GetUser(id uint) (*models.User, error) {
|
||||
user := &models.User{}
|
||||
if err := s.db.First(user, id).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return user, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user