refactor(system): 重构系统服务依赖关系和服务调用方式

This commit is contained in:
2025-12-31 15:54:50 +08:00
parent 467b2a7d93
commit 2182e4bd66
14 changed files with 132 additions and 146 deletions
@@ -43,7 +43,7 @@ public class SystemJobService {
@Autowired @Autowired
private SystemJobMapper systemJobMapper; private SystemJobMapper systemJobMapper;
@Autowired @Autowired
private SystemUserService systemUserService; private SystemUserJobService systemUserJobService;
/** /**
* 创建 * 创建
@@ -115,7 +115,7 @@ public class SystemJobService {
* @param ids / * @param ids /
*/ */
public void verifyBindRelationByIds(Set<Long> ids) { public void verifyBindRelationByIds(Set<Long> ids) {
if (systemUserService.countUserByJobIds(ids) > 0) { if (systemUserJobService.countUserByJobIds(ids) > 0) {
throw new BadRequestException("所选的岗位中存在用户关联, 请解除关联再试!"); throw new BadRequestException("所选的岗位中存在用户关联, 请解除关联再试!");
} }
} }
@@ -157,4 +157,8 @@ public class SystemJobService {
} }
KitExcelExporter.exportSimple(response, "岗位数据", SystemJobExportRowVo.class, rowVos); KitExcelExporter.exportSimple(response, "岗位数据", SystemJobExportRowVo.class, rowVos);
} }
public List<SystemJobTb> listByIds(Set<Long> jobIds) {
return systemJobMapper.selectByIds(jobIds);
}
} }
@@ -19,12 +19,10 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.odboy.framework.context.KitSpringBeanHolder;
import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.constant.SystemYesOrNoChConst; import cn.odboy.system.constant.SystemYesOrNoChConst;
import cn.odboy.system.constant.TransferProtocolConst; import cn.odboy.system.constant.TransferProtocolConst;
import cn.odboy.system.dal.dataobject.SystemMenuTb; import cn.odboy.system.dal.dataobject.SystemMenuTb;
import cn.odboy.system.dal.dataobject.SystemRoleMenuTb;
import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.dataobject.SystemRoleTb;
import cn.odboy.system.dal.model.SystemMenuExportRowVo; import cn.odboy.system.dal.model.SystemMenuExportRowVo;
import cn.odboy.system.dal.model.SystemMenuMetaVo; import cn.odboy.system.dal.model.SystemMenuMetaVo;
@@ -32,7 +30,6 @@ import cn.odboy.system.dal.model.SystemMenuVo;
import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.dal.model.SystemQueryMenuArgs;
import cn.odboy.system.dal.model.SystemRoleVo; import cn.odboy.system.dal.model.SystemRoleVo;
import cn.odboy.system.dal.mysql.SystemMenuMapper; import cn.odboy.system.dal.mysql.SystemMenuMapper;
import cn.odboy.system.dal.mysql.SystemRoleMenuMapper;
import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.framework.permission.core.KitSecurityHelper;
import cn.odboy.util.KitClassUtil; import cn.odboy.util.KitClassUtil;
import cn.odboy.util.xlsx.KitExcelExporter; import cn.odboy.util.xlsx.KitExcelExporter;
@@ -59,8 +56,6 @@ public class SystemMenuService {
@Autowired @Autowired
private SystemMenuMapper systemMenuMapper; private SystemMenuMapper systemMenuMapper;
@Autowired @Autowired
private SystemRoleMenuMapper systemRoleMenuMapper;
@Autowired
private SystemRoleMenuService systemRoleMenuService; private SystemRoleMenuService systemRoleMenuService;
@Autowired @Autowired
private SystemUserRoleService systemUserRoleService; private SystemUserRoleService systemUserRoleService;
@@ -164,7 +159,7 @@ public class SystemMenuService {
List<Long> menuIds = List<Long> menuIds =
menuSet.stream().map(SystemMenuTb::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); menuSet.stream().map(SystemMenuTb::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(menuIds)) { if (CollUtil.isNotEmpty(menuIds)) {
KitSpringBeanHolder.getBean(SystemMenuService.class).deleteRoleMenuByMenuIds(menuIds); systemRoleMenuService.deleteRoleMenuByMenuIds(menuIds);
systemMenuMapper.deleteByIds(menuIds); systemMenuMapper.deleteByIds(menuIds);
} }
for (SystemMenuTb menu : menuSet) { for (SystemMenuTb menu : menuSet) {
@@ -172,15 +167,6 @@ public class SystemMenuService {
} }
} }
@Transactional(rollbackFor = Exception.class)
public void deleteRoleMenuByMenuIds(List<Long> menuIds) {
if (CollUtil.isNotEmpty(menuIds)) {
LambdaQueryWrapper<SystemRoleMenuTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemRoleMenuTb::getMenuId, menuIds);
systemRoleMenuMapper.delete(wrapper);
}
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateMenuSubCnt(Long menuId) { public void updateMenuSubCnt(Long menuId) {
if (menuId != null) { if (menuId != null) {
@@ -86,4 +86,14 @@ public class SystemRoleMenuService {
menuWrapper.orderByAsc(SystemMenuTb::getMenuSort); menuWrapper.orderByAsc(SystemMenuTb::getMenuSort);
return new LinkedHashSet<>(systemMenuMapper.selectList(menuWrapper)); return new LinkedHashSet<>(systemMenuMapper.selectList(menuWrapper));
} }
@Transactional(rollbackFor = Exception.class)
public void deleteRoleMenuByMenuIds(List<Long> menuIds) {
if (CollUtil.isEmpty(menuIds)) {
return;
}
LambdaQueryWrapper<SystemRoleMenuTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemRoleMenuTb::getMenuId, menuIds);
systemRoleMenuMapper.delete(wrapper);
}
} }
@@ -57,8 +57,6 @@ public class SystemRoleService {
@Autowired @Autowired
private SystemRoleDeptService systemRoleDeptService; private SystemRoleDeptService systemRoleDeptService;
@Autowired @Autowired
private SystemUserService systemUserService;
@Autowired
private SystemUserRoleService systemUserRoleService; private SystemUserRoleService systemUserRoleService;
/** /**
@@ -228,7 +226,7 @@ public class SystemRoleService {
* @param ids / * @param ids /
*/ */
public void verifyBindRelationByIds(Set<Long> ids) { public void verifyBindRelationByIds(Set<Long> ids) {
if (systemUserService.countUserByRoleIds(ids) > 0) { if (systemUserRoleService.countUserByRoleIds(ids) > 0) {
throw new BadRequestException("所选角色存在用户关联, 请解除关联再试!"); throw new BadRequestException("所选角色存在用户关联, 请解除关联再试!");
} }
} }
@@ -297,4 +295,8 @@ public class SystemRoleService {
} }
KitExcelExporter.exportSimple(response, "部门数据", SystemRoleExportRowVo.class, rowVos); KitExcelExporter.exportSimple(response, "部门数据", SystemRoleExportRowVo.class, rowVos);
} }
public List<SystemRoleTb> listByIds(Set<Long> roleIds) {
return systemRoleMapper.selectByIds(roleIds);
}
} }
@@ -55,4 +55,25 @@ public class SystemUserJobService {
systemUserJobMapper.delete(wrapper); systemUserJobMapper.delete(wrapper);
} }
} }
/**
* 根据岗位ID统计用户数量
*
* @param jobIds 岗位ID集合
* @return /
*/
public Long countUserByJobIds(Set<Long> jobIds) {
if (CollUtil.isEmpty(jobIds)) {
return 0L;
}
LambdaQueryWrapper<SystemUserJobTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemUserJobTb::getJobId, jobIds);
return systemUserJobMapper.selectCount(wrapper);
}
public List<SystemUserJobTb> listUserJobByUserId(Long userId) {
LambdaQueryWrapper<SystemUserJobTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemUserJobTb::getUserId, userId);
return systemUserJobMapper.selectList(wrapper);
}
} }
@@ -147,4 +147,19 @@ public class SystemUserRoleService {
throw new BadRequestException("角色权限不足"); throw new BadRequestException("角色权限不足");
} }
} }
public List<SystemUserRoleTb> listUserRoleByUserId(Long userId) {
LambdaQueryWrapper<SystemUserRoleTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemUserRoleTb::getUserId, userId);
return systemUserRoleMapper.selectList(wrapper);
}
public long countUserByRoleIds(Set<Long> ids) {
if (CollUtil.isEmpty(ids)) {
return 0L;
}
LambdaQueryWrapper<SystemUserRoleTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemUserRoleTb::getRoleId, ids);
return systemUserRoleMapper.selectCount(wrapper);
}
} }
@@ -37,12 +37,7 @@ import cn.odboy.system.dal.model.SystemQueryUserArgs;
import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs; import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs;
import cn.odboy.system.dal.model.SystemUserExportRowVo; import cn.odboy.system.dal.model.SystemUserExportRowVo;
import cn.odboy.system.dal.model.SystemUserVo; import cn.odboy.system.dal.model.SystemUserVo;
import cn.odboy.system.dal.mysql.SystemDeptMapper;
import cn.odboy.system.dal.mysql.SystemJobMapper;
import cn.odboy.system.dal.mysql.SystemRoleMapper;
import cn.odboy.system.dal.mysql.SystemUserJobMapper;
import cn.odboy.system.dal.mysql.SystemUserMapper; import cn.odboy.system.dal.mysql.SystemUserMapper;
import cn.odboy.system.dal.mysql.SystemUserRoleMapper;
import cn.odboy.system.dal.redis.SystemUserInfoDAO; import cn.odboy.system.dal.redis.SystemUserInfoDAO;
import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO;
import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.framework.permission.core.KitSecurityHelper;
@@ -78,11 +73,11 @@ public class SystemUserService {
@Autowired @Autowired
private SystemUserMapper systemUserMapper; private SystemUserMapper systemUserMapper;
@Autowired @Autowired
private SystemJobMapper systemJobMapper; private SystemJobService systemJobService;
@Autowired @Autowired
private SystemRoleMapper systemRoleMapper; private SystemRoleService systemRoleService;
@Autowired @Autowired
private SystemDeptMapper systemDeptMapper; private SystemDeptService systemDeptService;
@Autowired @Autowired
private SystemUserJobService systemUserJobService; private SystemUserJobService systemUserJobService;
@Autowired @Autowired
@@ -90,8 +85,6 @@ public class SystemUserService {
@Autowired @Autowired
private SystemEmailService systemEmailService; private SystemEmailService systemEmailService;
@Autowired @Autowired
private SystemDeptService systemDeptService;
@Autowired
private SystemDataService systemDataService; private SystemDataService systemDataService;
@Autowired @Autowired
private SystemUserInfoDAO systemUserInfoDAO; private SystemUserInfoDAO systemUserInfoDAO;
@@ -100,10 +93,6 @@ public class SystemUserService {
@Autowired @Autowired
private KitFileLocalUploadHelper fileUploadPathHelper; private KitFileLocalUploadHelper fileUploadPathHelper;
@Autowired @Autowired
private SystemUserJobMapper systemUserJobMapper;
@Autowired
private SystemUserRoleMapper systemUserRoleMapper;
@Autowired
private AppProperties properties; private AppProperties properties;
@Autowired @Autowired
private PasswordEncoder passwordEncoder; private PasswordEncoder passwordEncoder;
@@ -405,36 +394,6 @@ public class SystemUserService {
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
/**
* 根据岗位ID统计用户数量
*
* @param jobIds 岗位ID集合
* @return /
*/
public Long countUserByJobIds(Set<Long> jobIds) {
if (CollUtil.isEmpty(jobIds)) {
return 0L;
}
LambdaQueryWrapper<SystemUserJobTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemUserJobTb::getJobId, jobIds);
return systemUserJobMapper.selectCount(wrapper);
}
/**
* 根据角色ID统计用户数量
*
* @param roleIds 角色ID集合
* @return /
*/
public Long countUserByRoleIds(Set<Long> roleIds) {
if (CollUtil.isEmpty(roleIds)) {
return 0L;
}
LambdaQueryWrapper<SystemUserRoleTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemUserRoleTb::getRoleId, roleIds);
return systemUserRoleMapper.selectCount(wrapper);
}
/** /**
* 构建用户查询条件 * 构建用户查询条件
* *
@@ -480,25 +439,21 @@ public class SystemUserService {
SystemUserVo userVo = BeanUtil.copyProperties(user, SystemUserVo.class); SystemUserVo userVo = BeanUtil.copyProperties(user, SystemUserVo.class);
// 查询关联的部门信息 // 查询关联的部门信息
if (user.getDeptId() != null) { if (user.getDeptId() != null) {
SystemDeptTb dept = systemDeptMapper.selectById(user.getDeptId()); SystemDeptTb dept = systemDeptService.getDeptById(user.getDeptId());
userVo.setDept(dept); userVo.setDept(dept);
} }
// 查询关联的岗位信息 // 查询关联的岗位信息
LambdaQueryWrapper<SystemUserJobTb> jobWrapper = new LambdaQueryWrapper<>(); List<SystemUserJobTb> userJobs = systemUserJobService.listUserJobByUserId(user.getId());
jobWrapper.eq(SystemUserJobTb::getUserId, user.getId());
List<SystemUserJobTb> userJobs = systemUserJobMapper.selectList(jobWrapper);
if (CollUtil.isNotEmpty(userJobs)) { if (CollUtil.isNotEmpty(userJobs)) {
Set<Long> jobIds = userJobs.stream().map(SystemUserJobTb::getJobId).collect(Collectors.toSet()); Set<Long> jobIds = userJobs.stream().map(SystemUserJobTb::getJobId).collect(Collectors.toSet());
List<SystemJobTb> jobs = systemJobMapper.selectByIds(jobIds); List<SystemJobTb> jobs = systemJobService.listByIds(jobIds);
userVo.setJobs(new LinkedHashSet<>(jobs)); userVo.setJobs(new LinkedHashSet<>(jobs));
} }
// 查询关联的角色信息 // 查询关联的角色信息
LambdaQueryWrapper<SystemUserRoleTb> roleWrapper = new LambdaQueryWrapper<>(); List<SystemUserRoleTb> userRoles = systemUserRoleService.listUserRoleByUserId(user.getId());
roleWrapper.eq(SystemUserRoleTb::getUserId, user.getId());
List<SystemUserRoleTb> userRoles = systemUserRoleMapper.selectList(roleWrapper);
if (CollUtil.isNotEmpty(userRoles)) { if (CollUtil.isNotEmpty(userRoles)) {
Set<Long> roleIds = userRoles.stream().map(SystemUserRoleTb::getRoleId).collect(Collectors.toSet()); Set<Long> roleIds = userRoles.stream().map(SystemUserRoleTb::getRoleId).collect(Collectors.toSet());
List<SystemRoleTb> roles = systemRoleMapper.selectByIds(roleIds); List<SystemRoleTb> roles = systemRoleService.listByIds(roleIds);
userVo.setRoles(new LinkedHashSet<>(roles)); userVo.setRoles(new LinkedHashSet<>(roles));
} }
return userVo; return userVo;
@@ -43,7 +43,7 @@ public class SystemJobService {
@Autowired @Autowired
private SystemJobMapper systemJobMapper; private SystemJobMapper systemJobMapper;
@Autowired @Autowired
private SystemUserService systemUserService; private SystemUserJobService systemUserJobService;
/** /**
* 创建 * 创建
@@ -115,7 +115,7 @@ public class SystemJobService {
* @param ids / * @param ids /
*/ */
public void verifyBindRelationByIds(Set<Long> ids) { public void verifyBindRelationByIds(Set<Long> ids) {
if (systemUserService.countUserByJobIds(ids) > 0) { if (systemUserJobService.countUserByJobIds(ids) > 0) {
throw new BadRequestException("所选的岗位中存在用户关联, 请解除关联再试!"); throw new BadRequestException("所选的岗位中存在用户关联, 请解除关联再试!");
} }
} }
@@ -157,4 +157,8 @@ public class SystemJobService {
} }
KitExcelExporter.exportSimple(response, "岗位数据", SystemJobExportRowVo.class, rowVos); KitExcelExporter.exportSimple(response, "岗位数据", SystemJobExportRowVo.class, rowVos);
} }
public List<SystemJobTb> listByIds(Set<Long> jobIds) {
return systemJobMapper.selectByIds(jobIds);
}
} }
@@ -19,12 +19,10 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.odboy.framework.context.KitSpringBeanHolder;
import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.constant.SystemYesOrNoChConst; import cn.odboy.system.constant.SystemYesOrNoChConst;
import cn.odboy.system.constant.TransferProtocolConst; import cn.odboy.system.constant.TransferProtocolConst;
import cn.odboy.system.dal.dataobject.SystemMenuTb; import cn.odboy.system.dal.dataobject.SystemMenuTb;
import cn.odboy.system.dal.dataobject.SystemRoleMenuTb;
import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.dataobject.SystemRoleTb;
import cn.odboy.system.dal.model.SystemMenuExportRowVo; import cn.odboy.system.dal.model.SystemMenuExportRowVo;
import cn.odboy.system.dal.model.SystemMenuMetaVo; import cn.odboy.system.dal.model.SystemMenuMetaVo;
@@ -32,7 +30,6 @@ import cn.odboy.system.dal.model.SystemMenuVo;
import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.dal.model.SystemQueryMenuArgs;
import cn.odboy.system.dal.model.SystemRoleVo; import cn.odboy.system.dal.model.SystemRoleVo;
import cn.odboy.system.dal.mysql.SystemMenuMapper; import cn.odboy.system.dal.mysql.SystemMenuMapper;
import cn.odboy.system.dal.mysql.SystemRoleMenuMapper;
import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.framework.permission.core.KitSecurityHelper;
import cn.odboy.util.KitClassUtil; import cn.odboy.util.KitClassUtil;
import cn.odboy.util.xlsx.KitExcelExporter; import cn.odboy.util.xlsx.KitExcelExporter;
@@ -59,8 +56,6 @@ public class SystemMenuService {
@Autowired @Autowired
private SystemMenuMapper systemMenuMapper; private SystemMenuMapper systemMenuMapper;
@Autowired @Autowired
private SystemRoleMenuMapper systemRoleMenuMapper;
@Autowired
private SystemRoleMenuService systemRoleMenuService; private SystemRoleMenuService systemRoleMenuService;
@Autowired @Autowired
private SystemUserRoleService systemUserRoleService; private SystemUserRoleService systemUserRoleService;
@@ -164,7 +159,7 @@ public class SystemMenuService {
List<Long> menuIds = List<Long> menuIds =
menuSet.stream().map(SystemMenuTb::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); menuSet.stream().map(SystemMenuTb::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(menuIds)) { if (CollUtil.isNotEmpty(menuIds)) {
KitSpringBeanHolder.getBean(SystemMenuService.class).deleteRoleMenuByMenuIds(menuIds); systemRoleMenuService.deleteRoleMenuByMenuIds(menuIds);
systemMenuMapper.deleteByIds(menuIds); systemMenuMapper.deleteByIds(menuIds);
} }
for (SystemMenuTb menu : menuSet) { for (SystemMenuTb menu : menuSet) {
@@ -172,15 +167,6 @@ public class SystemMenuService {
} }
} }
@Transactional(rollbackFor = Exception.class)
public void deleteRoleMenuByMenuIds(List<Long> menuIds) {
if (CollUtil.isNotEmpty(menuIds)) {
LambdaQueryWrapper<SystemRoleMenuTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemRoleMenuTb::getMenuId, menuIds);
systemRoleMenuMapper.delete(wrapper);
}
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateMenuSubCnt(Long menuId) { public void updateMenuSubCnt(Long menuId) {
if (menuId != null) { if (menuId != null) {
@@ -86,4 +86,14 @@ public class SystemRoleMenuService {
menuWrapper.orderByAsc(SystemMenuTb::getMenuSort); menuWrapper.orderByAsc(SystemMenuTb::getMenuSort);
return new LinkedHashSet<>(systemMenuMapper.selectList(menuWrapper)); return new LinkedHashSet<>(systemMenuMapper.selectList(menuWrapper));
} }
@Transactional(rollbackFor = Exception.class)
public void deleteRoleMenuByMenuIds(List<Long> menuIds) {
if (CollUtil.isEmpty(menuIds)) {
return;
}
LambdaQueryWrapper<SystemRoleMenuTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemRoleMenuTb::getMenuId, menuIds);
systemRoleMenuMapper.delete(wrapper);
}
} }
@@ -57,8 +57,6 @@ public class SystemRoleService {
@Autowired @Autowired
private SystemRoleDeptService systemRoleDeptService; private SystemRoleDeptService systemRoleDeptService;
@Autowired @Autowired
private SystemUserService systemUserService;
@Autowired
private SystemUserRoleService systemUserRoleService; private SystemUserRoleService systemUserRoleService;
/** /**
@@ -228,7 +226,7 @@ public class SystemRoleService {
* @param ids / * @param ids /
*/ */
public void verifyBindRelationByIds(Set<Long> ids) { public void verifyBindRelationByIds(Set<Long> ids) {
if (systemUserService.countUserByRoleIds(ids) > 0) { if (systemUserRoleService.countUserByRoleIds(ids) > 0) {
throw new BadRequestException("所选角色存在用户关联, 请解除关联再试!"); throw new BadRequestException("所选角色存在用户关联, 请解除关联再试!");
} }
} }
@@ -297,4 +295,8 @@ public class SystemRoleService {
} }
KitExcelExporter.exportSimple(response, "部门数据", SystemRoleExportRowVo.class, rowVos); KitExcelExporter.exportSimple(response, "部门数据", SystemRoleExportRowVo.class, rowVos);
} }
public List<SystemRoleTb> listByIds(Set<Long> roleIds) {
return systemRoleMapper.selectByIds(roleIds);
}
} }
@@ -55,4 +55,25 @@ public class SystemUserJobService {
systemUserJobMapper.delete(wrapper); systemUserJobMapper.delete(wrapper);
} }
} }
/**
* 根据岗位ID统计用户数量
*
* @param jobIds 岗位ID集合
* @return /
*/
public Long countUserByJobIds(Set<Long> jobIds) {
if (CollUtil.isEmpty(jobIds)) {
return 0L;
}
LambdaQueryWrapper<SystemUserJobTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemUserJobTb::getJobId, jobIds);
return systemUserJobMapper.selectCount(wrapper);
}
public List<SystemUserJobTb> listUserJobByUserId(Long userId) {
LambdaQueryWrapper<SystemUserJobTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemUserJobTb::getUserId, userId);
return systemUserJobMapper.selectList(wrapper);
}
} }
@@ -147,4 +147,19 @@ public class SystemUserRoleService {
throw new BadRequestException("角色权限不足"); throw new BadRequestException("角色权限不足");
} }
} }
public List<SystemUserRoleTb> listUserRoleByUserId(Long userId) {
LambdaQueryWrapper<SystemUserRoleTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemUserRoleTb::getUserId, userId);
return systemUserRoleMapper.selectList(wrapper);
}
public long countUserByRoleIds(Set<Long> ids) {
if (CollUtil.isEmpty(ids)) {
return 0L;
}
LambdaQueryWrapper<SystemUserRoleTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemUserRoleTb::getRoleId, ids);
return systemUserRoleMapper.selectCount(wrapper);
}
} }
@@ -37,12 +37,7 @@ import cn.odboy.system.dal.model.SystemQueryUserArgs;
import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs; import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs;
import cn.odboy.system.dal.model.SystemUserExportRowVo; import cn.odboy.system.dal.model.SystemUserExportRowVo;
import cn.odboy.system.dal.model.SystemUserVo; import cn.odboy.system.dal.model.SystemUserVo;
import cn.odboy.system.dal.mysql.SystemDeptMapper;
import cn.odboy.system.dal.mysql.SystemJobMapper;
import cn.odboy.system.dal.mysql.SystemRoleMapper;
import cn.odboy.system.dal.mysql.SystemUserJobMapper;
import cn.odboy.system.dal.mysql.SystemUserMapper; import cn.odboy.system.dal.mysql.SystemUserMapper;
import cn.odboy.system.dal.mysql.SystemUserRoleMapper;
import cn.odboy.system.dal.redis.SystemUserInfoDAO; import cn.odboy.system.dal.redis.SystemUserInfoDAO;
import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO;
import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.framework.permission.core.KitSecurityHelper;
@@ -78,11 +73,11 @@ public class SystemUserService {
@Autowired @Autowired
private SystemUserMapper systemUserMapper; private SystemUserMapper systemUserMapper;
@Autowired @Autowired
private SystemJobMapper systemJobMapper; private SystemJobService systemJobService;
@Autowired @Autowired
private SystemRoleMapper systemRoleMapper; private SystemRoleService systemRoleService;
@Autowired @Autowired
private SystemDeptMapper systemDeptMapper; private SystemDeptService systemDeptService;
@Autowired @Autowired
private SystemUserJobService systemUserJobService; private SystemUserJobService systemUserJobService;
@Autowired @Autowired
@@ -90,8 +85,6 @@ public class SystemUserService {
@Autowired @Autowired
private SystemEmailService systemEmailService; private SystemEmailService systemEmailService;
@Autowired @Autowired
private SystemDeptService systemDeptService;
@Autowired
private SystemDataService systemDataService; private SystemDataService systemDataService;
@Autowired @Autowired
private SystemUserInfoDAO systemUserInfoDAO; private SystemUserInfoDAO systemUserInfoDAO;
@@ -100,10 +93,6 @@ public class SystemUserService {
@Autowired @Autowired
private KitFileLocalUploadHelper fileUploadPathHelper; private KitFileLocalUploadHelper fileUploadPathHelper;
@Autowired @Autowired
private SystemUserJobMapper systemUserJobMapper;
@Autowired
private SystemUserRoleMapper systemUserRoleMapper;
@Autowired
private AppProperties properties; private AppProperties properties;
@Autowired @Autowired
private PasswordEncoder passwordEncoder; private PasswordEncoder passwordEncoder;
@@ -405,36 +394,6 @@ public class SystemUserService {
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
/**
* 根据岗位ID统计用户数量
*
* @param jobIds 岗位ID集合
* @return /
*/
public Long countUserByJobIds(Set<Long> jobIds) {
if (CollUtil.isEmpty(jobIds)) {
return 0L;
}
LambdaQueryWrapper<SystemUserJobTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemUserJobTb::getJobId, jobIds);
return systemUserJobMapper.selectCount(wrapper);
}
/**
* 根据角色ID统计用户数量
*
* @param roleIds 角色ID集合
* @return /
*/
public Long countUserByRoleIds(Set<Long> roleIds) {
if (CollUtil.isEmpty(roleIds)) {
return 0L;
}
LambdaQueryWrapper<SystemUserRoleTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemUserRoleTb::getRoleId, roleIds);
return systemUserRoleMapper.selectCount(wrapper);
}
/** /**
* 构建用户查询条件 * 构建用户查询条件
* *
@@ -480,25 +439,21 @@ public class SystemUserService {
SystemUserVo userVo = BeanUtil.copyProperties(user, SystemUserVo.class); SystemUserVo userVo = BeanUtil.copyProperties(user, SystemUserVo.class);
// 查询关联的部门信息 // 查询关联的部门信息
if (user.getDeptId() != null) { if (user.getDeptId() != null) {
SystemDeptTb dept = systemDeptMapper.selectById(user.getDeptId()); SystemDeptTb dept = systemDeptService.getDeptById(user.getDeptId());
userVo.setDept(dept); userVo.setDept(dept);
} }
// 查询关联的岗位信息 // 查询关联的岗位信息
LambdaQueryWrapper<SystemUserJobTb> jobWrapper = new LambdaQueryWrapper<>(); List<SystemUserJobTb> userJobs = systemUserJobService.listUserJobByUserId(user.getId());
jobWrapper.eq(SystemUserJobTb::getUserId, user.getId());
List<SystemUserJobTb> userJobs = systemUserJobMapper.selectList(jobWrapper);
if (CollUtil.isNotEmpty(userJobs)) { if (CollUtil.isNotEmpty(userJobs)) {
Set<Long> jobIds = userJobs.stream().map(SystemUserJobTb::getJobId).collect(Collectors.toSet()); Set<Long> jobIds = userJobs.stream().map(SystemUserJobTb::getJobId).collect(Collectors.toSet());
List<SystemJobTb> jobs = systemJobMapper.selectByIds(jobIds); List<SystemJobTb> jobs = systemJobService.listByIds(jobIds);
userVo.setJobs(new LinkedHashSet<>(jobs)); userVo.setJobs(new LinkedHashSet<>(jobs));
} }
// 查询关联的角色信息 // 查询关联的角色信息
LambdaQueryWrapper<SystemUserRoleTb> roleWrapper = new LambdaQueryWrapper<>(); List<SystemUserRoleTb> userRoles = systemUserRoleService.listUserRoleByUserId(user.getId());
roleWrapper.eq(SystemUserRoleTb::getUserId, user.getId());
List<SystemUserRoleTb> userRoles = systemUserRoleMapper.selectList(roleWrapper);
if (CollUtil.isNotEmpty(userRoles)) { if (CollUtil.isNotEmpty(userRoles)) {
Set<Long> roleIds = userRoles.stream().map(SystemUserRoleTb::getRoleId).collect(Collectors.toSet()); Set<Long> roleIds = userRoles.stream().map(SystemUserRoleTb::getRoleId).collect(Collectors.toSet());
List<SystemRoleTb> roles = systemRoleMapper.selectByIds(roleIds); List<SystemRoleTb> roles = systemRoleService.listByIds(roleIds);
userVo.setRoles(new LinkedHashSet<>(roles)); userVo.setRoles(new LinkedHashSet<>(roles));
} }
return userVo; return userVo;