1. 代码如下:
```
Set<MenuVO> all = new HashSet<>();
List<Integer> roleIds = SecurityUtils.getRoles();
roleIds.forEach(roleId -> all.addAll(sysMenuService.findMenuByRoleId(roleId)));
PigxUser user = SecurityUtils.getUser();
List<Integer> deptIdByRole = sysDeptService.getDeptIdByRole();
List<HashMap> res = all.stream().parallel()
.filter(m -> StrUtil.isNotBlank(m.getPermission()) && StrUtil.isNotBlank(m.getServiceName()))
.map(m -> {
MenuBadgeParam param = new MenuBadgeParam();
param.setDeptId(user.getDeptId());
param.setUserId(user.getId());
param.setRoleIds(roleIds);
param.setDeptIds(deptIdByRole);
param.setPermission(m.getPermission());
long t1 = System.currentTimeMillis();
Object num = rabbitTemplate.convertSendAndReceive(m.getServiceName() + "-" + user.getGray(), m.getServiceName() + "-" + user.getGray(), param);
log.info("menu---" + num + "-------" + m.getPermission() + "------time:" + (System.currentTimeMillis() - t1));
HashMap<Object, Object> map = new HashMap<>();
map.put("permission", m.getPermission());
if (Objects.isNull(num)) {
map.put("menuBadgeNum", 0);
} else {
try {
map.put("menuBadgeNum", num);
} catch (Exception ex) {
map.put("menuBadgeNum", 0);
}
}
return map;
}).collect(Collectors.toList());
return R.ok(res);
返回结果如下: menu---null-------examineFire_pc------time:5271
menu---null-------zsck_btn------time:5476