Commit c5271f96 authored by suntao's avatar suntao

用户角色查询

parent 5e8c4b3d
...@@ -27,15 +27,18 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat ...@@ -27,15 +27,18 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
User getUserByUsername(String username); User getUserByUsername(String username);
@Query(value = "select user.* from user,user_role_mapping urm where urm.user_id= user.id "+ // @Query(value = "select u.* from user u,user_role_mapping urm where urm.user_id= u.id "+
"and IF ( ?1 =\"\",1=1, user.nickname = ?1) " + // "and IF (?1 =\"\",1=1, u.nickname = ?1) " +
"and IF (?2 =\"\", 1=1, urm.role_id= ?2) " // "and IF (?2 =\"\", 1=1, urm.role_id= ?2) "
+ "ORDER BY ?#{#pageable}", // + "ORDER BY ?#{#pageable}",
countQuery = "select count(user.id) from user,user_role_mapping urm where urm.user_id= user.id "+ // countQuery = "select count(u.id) from user u,user_role_mapping urm where urm.user_id= u.id "+
"and IF ( ?1 =\"\",1=1, user.nickname = ?1) " + // "and IF (?1 =\"\",1=1, u.nickname = ?1) " +
"and IF (?2 =\"\", 1=1, urm.role_id= ?2) ", // "and IF (?2 =\"\", 1=1, urm.role_id= ?2) ",
nativeQuery = true) // nativeQuery = true)
Page<User> getUserByNicknameAndRoleId( String nickname, String roleId, Pageable pageable); // @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 { ...@@ -330,12 +330,29 @@ public class UserServiceImpl implements UserService {
String nickname = queryUserListModel.getNickname(); String nickname = queryUserListModel.getNickname();
Long roleId = queryUserListModel.getRoleId(); 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 = new PageRequest(queryUserListModel.getPageNumber(), queryUserListModel.getPageSize(), new Sort(Sort.Direction.DESC, "id"));
pageRequest); //
// Page<User> userPage = userRepository.getUserByNicknameAndRoleId(pageRequest);
return Result.buildSuccess(userPage); return Result.buildSuccess(page);
} }
@Override @Override
......
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