From 6ea2a2fc515d565556d8bf3ab8ad3e1cf07d1f5e Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 09 九月 2024 11:37:02 +0800
Subject: [PATCH] update 优化 统一sql文件命名方式
---
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java | 77 +++++++++++++++++++++++++++++++-------
1 files changed, 63 insertions(+), 14 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
index c38d0d0..8c6d1d5 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
@@ -26,10 +26,7 @@
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.helper.DataBaseHelper;
import org.dromara.common.satoken.utils.LoginHelper;
-import org.dromara.system.domain.SysDept;
-import org.dromara.system.domain.SysUser;
-import org.dromara.system.domain.SysUserPost;
-import org.dromara.system.domain.SysUserRole;
+import org.dromara.system.domain.*;
import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.domain.vo.SysPostVo;
import org.dromara.system.domain.vo.SysRoleVo;
@@ -45,6 +42,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* 鐢ㄦ埛 涓氬姟灞傚鐞�
@@ -473,17 +471,14 @@
*/
private void insertUserRole(Long userId, Long[] roleIds, boolean clear) {
if (ArrayUtil.isNotEmpty(roleIds)) {
- // 鍒ゆ柇鏄惁鍏锋湁姝よ鑹茬殑鎿嶄綔鏉冮檺
- List<SysRoleVo> roles = roleMapper.selectRoleList(new LambdaQueryWrapper<>());
- if (CollUtil.isEmpty(roles)) {
- throw new ServiceException("娌℃湁鏉冮檺璁块棶瑙掕壊鐨勬暟鎹�");
- }
- List<Long> roleList = StreamUtils.toList(roles, SysRoleVo::getRoleId);
+ List<Long> roleList = new ArrayList<>(List.of(roleIds));
if (!LoginHelper.isSuperAdmin(userId)) {
roleList.remove(UserConstants.SUPER_ADMIN_ID);
}
- List<Long> canDoRoleList = StreamUtils.filter(List.of(roleIds), roleList::contains);
- if (CollUtil.isEmpty(canDoRoleList)) {
+ // 鍒ゆ柇鏄惁鍏锋湁姝よ鑹茬殑鎿嶄綔鏉冮檺
+ List<SysRoleVo> roles = roleMapper.selectRoleList(
+ new QueryWrapper<SysRole>().in("r.role_id", roleList));
+ if (CollUtil.isEmpty(roles)) {
throw new ServiceException("娌℃湁鏉冮檺璁块棶瑙掕壊鐨勬暟鎹�");
}
if (clear) {
@@ -491,7 +486,7 @@
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
}
// 鏂板鐢ㄦ埛涓庤鑹茬鐞�
- List<SysUserRole> list = StreamUtils.toList(canDoRoleList, roleId -> {
+ List<SysUserRole> list = StreamUtils.toList(roleList, roleId -> {
SysUserRole ur = new SysUserRole();
ur.setUserId(userId);
ur.setRoleId(roleId);
@@ -634,6 +629,12 @@
return ObjectUtil.isNull(sysUser) ? null : sysUser.getEmail();
}
+ /**
+ * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛鍒楄〃
+ *
+ * @param userIds 鐢ㄦ埛ids
+ * @return 鐢ㄦ埛鍒楄〃
+ */
@Override
public List<UserDTO> selectListByIds(List<Long> userIds) {
if (CollUtil.isEmpty(userIds)) {
@@ -642,15 +643,63 @@
List<SysUserVo> list = baseMapper.selectVoList(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhonenumber)
.eq(SysUser::getStatus, UserConstants.USER_NORMAL)
- .in(CollUtil.isNotEmpty(userIds), SysUser::getUserId, userIds));
+ .in(SysUser::getUserId, userIds));
return BeanUtil.copyToList(list, UserDTO.class);
}
+ /**
+ * 閫氳繃瑙掕壊ID鏌ヨ鐢ㄦ埛ID
+ *
+ * @param roleIds 瑙掕壊ids
+ * @return 鐢ㄦ埛ids
+ */
@Override
public List<Long> selectUserIdsByRoleIds(List<Long> roleIds) {
+ if (CollUtil.isEmpty(roleIds)) {
+ return List.of();
+ }
List<SysUserRole> userRoles = userRoleMapper.selectList(
new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getRoleId, roleIds));
return StreamUtils.toList(userRoles, SysUserRole::getUserId);
}
+ /**
+ * 閫氳繃瑙掕壊ID鏌ヨ鐢ㄦ埛
+ *
+ * @param roleIds 瑙掕壊ids
+ * @return 鐢ㄦ埛
+ */
+ @Override
+ public List<UserDTO> selectUsersByRoleIds(List<Long> roleIds) {
+ if (CollUtil.isEmpty(roleIds)) {
+ return List.of();
+ }
+
+ // 閫氳繃瑙掕壊ID鑾峰彇鐢ㄦ埛瑙掕壊淇℃伅
+ List<SysUserRole> userRoles = userRoleMapper.selectList(
+ new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getRoleId, roleIds));
+
+ // 鑾峰彇鐢ㄦ埛ID鍒楄〃
+ Set<Long> userIds = StreamUtils.toSet(userRoles, SysUserRole::getUserId);
+
+ return selectListByIds(new ArrayList<>(userIds));
+ }
+
+ /**
+ * 閫氳繃閮ㄩ棬ID鏌ヨ鐢ㄦ埛
+ *
+ * @param deptIds 閮ㄩ棬ids
+ * @return 鐢ㄦ埛
+ */
+ @Override
+ public List<UserDTO> selectUsersByDeptIds(List<Long> deptIds) {
+ if (CollUtil.isEmpty(deptIds)) {
+ return List.of();
+ }
+ List<SysUserVo> list = baseMapper.selectVoList(new LambdaQueryWrapper<SysUser>()
+ .select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhonenumber)
+ .eq(SysUser::getStatus, UserConstants.USER_NORMAL)
+ .in(SysUser::getDeptId, deptIds));
+ return BeanUtil.copyToList(list, UserDTO.class);
+ }
}
--
Gitblit v1.9.3