Преглед на файлове

根据角色id列表分组获取用户列表

yzc преди 1 година
родител
ревизия
692c8f8aee

+ 9 - 0
hx-tenant/src/main/java/com/fjhx/tenant/controller/tenant/UserTenantController.java

@@ -29,6 +29,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -167,4 +168,12 @@ public class UserTenantController extends BaseController {
         return ajax;
     }
 
+    /**
+     * 根据角色id列表获取用户分组列表
+     */
+    @PostMapping("/getUserListByRoleIds")
+    public Map<Long,List<SysUser>> getUserListByRoleIds(@RequestBody List<Long> roleIds){
+        return userService.getUserListByRoleIds(roleIds);
+    }
+
 }

+ 6 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java

@@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.entity.SysUser;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户表 数据层
@@ -142,4 +143,9 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
 
     List<Long> getDetpIdListByUserId(@Param("userId") Long userId);
 
+    /**
+     * 根据角色id列表获取用户列表
+     */
+    List<SysUser> getUserListByRoleIds(@Param("roleIdList")List<Long> roleIdList);
+
 }

+ 6 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.domain.entity.SysUser;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户 业务层
@@ -256,4 +257,9 @@ public interface ISysUserService extends IService<SysUser> {
      * 根据角色KEY获取用户id列表
      */
     List<Long> getUserIdsByRoleKey(String roleKey);
+
+    /**
+     * 根据角色id列表获取用户分组列表
+     */
+    Map<Long,List<SysUser>> getUserListByRoleIds(List<Long> roleIds);
 }

+ 7 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -626,4 +626,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return userRoleMapper.getUserIdsByRoleKey(roleKey);
     }
 
+    @Override
+    public Map<Long, List<SysUser>> getUserListByRoleIds(List<Long> roleIds) {
+        List<SysUser> userListByRoleIds = baseMapper.getUserListByRoleIds(roleIds);
+        Map<Long, List<SysUser>> userListByRoleIdMap = userListByRoleIds.stream().collect(Collectors.groupingBy(SysUser::getRoleId));
+        return userListByRoleIdMap;
+    }
+
 }

+ 24 - 1
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -385,5 +385,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<update id="updateUserPwdById">
 		update sys_user set password = #{password} where user_id = #{userId}
 	</update>
-	
+
+	<select id="getUserListByRoleIds" resultType="com.ruoyi.common.core.domain.entity.SysUser">
+		SELECT
+		su.user_id,
+		su.dept_id,
+		su.user_name,
+		su.nick_name,
+		su.email,
+		su.avatar,
+		su.phonenumber,
+		su.sex,
+		su.status,
+		su.remark,
+		su.user_code,
+		sur.role_id
+		FROM
+		sys_user_role sur
+		LEFT JOIN sys_user su ON su.user_id = sur.user_id
+		WHERE sur.role_id in
+		<foreach collection="roleIdList" item="roleId" open="(" separator="," close=")">
+			#{roleId}
+		</foreach>
+	</select>
+
 </mapper>