Optional,一个支持函数式编程的判空容器。最近开发简单应用了一下,代码贴上~
@RequestMapping(value = "/list", method = RequestMethod.GET)
public Result> queryPageList(SysUser sysUser, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
Result> result = new Result<>();
QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysUser, req.getParameterMap());
Page page = new Page(pageNo, pageSize);
IPage pageList = sysUserService.page(page, queryWrapper);
pageList.getRecords().forEach(item -> {
List listRoleNames = new ArrayList<>();
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("user_id", item.getId());
List listSysUserRoles = sysUserRoleService.list(wrapper);
List listRoleIds = listSysUserRoles.stream()
.map(SysUserRole::getRoleId)
.collect(Collectors.toList());
if (!listRoleIds.isEmpty()) {
List sysRoles = sysRoleService.getbaseMapper().selectBatchIds(listRoleIds);
sysRoles.forEach(item1 -> {
// Optional 应用案例
listRoleNames.add(Optional.ofNullable(item1).map(SysRole::getRoleName).orElse(null));
});
}
item.setRoleName(listRoleNames);
});
result.setSuccess(true);
result.setResult(pageList);
return result;
}



