获取文章下所有用户ID列表
场景:发布一篇文章,文章设置部门权限,获取这篇文章下拥有权限的用户ID列表
/*** 获取文章下所有用户ID列表
* @param id 文章ID
* @return
*/
public List<Integer> getNewInfoUserIdList2(Integer id) {
//根据Id获取文章详细
Info info = infoDao.getInfoById(id);
if(null==info || null==info.getId()){ return new ArrayList<>(); }
//预存文章下的所有人
List<Integer> userIdList = new ArrayList<Integer>();
//判断文章是否指定权限
if (StringUtil.isNotBlank(info.getBranchIds())) {
//获取文章下的指定部门
List<Integer> branchIdList = infoDao.getInfoAuthBranchIdList(info.getId());
//获取部门下的所有用户
if(null!=branchIdList && branchIdList.size()>0){
userIdList = getBrachUserIdLoopId(branchIdList,userIdList);
}
} else {
//没有指定权限,获取文章下所有用户
userIdList.addAll(userDao.getInnerUserIdList(Paramers.USER_ROLE_IN, null));
}
if(null!=userIdList && userIdList.size()>0){
//去除List中重复的用户值
userIdList = removeDuplicate(userIdList);
}
return userIdList;
}
/**
* 获取部门下的用户
* @param branchIdList 部门ID列表
* @param userIdList 预存用户ID列表
* @return
*/
public List<Integer> getBrachUserIdLoopId(List<Integer> branchIdList,List<Integer> userIdList){
for (Integer branchId : branchIdList) {
//获取部门下的所有用户
userIdList.addAll(userDao.getInnerUserIdList(Paramers.USER_ROLE_IN, branchId));
//查询当前部门是否存在子部门
List<Integer> branchIdTempList = branchDao.getBranchIdByPid(branchId);
if(null!=branchIdTempList && branchIdTempList.size()>0){
getBrachUserIdLoopId(branchIdTempList,userIdList);
}
}
return userIdList;
}
/**
* 去掉List中重复的值
* @param list
* @return
*/
public List<Integer> removeDuplicate(List<Integer> list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
return list;
}
以上是 获取文章下所有用户ID列表 的全部内容, 来源链接: utcz.com/z/516882.html