70 lines
1.6 KiB
Go
70 lines
1.6 KiB
Go
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
|
||
}
|
||
|