-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
JavaJavaJava
Description
Optional 优化之前
// 查询用户角色关联表
SysUserRoleRel userRoleRel = userRoleRelMapper.selectOne(new LambdaQueryWrapper<SysUserRoleRel>()
.eq(SysUserRoleRel::getUserId, userInfo.getId()));
// 获取用户角色名称
if (Objects.nonNull(userRoleRel)){
// 查询角色信息
SysRoleInfo roleInfo = roleInfoMapper.selectById(userRoleRel.getRoleId());
if (Objects.nonNull(roleInfo)) {
userResp.setRoleName(roleInfo.getRoleName());
userResp.setRoleId(roleInfo.getId());
}
}Optional 优化之后 🤩
// 查询用户角色关联表
SysUserRoleRel userRoleRel = userRoleRelMapper.selectOne(new LambdaQueryWrapper<SysUserRoleRel>()
.eq(SysUserRoleRel::getUserId, userInfo.getId()));
// 获取用户角色名称
Optional.ofNullable(userRoleRel)
.map(SysUserRoleRel::getRoleId)
.map(roleId -> roleInfoMapper.selectById(roleId))
.ifPresent(sysRoleInfo -> {
userResp.setRoleName(sysRoleInfo.getRoleName());
userResp.setRoleId(sysRoleInfo.getId());
});Note
Optional#map 从 SysUserRoleRel::getRoleId -> roleInfoMapper.selectById(roleId) 最后获取到了sysRoleInfo,中间如果有空值就不会执行后面的方法。
Metadata
Metadata
Assignees
Labels
JavaJavaJava