From 624fd877511d04a776e35a0198d2d416ce6ddfdb Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: 星期四, 16 五月 2024 17:52:16 +0800 Subject: [PATCH] update 优化部门类别编码获取 --- ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java | 8 ++++ ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java | 6 ++ ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java | 16 ++++++++ ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java | 2 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java | 4 ++ ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java | 5 ++ ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java | 21 +++++++++- 7 files changed, 58 insertions(+), 4 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java index 982f9c7..af6e7f5 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java +++ b/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)); }); diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java index e267124..c723e76 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java +++ b/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; diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java index 8e5af46..1e0d8a7 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java +++ b/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 閿�� diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java index 4f5f23f..98b76e4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java +++ b/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())) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java index c56fb09..cb4fb16 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java +++ b/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; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java index bf16642..cd984d8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java +++ b/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 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java index 5054036..f8d5203 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java +++ b/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 -- Gitblit v1.9.3