@Override
    public List<SysMenuVO> menuList(SysMenuListDTO dto) {
        QueryWrapper wrapper = QueryWrapper.create()
                .eq(SysMenu::getDelFlag, "F")
                /* .orderBy(SYS_MENU.DEEP.asc())*/
                .orderBy(SysMenuTableDef.SYS_MENU.SORT.asc());

        if (!dto.isShowButton()) {
            wrapper.ne(SysMenu::getMenuTypeCd, "1002003");
        }
        // 菜单全部数据
        List<SysMenu> list = list(wrapper);
        List<SysMenuVO> treeList = new ArrayList<>();
        // 构建树形
        for (SysMenuVO rootNode : getRootNodes(list)) {
            SysMenuVO menuVO = BeanCopyUtils.springCopy(rootNode, SysMenuVO.class);
            SysMenuVO.Meta meta = BeanCopyUtils.springCopy(rootNode, SysMenuVO.Meta.class);
            menuVO.setMeta(meta);
            SysMenuVO childrenNode = getChildrenNode(menuVO, list);
            treeList.add(childrenNode);
        }
        return treeList;
    }
@Test
    void menuList() {
        SysMenuListDTO dto = new SysMenuListDTO();
        List<SysMenuVO> sysMenuVOS = sysMenuService.menuList(dto);
        System.out.println("sysMenuVOS ==" + JsonUtils.toJsonString(sysMenuVOS));
    }