152 lines
4.1 KiB
Go
152 lines
4.1 KiB
Go
|
package service
|
||
|
|
||
|
import (
|
||
|
"cutego/core/api/v1/request"
|
||
|
"cutego/core/api/v1/response"
|
||
|
dao2 "cutego/core/dao"
|
||
|
models2 "cutego/core/entity"
|
||
|
)
|
||
|
|
||
|
// UserService 用户操作业务逻辑
|
||
|
type UserService struct {
|
||
|
userDao dao2.UserDao
|
||
|
userPostDao dao2.UserPostDao
|
||
|
userRoleDao dao2.UserRoleDao
|
||
|
}
|
||
|
|
||
|
// FindList 查询用户集合业务方法
|
||
|
func (s UserService) FindList(query request.UserQuery) ([]*response.UserResponse, int64) {
|
||
|
return s.userDao.SelectPage(query)
|
||
|
}
|
||
|
|
||
|
// GetUserById 根据id查询用户数据
|
||
|
func (s UserService) GetUserById(parseInt int64) *response.UserResponse {
|
||
|
return s.userDao.GetUserById(parseInt)
|
||
|
}
|
||
|
|
||
|
// GetUserByUserName 根据用户名查询用户
|
||
|
func (s UserService) GetUserByUserName(name string) *models2.SysUser {
|
||
|
user := models2.SysUser{}
|
||
|
user.UserName = name
|
||
|
return s.userDao.GetUserByUserName(user)
|
||
|
}
|
||
|
|
||
|
// CheckEmailUnique 校验邮箱是否存在
|
||
|
func (s UserService) CheckEmailUnique(user request.UserBody) *models2.SysUser {
|
||
|
return s.userDao.CheckEmailUnique(user)
|
||
|
}
|
||
|
|
||
|
// CheckPhoneNumUnique 校验手机号是否存在
|
||
|
func (s UserService) CheckPhoneNumUnique(body request.UserBody) *models2.SysUser {
|
||
|
return s.userDao.CheckPhoneNumUnique(body)
|
||
|
}
|
||
|
|
||
|
// Insert 添加用户业务逻辑
|
||
|
func (s UserService) Save(body request.UserBody) bool {
|
||
|
// 添加用户数据库操作
|
||
|
user := s.userDao.Insert(body)
|
||
|
if user != nil {
|
||
|
s.BindUserPost(user)
|
||
|
s.BindUserRole(user)
|
||
|
return true
|
||
|
}
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
// 新增用户岗位信息
|
||
|
func (s UserService) BindUserPost(user *request.UserBody) {
|
||
|
postIds := user.PostIds
|
||
|
if len(postIds) > 0 {
|
||
|
sysUserPosts := make([]models2.SysUserPost, 0)
|
||
|
for i := 0; i < len(postIds); i++ {
|
||
|
m := models2.SysUserPost{
|
||
|
UserId: user.UserId,
|
||
|
PostId: postIds[i],
|
||
|
}
|
||
|
sysUserPosts = append(sysUserPosts, m)
|
||
|
}
|
||
|
s.userPostDao.BatchInsert(sysUserPosts)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// 新增用户角色信息
|
||
|
func (s UserService) BindUserRole(user *request.UserBody) {
|
||
|
roleIds := user.RoleIds
|
||
|
if len(roleIds) > 0 {
|
||
|
roles := make([]models2.SysUserRole, 0)
|
||
|
for i := 0; i < len(roleIds); i++ {
|
||
|
role := models2.SysUserRole{
|
||
|
RoleId: roleIds[i],
|
||
|
UserId: user.UserId,
|
||
|
}
|
||
|
roles = append(roles, role)
|
||
|
}
|
||
|
s.userRoleDao.BatchInsert(roles)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Edit 修改用户数据
|
||
|
func (s UserService) Edit(body request.UserBody) int64 {
|
||
|
// 删除原有用户和角色关系
|
||
|
s.userRoleDao.Delete(body.UserId)
|
||
|
// 重新添加用具角色关系
|
||
|
s.BindUserRole(&body)
|
||
|
// 删除原有用户岗位关系
|
||
|
s.userPostDao.Delete(body.UserId)
|
||
|
// 添加新的用户岗位关系
|
||
|
s.BindUserPost(&body)
|
||
|
// 修改用户数据
|
||
|
return s.userDao.Update(body)
|
||
|
}
|
||
|
|
||
|
// Remove 根据用户id删除用户相关数据
|
||
|
func (s UserService) Remove(id int64) int64 {
|
||
|
// 删除原有用户和角色关系
|
||
|
s.userRoleDao.Delete(id)
|
||
|
// 删除原有用户岗位关系
|
||
|
s.userPostDao.Delete(id)
|
||
|
// 删除用户数据
|
||
|
return s.userDao.Delete(id)
|
||
|
}
|
||
|
|
||
|
// CheckUserAllowed 校验是否可以修改用户密码
|
||
|
func (s UserService) CheckUserAllowed(body request.UserBody) bool {
|
||
|
user := models2.SysUser{}
|
||
|
return user.IsAdmin(body.UserId)
|
||
|
}
|
||
|
|
||
|
// ResetPwd 修改用户密码
|
||
|
func (s UserService) ResetPwd(body request.UserBody) int64 {
|
||
|
return s.userDao.ResetPwd(body)
|
||
|
}
|
||
|
|
||
|
// GetAllocatedList 查询未分配用户角色列表
|
||
|
func (s UserService) GetAllocatedList(query request.UserQuery) ([]*response.UserResponse, int64) {
|
||
|
return s.userDao.GetAllocatedList(query)
|
||
|
}
|
||
|
|
||
|
// GetUnallocatedList 查询未分配用户角色列表
|
||
|
func (s UserService) GetUnallocatedList(query request.UserQuery) ([]*response.UserResponse, int64) {
|
||
|
return s.userDao.GetUnallocatedList(query)
|
||
|
}
|
||
|
|
||
|
// EditProfile 修改数据
|
||
|
func (s UserService) EditProfile(user request.UserBody) int64 {
|
||
|
return s.userDao.Update(user)
|
||
|
}
|
||
|
|
||
|
// EditPwd 修改密码
|
||
|
func (s UserService) EditPwd(id int64, hash string) bool {
|
||
|
return s.userDao.UpdatePwd(id, hash) > 0
|
||
|
}
|
||
|
|
||
|
// EditAvatar 修改头像
|
||
|
func (s UserService) EditAvatar(info *response.UserResponse) bool {
|
||
|
return s.userDao.UpdateAvatar(info) > 0
|
||
|
}
|
||
|
|
||
|
// EditStatus 修改可用状态
|
||
|
func (s UserService) EditStatus(info request.UserBody) bool {
|
||
|
return s.userDao.UpdateStatus(info) > 0
|
||
|
}
|