Commit aca177f4 authored by 施翔轲's avatar 施翔轲

修复查询部门列表时部门下是否有用户显示不正确的问题

parent 24249ebd
......@@ -41,7 +41,8 @@ public class SysDeptController extends BaseController {
List<SysDept> depts = deptService.selectDeptList(dept);
List<SysDeptVo> deptVos = BeanUtil.copyToList(depts, SysDeptVo.class);
deptVos.forEach(sysDeptVo -> {
sysDeptVo.setExistUsers(deptService.hasChildByDeptId(sysDeptVo.getDeptId()));
//查询该部门及其子部门是否存在用户
sysDeptVo.setExistUsers(deptService.checkAllDeptsAndUsers(sysDeptVo.getDeptId()));
});
return R.ok(deptVos);
}
......@@ -56,7 +57,7 @@ public class SysDeptController extends BaseController {
public R<List<SysDept>> excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) {
List<SysDept> depts = deptService.selectDeptList(new SysDept());
depts.removeIf(d -> d.getDeptId().equals(deptId)
|| StringUtils.splitList(d.getAncestors()).contains(Convert.toStr(deptId)));
|| StringUtils.splitList(d.getAncestors()).contains(Convert.toStr(deptId)));
return R.ok(depts);
}
......@@ -99,7 +100,7 @@ public class SysDeptController extends BaseController {
} else if (dept.getParentId().equals(deptId)) {
return R.fail("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
} else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus())
&& deptService.selectNormalChildrenDeptById(deptId) > 0) {
&& deptService.selectNormalChildrenDeptById(deptId) > 0) {
return R.fail("该部门包含未停用的子部门!");
}
return toAjax(deptService.updateDept(dept));
......
......@@ -71,18 +71,25 @@ public interface ISysDeptService {
* 是否存在部门子节点
*
* @param deptId 部门ID
* @return 结果
* @return 结果 true 存在 false 不存在
*/
boolean hasChildByDeptId(Long deptId);
/**
* 查询部门是否存在用户
* 查询部门是否存在用户
*
* @param deptId 部门ID
* @return 结果 true 存在 false 不存在
*/
boolean checkDeptExistUser(Long deptId);
/**
* 查询该部门及其子部门是否存在用户
* @param deptId 部门ID
* @return 结果 true 存在 false 不存在
*/
Boolean checkAllDeptsAndUsers(Long deptId);
/**
* 校验部门名称是否唯一
*
......
......@@ -8,9 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.dsk.common.constant.CacheNames;
import com.dsk.common.constant.UserConstants;
import com.dsk.system.domain.SysDept;
import com.dsk.system.domain.SysRole;
import com.dsk.system.domain.SysUser;
import com.dsk.common.core.service.DeptService;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.helper.DataBaseHelper;
......@@ -19,6 +16,9 @@ import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.TreeBuildUtils;
import com.dsk.common.utils.redis.CacheUtils;
import com.dsk.common.utils.spring.SpringUtils;
import com.dsk.system.domain.SysDept;
import com.dsk.system.domain.SysRole;
import com.dsk.system.domain.SysUser;
import com.dsk.system.mapper.SysDeptMapper;
import com.dsk.system.mapper.SysRoleMapper;
import com.dsk.system.mapper.SysUserMapper;
......@@ -183,7 +183,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
}
/**
* 查询部门是否存在用户
* 查询部门是否存在用户
*
* @param deptId 部门ID
* @return 结果 true 存在 false 不存在
......@@ -194,6 +194,26 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
.eq(SysUser::getDeptId, deptId));
}
/**
* 查询该部门及其子部门是否存在用户
*
* @param deptId 部门ID
* @return 结果 true 存在 false 不存在
*/
@Override
public Boolean checkAllDeptsAndUsers(Long deptId) {
List<SysDept> childDeptList = baseMapper.selectDeptList(new LambdaQueryWrapper<SysDept>()
.eq(SysDept::getParentId, deptId));
if (!childDeptList.isEmpty()) {
for (SysDept sysDept : childDeptList) {
if (checkDeptExistUser(sysDept.getDeptId())) {
return true;
}
}
}
return checkDeptExistUser(deptId);
}
/**
* 校验部门名称是否唯一
*
......
......@@ -149,19 +149,11 @@ public class SysMenuServiceImpl implements ISysMenuService {
*/
@Override
public List<SysMenu> selectMenuTreeByUserId(Long userId) {
List<SysMenu> menus = null;
List<SysMenu> menus;
if (LoginHelper.isSuperAdmin(userId)) {
//Sass超管
menus = baseMapper.selectMenuTreeAll();
}
// else if (LoginHelper.isTenantAdmin()) {
// //租户管理员
// SysTenantVo sysTenantVo = tenantMapper.selectVoOne(new LambdaQueryWrapper<SysTenant>().eq(SysTenant::getTenantId, LoginHelper.getTenantId()));
// SysTenantPackageVo sysTenantPackageVo = tenantPackageMapper.selectVoOne(new LambdaQueryWrapper<SysTenantPackage>().eq(SysTenantPackage::getPackageId, sysTenantVo.getPackageId()));
// List<Long> menuIds = StringUtils.splitTo(sysTenantPackageVo.getMenuIds(), Convert::toLong);
// menus = baseMapper.selectBatchIds(menuIds);
// }
else {
}else {
//租户下的员工
menus = baseMapper.selectMenuTreeByUserId(userId);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment