Files
RelationshipManagement-backend/service/user_service.go

70 lines
1.6 KiB
Go
Raw Normal View History

2025-12-10 19:03:24 +08:00
package service
import (
"RelationshipManagement-backend/dao"
"RelationshipManagement-backend/model"
"errors"
)
// UserService 用户服务
type UserService struct {
userDAO *dao.UserDAO
}
// NewUserService 创建用户服务实例
func NewUserService(userDAO *dao.UserDAO) *UserService {
return &UserService{userDAO: userDAO}
}
// CreateUser 创建用户
func (s *UserService) CreateUser(user *model.User) error {
// 检查用户名是否已存在
_, err := s.userDAO.GetByUsername(user.Username)
if err == nil {
return errors.New("用户名已存在")
}
// 检查邮箱是否已存在
_, err = s.userDAO.GetByEmail(user.Email)
if err == nil {
return errors.New("邮箱已存在")
}
// 创建用户
return s.userDAO.Create(user)
}
// GetUserByID 根据ID获取用户
func (s *UserService) GetUserByID(id uint) (*model.User, error) {
return s.userDAO.GetByID(id)
}
// GetUserByUsername 根据用户名获取用户
func (s *UserService) GetUserByUsername(username string) (*model.User, error) {
return s.userDAO.GetByUsername(username)
}
// UpdateUser 更新用户
func (s *UserService) UpdateUser(user *model.User) error {
return s.userDAO.Update(user)
}
// DeleteUser 删除用户
func (s *UserService) DeleteUser(id uint) error {
return s.userDAO.Delete(id)
}
// ListUsers 获取用户列表
func (s *UserService) ListUsers(page, pageSize int) ([]*model.User, int64, error) {
offset := (page - 1) * pageSize
users, err := s.userDAO.List(offset, pageSize)
if err != nil {
return nil, 0, err
}
// 获取总数这里简化处理实际应该从DAO获取
total := int64(len(users))
return users, total, nil
}