Commit c5271f96 authored by suntao's avatar suntao

用户角色查询

parent 5e8c4b3d
......@@ -27,15 +27,18 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
User getUserByUsername(String username);
@Query(value = "select user.* from user,user_role_mapping urm where urm.user_id= user.id "+
"and IF ( ?1 =\"\",1=1, user.nickname = ?1) " +
"and IF (?2 =\"\", 1=1, urm.role_id= ?2) "
+ "ORDER BY ?#{#pageable}",
countQuery = "select count(user.id) from user,user_role_mapping urm where urm.user_id= user.id "+
"and IF ( ?1 =\"\",1=1, user.nickname = ?1) " +
"and IF (?2 =\"\", 1=1, urm.role_id= ?2) ",
nativeQuery = true)
Page<User> getUserByNicknameAndRoleId( String nickname, String roleId, Pageable pageable);
// @Query(value = "select u.* from user u,user_role_mapping urm where urm.user_id= u.id "+
// "and IF (?1 =\"\",1=1, u.nickname = ?1) " +
// "and IF (?2 =\"\", 1=1, urm.role_id= ?2) "
// + "ORDER BY ?#{#pageable}",
// countQuery = "select count(u.id) from user u,user_role_mapping urm where urm.user_id= u.id "+
// "and IF (?1 =\"\",1=1, u.nickname = ?1) " +
// "and IF (?2 =\"\", 1=1, urm.role_id= ?2) ",
// nativeQuery = true)
// @Query(value = "select u.* from user u left join user_role_mapping on urm where urm.user_id= u.id",
// countQuery = "select count(u.id) from user u left join user_role_mapping on urm where urm.user_id= u.id",
// nativeQuery = true)
// Page<User> getUserByNicknameAndRoleId(Pageable pageable);
}
......@@ -330,12 +330,29 @@ public class UserServiceImpl implements UserService {
String nickname = queryUserListModel.getNickname();
Long roleId = queryUserListModel.getRoleId();
PageRequest pageRequest = new PageRequest(queryUserListModel.getPageNumber(), queryUserListModel.getPageSize(), new Sort(Sort.Direction.DESC, "id"));
Page<User> page = this.userRepository.findAll((root, criteriaQuery, criteriaBuilder) -> {
List<Predicate> predicates = new ArrayList<>();
if (StringUtils.isNotEmpty(queryUserListModel.getNickname())) {
predicates.add(criteriaBuilder.equal(root.get("nickname"), queryUserListModel.getNickname()));
}
if (Objects.nonNull(queryUserListModel.getRoleId())) {
predicates.add(criteriaBuilder.equal(root.get("role").get("id"), queryUserListModel.getRoleId()));
}
criteriaQuery.where(criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()])));
// 指定排序
criteriaQuery.orderBy(criteriaBuilder.desc(root.get("id")));
return criteriaQuery.getRestriction();
}, new PageRequest(queryUserListModel.getPageNumber(), queryUserListModel.getPageSize()));
Page<User> userPage = userRepository.getUserByNicknameAndRoleId(nickname == null ? "" : nickname, roleId == null ? "" : roleId.toString(),
pageRequest);
// PageRequest pageRequest = new PageRequest(queryUserListModel.getPageNumber(), queryUserListModel.getPageSize(), new Sort(Sort.Direction.DESC, "id"));
//
// Page<User> userPage = userRepository.getUserByNicknameAndRoleId(pageRequest);
return Result.buildSuccess(userPage);
return Result.buildSuccess(page);
}
@Override
......
......@@ -19,4 +19,4 @@
<appender-ref ref="CONSOLE" />
</root>
</configuration>
\ No newline at end of file
</configuration>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment