项目初始化
This commit is contained in:
69
service/user_service.go
Normal file
69
service/user_service.go
Normal file
@@ -0,0 +1,69 @@
|
||||
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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user