| | |
| | | package cn.gistack.system.service.impl; |
| | | |
| | | import cn.gistack.system.entity.*; |
| | | import cn.gistack.system.vo.Meta; |
| | | import cn.gistack.system.vo.WebMenuVO; |
| | | import cn.gistack.system.wrapper.MenuWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | |
| | | ); |
| | | } |
| | | Long cnt = baseMapper.selectCount(menuQueryWrapper); |
| | | if (cnt > 0L) { |
| | | throw new ServiceException("菜单名或编号已存在!"); |
| | | } |
| | | //控制不允许重复菜单名 |
| | | // if (cnt > 0L) { |
| | | // throw new ServiceException("菜单名或编号已存在!"); |
| | | // } |
| | | if (menu.getParentId() == null && menu.getId() == null) { |
| | | menu.setParentId(BladeConstant.TOP_PARENT_ID); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<MenuVO> getWebMenu(String roleId) { |
| | | return null; |
| | | public List<WebMenuVO> getWebMenu(String roleId) { |
| | | |
| | | List<MenuVO> routes = routes(roleId, null); |
| | | |
| | | List<MenuVO> list = routes.stream().filter(r -> Func.equals(r.getAlias(), "web")).collect(Collectors.toList()); |
| | | MenuVO menuVO = list.get(0); |
| | | int level = 0; |
| | | WebMenuVO webMenuVO = buildWebMenuVO(menuVO,level); |
| | | return webMenuVO.getChildren(); |
| | | } |
| | | |
| | | |
| | | public WebMenuVO buildWebMenuVO(MenuVO menuVO,int level){ |
| | | WebMenuVO webMenuVO = new WebMenuVO(); |
| | | Meta meta = new Meta(); |
| | | webMenuVO.setMeta(meta); |
| | | webMenuVO.getMeta().setLevel(level); |
| | | level++; |
| | | final int levelTemp = level; |
| | | //设置基础信息 |
| | | webMenuVO.setPath(menuVO.getPath()); |
| | | webMenuVO.setComponent(menuVO.getComponents()); |
| | | webMenuVO.getMeta().setIcon(menuVO.getIconPath()); |
| | | webMenuVO.getMeta().setTitle(menuVO.getName()); |
| | | |
| | | if (menuVO.getChildren().size()>0){ |
| | | //有子菜单 |
| | | webMenuVO.getMeta().setHasSubMenu(true); |
| | | List<WebMenuVO> list = new ArrayList<>(); |
| | | menuVO.getChildren().forEach(menu->{ |
| | | WebMenuVO webMenuVO1 = buildWebMenuVO(menu,levelTemp); |
| | | list.add(webMenuVO1); |
| | | }); |
| | | webMenuVO.setChildren(list); |
| | | }else { |
| | | //无子菜单 |
| | | webMenuVO.getMeta().setHasSubMenu(false); |
| | | } |
| | | |
| | | return webMenuVO; |
| | | |
| | | } |
| | | |
| | | } |