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