获取文章下所有用户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

回到顶部