ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
@@ -142,7 +142,6 @@ SpringUtils.context().publishEvent(logininforEvent); } /** * 构建登录用户 */ @@ -162,6 +161,7 @@ dept = deptService.selectDeptById(user.getDeptId()); } loginUser.setDeptName(ObjectUtil.isNull(dept) ? "" : dept.getDeptName()); loginUser.setDeptCategory(ObjectUtil.isNull(dept) ? "" : dept.getDeptCategory()); List<SysRoleVo> roles = roleService.selectRolesByUserId(user.getUserId()); loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class)); }); ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java
@@ -14,7 +14,6 @@ * * @author Lion Li */ @Data @NoArgsConstructor public class LoginUser implements Serializable { @@ -38,6 +37,11 @@ private Long deptId; /** * 部门类别编码 */ private String deptCategory; /** * 部门名 */ private String deptName; ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java
@@ -35,6 +35,7 @@ public static final String USER_NAME_KEY = "userName"; public static final String DEPT_KEY = "deptId"; public static final String DEPT_NAME_KEY = "deptName"; public static final String DEPT_CATEGORY_KEY = "deptCategory"; public static final String CLIENT_KEY = "clientid"; /** @@ -52,6 +53,7 @@ .setExtra(USER_NAME_KEY, loginUser.getUsername()) .setExtra(DEPT_KEY, loginUser.getDeptId()) .setExtra(DEPT_NAME_KEY, loginUser.getDeptName()) .setExtra(DEPT_CATEGORY_KEY, loginUser.getDeptCategory()) ); StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser); } @@ -100,6 +102,20 @@ } /** * 获取部门名 */ public static String getDeptName() { return Convert.toStr(getExtra(DEPT_NAME_KEY)); } /** * 获取部门类别编码 */ public static String getDeptCategory() { return Convert.toStr(getExtra(DEPT_CATEGORY_KEY)); } /** * 获取当前 Token 的扩展信息 * * @param key 键值 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java
@@ -75,6 +75,8 @@ public R<Void> add(@Validated @RequestBody SysDeptBo dept) { if (!deptService.checkDeptNameUnique(dept)) { return R.fail("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } else if (StringUtils.isNotBlank(dept.getDeptCategory()) && !deptService.checkDeptCategoryUnique(dept)) { return R.fail("新增部门'" + dept.getDeptName() + "'失败,部门类别编码已存在"); } return toAjax(deptService.insertDept(dept)); } @@ -90,6 +92,8 @@ deptService.checkDeptDataScope(deptId); if (!deptService.checkDeptNameUnique(dept)) { return R.fail("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } else if (StringUtils.isNotBlank(dept.getDeptCategory()) && !deptService.checkDeptCategoryUnique(dept)) { return R.fail("修改部门'" + dept.getDeptName() + "'失败,部门类别编码已存在"); } else if (dept.getParentId().equals(deptId)) { return R.fail("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus())) { ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java
@@ -42,6 +42,11 @@ private String parentName; /** * 父部门类别编码 */ private String parentCategory; /** * 祖级列表 */ private String ancestors; ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java
@@ -93,6 +93,14 @@ boolean checkDeptNameUnique(SysDeptBo dept); /** * 校验部门类别编码是否唯一 * * @param dept 部门信息 * @return 结果 */ boolean checkDeptCategoryUnique(SysDeptBo dept); /** * 校验部门是否有数据权限 * * @param deptId 部门id ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
@@ -135,8 +135,11 @@ return null; } SysDeptVo parentDept = baseMapper.selectVoOne(new LambdaQueryWrapper<SysDept>() .select(SysDept::getDeptName).eq(SysDept::getDeptId, dept.getParentId())); dept.setParentName(ObjectUtil.isNotNull(parentDept) ? parentDept.getDeptName() : null); .select(SysDept::getDeptName, SysDept::getDeptCategory).eq(SysDept::getDeptId, dept.getParentId())); if (ObjectUtil.isNotNull(parentDept)) { dept.setParentName(parentDept.getDeptName()); dept.setParentCategory(parentDept.getDeptCategory()); } return dept; } @@ -219,6 +222,20 @@ } /** * 校验部门类别编码是否唯一 * * @param dept 部门信息 * @return 结果 */ @Override public boolean checkDeptCategoryUnique(SysDeptBo dept) { boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysDept>() .eq(SysDept::getDeptCategory, dept.getDeptCategory()) .ne(ObjectUtil.isNotNull(dept.getDeptId()), SysDept::getDeptId, dept.getDeptId())); return !exist; } /** * 校验部门是否有数据权限 * * @param deptId 部门id