java页面回显菜单设置,已有的菜单回显

代码

@Data
@ApiModel("查询权限菜单返回对象")
public class PlatformMenuResp {

    @ApiModelProperty("权限菜单Id")
    private Integer menuId;
    @ApiModelProperty("权限菜单名称")
    private String menuName;
    @ApiModelProperty("权限菜单父Id")
    private Integer parentId;
    @ApiModelProperty("菜单级别,0为顶级菜单")
    private Integer menuLevel;
    @ApiModelProperty("前端路由跳转")
    private String path;
    @ApiModelProperty("true 展示,false 不展示")
    private Boolean isShow = false;

    /**
     * 下级菜单
     */
    @ApiModelProperty("下级菜单")
    private List children;
}

第一种写法 双重for循环

    /**
     * 查询角色菜单信息
     */
    @Override
    public List getPlatformMenuByRoleId(Integer roleId) {
        //查询所有菜单
        List platformMenuResps = platformMenuMapper.platformMenuListData();
        //查询该角色拥有的菜单
        QueryWrapper menuRelWrapper = new QueryWrapper<>();
        menuRelWrapper.eq("role_id", roleId).eq("yn", YnEnums.VALID.getCode());
        List menuIds = platformRoleMenuRelMapper.selectList(menuRelWrapper).stream().map(PlatformRoleMenuRel::getMenuId).collect(Collectors.toList());
        Iterator iterator = platformMenuResps.iterator();
        while (iterator.hasNext()) {
            PlatformMenuResp next = iterator.next();
            for (Integer menuId : menuIds) {
                if (menuId.equals(next.getMenuId())) {
                    next.setIsShow(true);
                }
            }
        }
        //组织菜单树返回
        return getPlatformMenu(platformMenuResps);
    }

第二种写法

    /**
     * 查询角色菜单信息
     */
    @Override
    public List getPlatformMenuByRoleId(Integer roleId) {
        //查询所有菜单
        List platformMenuResps = platformMenuMapper.platformMenuListData();
        //查询该角色拥有的菜单
        QueryWrapper menuRelWrapper = new QueryWrapper<>();
        menuRelWrapper.eq("role_id", roleId).eq("yn", YnEnums.VALID.getCode());
        List menuIds = platformRoleMenuRelMapper.selectList(menuRelWrapper).stream().map(PlatformRoleMenuRel::getMenuId).collect(Collectors.toList());
        if (CollectionUtils.isEmpty(menuIds)) {
            return platformMenuResps;
        }
        platformMenuResps.forEach(rep -> rep.setIsShow(menuIds.contains(rep.getMenuId())));
          //组织菜单树返回
        return getPlatformMenu(platformMenuResps);
    }

这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上。。。

你可能感兴趣的:(java杂谈,java,开发语言)