feat: 删除不需要文件夹
This commit is contained in:
150
features/sys_user/service/service_sys_user.go
Normal file
150
features/sys_user/service/service_sys_user.go
Normal file
@@ -0,0 +1,150 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
sysUserModel "ems.agt/features/sys_user/model"
|
||||
sysuserrole "ems.agt/features/sys_user_role"
|
||||
)
|
||||
|
||||
// 实例化服务层 ServiceSysUser 结构体
|
||||
var NewServiceSysUser = &ServiceSysUser{
|
||||
sysUserRepository: NewRepoSysUser,
|
||||
sysUserRoleRepository: sysuserrole.NewRepoSysUserRole,
|
||||
}
|
||||
|
||||
// ServiceSysUser 用户 服务层处理
|
||||
type ServiceSysUser struct {
|
||||
// 用户服务
|
||||
sysUserRepository *RepoSysUser
|
||||
// 用户与角色服务
|
||||
sysUserRoleRepository *sysuserrole.RepoSysUserRole
|
||||
}
|
||||
|
||||
// SelectUserPage 根据条件分页查询用户列表
|
||||
func (r *ServiceSysUser) SelectUserPage(query map[string]any) map[string]any {
|
||||
return r.sysUserRepository.SelectUserPage(query)
|
||||
}
|
||||
|
||||
// SelectUserList 根据条件查询用户列表
|
||||
func (r *ServiceSysUser) SelectUserList(sysUser sysUserModel.SysUser) []sysUserModel.SysUser {
|
||||
return []sysUserModel.SysUser{}
|
||||
}
|
||||
|
||||
// SelectAllocatedPage 根据条件分页查询分配用户角色列表
|
||||
func (r *ServiceSysUser) SelectAllocatedPage(query map[string]any) map[string]any {
|
||||
return r.sysUserRepository.SelectAllocatedPage(query)
|
||||
}
|
||||
|
||||
// SelectUserByUserName 通过用户名查询用户
|
||||
func (r *ServiceSysUser) SelectUserByUserName(userName string) sysUserModel.SysUser {
|
||||
return r.sysUserRepository.SelectUserByUserName(userName)
|
||||
}
|
||||
|
||||
// SelectUserById 通过用户ID查询用户
|
||||
func (r *ServiceSysUser) SelectUserById(userId string) sysUserModel.SysUser {
|
||||
if userId == "" {
|
||||
return sysUserModel.SysUser{}
|
||||
}
|
||||
users := r.sysUserRepository.SelectUserByIds([]string{userId})
|
||||
if len(users) > 0 {
|
||||
return users[0]
|
||||
}
|
||||
return sysUserModel.SysUser{}
|
||||
}
|
||||
|
||||
// InsertUser 新增用户信息
|
||||
func (r *ServiceSysUser) InsertUser(sysUser sysUserModel.SysUser) string {
|
||||
// 新增用户信息
|
||||
insertId := r.sysUserRepository.InsertUser(sysUser)
|
||||
if insertId != "" {
|
||||
// 新增用户角色信息
|
||||
r.insertUserRole(insertId, sysUser.RoleIDs)
|
||||
}
|
||||
return insertId
|
||||
}
|
||||
|
||||
// insertUserRole 新增用户角色信息
|
||||
func (r *ServiceSysUser) insertUserRole(userId string, roleIds []string) int64 {
|
||||
if userId == "" || len(roleIds) <= 0 {
|
||||
return 0
|
||||
}
|
||||
|
||||
sysUserRoles := []sysuserrole.SysUserRole{}
|
||||
for _, roleId := range roleIds {
|
||||
// 管理员角色禁止操作,只能通过配置指定用户ID分配
|
||||
if roleId == "" || roleId == "1" {
|
||||
continue
|
||||
}
|
||||
sysUserRoles = append(sysUserRoles, sysuserrole.NewSysUserRole(userId, roleId))
|
||||
}
|
||||
|
||||
return r.sysUserRoleRepository.BatchUserRole(sysUserRoles)
|
||||
}
|
||||
|
||||
// UpdateUser 修改用户信息
|
||||
func (r *ServiceSysUser) UpdateUser(sysUser sysUserModel.SysUser) int64 {
|
||||
return r.sysUserRepository.UpdateUser(sysUser)
|
||||
}
|
||||
|
||||
// UpdateUserAndRolePost 修改用户信息同时更新角色和岗位
|
||||
func (r *ServiceSysUser) UpdateUserAndRolePost(sysUser sysUserModel.SysUser) int64 {
|
||||
userId := fmt.Sprint(sysUser.Id)
|
||||
// 删除用户与角色关联
|
||||
r.sysUserRoleRepository.DeleteUserRole([]string{userId})
|
||||
// 新增用户角色信息
|
||||
r.insertUserRole(userId, sysUser.RoleIDs)
|
||||
return r.sysUserRepository.UpdateUser(sysUser)
|
||||
}
|
||||
|
||||
// DeleteUserByIds 批量删除用户信息
|
||||
func (r *ServiceSysUser) DeleteUserByIds(userIds []string) (int64, error) {
|
||||
// 检查是否存在
|
||||
users := r.sysUserRepository.SelectUserByIds(userIds)
|
||||
if len(users) <= 0 {
|
||||
return 0, errors.New("没有权限访问用户数据!")
|
||||
}
|
||||
if len(users) == len(userIds) {
|
||||
// 删除用户与角色关联
|
||||
r.sysUserRoleRepository.DeleteUserRole(userIds)
|
||||
// ... 注意其他userId进行关联的表
|
||||
// 删除用户
|
||||
rows := r.sysUserRepository.DeleteUserByIds(userIds)
|
||||
return rows, nil
|
||||
}
|
||||
return 0, errors.New("删除用户信息失败!")
|
||||
}
|
||||
|
||||
// CheckUniqueUserName 校验用户名称是否唯一
|
||||
func (r *ServiceSysUser) CheckUniqueUserName(accountId, userId string) bool {
|
||||
uniqueId := r.sysUserRepository.CheckUniqueUser(sysUserModel.SysUser{
|
||||
AccountId: accountId,
|
||||
})
|
||||
if uniqueId == userId {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// CheckUniquePhone 校验手机号码是否唯一
|
||||
func (r *ServiceSysUser) CheckUniquePhone(phonenumber, userId string) bool {
|
||||
uniqueId := r.sysUserRepository.CheckUniqueUser(sysUserModel.SysUser{
|
||||
Phone: phonenumber,
|
||||
})
|
||||
if uniqueId == userId {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// CheckUniqueEmail 校验email是否唯一
|
||||
func (r *ServiceSysUser) CheckUniqueEmail(email, userId string) bool {
|
||||
uniqueId := r.sysUserRepository.CheckUniqueUser(sysUserModel.SysUser{
|
||||
Email: email,
|
||||
})
|
||||
if uniqueId == userId {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
Reference in New Issue
Block a user