新增客户端管理功能,包括创建、编辑和删除客户端的API,更新用户管理功能,添加用户创建和编辑页面,优化管理员功能,增强用户和客户端的管理体验。

This commit is contained in:
2025-04-17 02:29:16 +08:00
parent d06e45e5d4
commit ff47bb2f6f
11 changed files with 823 additions and 77 deletions

View File

@@ -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
}