diff --git a/chaos_api_data/src/main/java/cn/nopj/chaos_api/mapper/UserMapper.java b/chaos_api_data/src/main/java/cn/nopj/chaos_api/mapper/UserMapper.java index 3061a89..a47c658 100644 --- a/chaos_api_data/src/main/java/cn/nopj/chaos_api/mapper/UserMapper.java +++ b/chaos_api_data/src/main/java/cn/nopj/chaos_api/mapper/UserMapper.java @@ -91,7 +91,6 @@ public interface UserMapper extends BaseMapper { """) List findRolesByUserId(@Param("userId") Long userId); - @Select("SELECT * FROM t_user WHERE username = #{username} ") @Results({ @Result(id = true, property = "id", column = "id"), @@ -103,24 +102,31 @@ public interface UserMapper extends BaseMapper { many = @Many(select = "findRolesByUserId")) }) User findUserWithRolesByUsername(String username); + /** * 分页查询用户,并携带角色信息 - * MyBatis-Plus 会自动处理 Page 参数进行物理分页 - * @param page 分页对象 - * @param keyword 搜索关键词 (可选) - * @return 分页后的用户列表 (包含角色) + * 增加了 roleId 过滤 */ @Select(""" - - """) + +""") @Results({ @Result(id = true, property = "id", column = "id"), @Result(property = "username", column = "username"), @@ -129,5 +135,7 @@ public interface UserMapper extends BaseMapper { @Result(property = "roles", column = "id", many = @Many(select = "findRolesByUserId")) }) - IPage selectPageWithRoles(Page page, @Param("keyword") String keyword); + IPage selectPageWithRoles(Page page, + @Param("keyword") String keyword, + @Param("roleId") Long roleId); } \ No newline at end of file diff --git a/chaos_api_interface/src/main/java/cn/nopj/chaos_api/service/UserProfileService.java b/chaos_api_interface/src/main/java/cn/nopj/chaos_api/service/UserProfileService.java index b034a21..a953fb6 100644 --- a/chaos_api_interface/src/main/java/cn/nopj/chaos_api/service/UserProfileService.java +++ b/chaos_api_interface/src/main/java/cn/nopj/chaos_api/service/UserProfileService.java @@ -89,7 +89,7 @@ public interface UserProfileService { * @param pageSize 页大小 * @return 所有用户信息 */ - IPage getAllUsers(Integer pageNum, Integer pageSize); + IPage getAllUsers(Integer pageNum, Integer pageSize,String keyword,Long roleId); /** * 根据用户ID查询用户信息 diff --git a/chaos_api_service/src/main/java/cn/nopj/chaos_api/service/impl/UserProfileServiceImpl.java b/chaos_api_service/src/main/java/cn/nopj/chaos_api/service/impl/UserProfileServiceImpl.java index 2972614..088e596 100644 --- a/chaos_api_service/src/main/java/cn/nopj/chaos_api/service/impl/UserProfileServiceImpl.java +++ b/chaos_api_service/src/main/java/cn/nopj/chaos_api/service/impl/UserProfileServiceImpl.java @@ -153,9 +153,9 @@ public class UserProfileServiceImpl implements UserProfileService { } @Override - public IPage getAllUsers(Integer pageNum, Integer pageSize) { + public IPage getAllUsers(Integer pageNum, Integer pageSize, String keyword, Long roleId) { Page page = new Page<>(pageNum, pageSize); - IPage userPage = userMapper.selectPageWithRoles(page, null); + IPage userPage = userMapper.selectPageWithRoles(page, keyword,roleId); return userPage.convert(UserProfileResponse::new); } diff --git a/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/UserController.java b/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/UserController.java index 7aebf75..9e7f78b 100644 --- a/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/UserController.java +++ b/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/UserController.java @@ -35,8 +35,12 @@ public class UserController { @GetMapping public ApiResult> listUsers( @RequestParam(defaultValue = "1", name = "pageNum") Integer pageNum, - @RequestParam(defaultValue = "10", name = "pageSize") Integer pageSize) { - return ApiResult.success(userProfileService.getAllUsers(pageNum, pageSize)); + @RequestParam(defaultValue = "10", name = "pageSize") Integer pageSize, + @RequestParam(required = false) String keyword, + @RequestParam(required = false) Long roleId + ) { + log.info("获取用户列表 (分页):{}, {}, {}, {}" ,pageNum, pageSize, keyword, roleId); + return ApiResult.success(userProfileService.getAllUsers(pageNum, pageSize, keyword, roleId)); } @GetMapping("/{id}")