Browse Source

权限 :优化 过滤角色信息

wangdy 8 years ago
parent
commit
baad3db13a

+ 10 - 0
src/main/java/com/uas/platform/b2c/common/account/dao/UserDao.java

@@ -110,4 +110,14 @@ public interface UserDao extends JpaSpecificationExecutor<User>, JpaRepository<U
 	@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") })
 	@Query("select u.userUU from User u inner join u.enterprises as e where e.uu = :enUU and u.userUU = :userUU")
 	public List<Long> findUserByEnUUAndUserUU(@Param("enUU") long enUU, @Param("userUU") long userUU);
+
+	/**
+	 * 按既有id与角色id查找人员信息
+	 *
+	 * @param roleid
+	 * @param userUU
+	 * @return
+	 */
+	@Query(value = "select u.user_uu from sec$userrole_b2c u  where u.role_id = :roleid and u.user_uu in :userUU" ,nativeQuery = true)
+	public List<Long> findUserByRoleAndUsers(@Param("roleid") long roleid, @Param("userUU") Long[] userUU);
 }

+ 1 - 20
src/main/java/com/uas/platform/b2c/common/account/service/impl/UserServiceImpl.java

@@ -224,26 +224,7 @@ public class UserServiceImpl implements UserService {
 		}
 		if (roleId != null){
 			//过滤 角色信息
-			List<Long> usersId2 = new ArrayList(Arrays.asList(new Object[usersId.size()]));
-			Collections.copy(usersId2,usersId);
-			for (Long id : usersId){
-				User user = userDao.findOne(id);
-				int status = 0;
-				for (Role role : user.getRoles()){
-					if (role.getId().equals(roleId)){
-						status++;
-					}
-				}
-				if (status == 0){
-					for(Long x:usersId2){
-						if(x.equals(id)) {
-							usersId2.remove(x);
-							break;
-						}
-					}
-				}
-			}
-			usersId = usersId2;
+			usersId = userDao.findUserByRoleAndUsers(roleId,usersId.toArray(new Long[0]));
 		}
 
 		final List<Long> users = usersId;