xieb
2023-06-05 4e372402fc814645e1808cd8c0e623c900d5f728
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
@@ -71,6 +71,10 @@
      if (Func.isEmpty(Func.toStr(param.get(PARENT_ID)))) {
         parentId = null;
      }
      // 如果不是超级管理员
      if (!AuthUtil.isAdministrator()){
         param.put("super",1);
      }
      return baseMapper.lazyList(parentId, param);
   }
@@ -146,7 +150,12 @@
   @Override
   public List<TreeNode> grantTree(BladeUser user) {
      List<TreeNode> menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId()));
      Map<String, Object> param = new HashMap<>(1);
      // 如果不是超级管理员
      if(!AuthUtil.isAdministrator()){
         return ForestNodeMerger.merge(tenantPackageTree(baseMapper.grantTreeNew(), user.getTenantId()));
      }
      List<TreeNode> menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTree(param) : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId()));
      return ForestNodeMerger.merge(tenantPackageTree(menuTree, user.getTenantId()));
   }
@@ -308,38 +317,51 @@
      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();
      list.contains(routes.stream().filter(r -> Func.equals(r.getAlias(), "newWeb")).collect(Collectors.toList()));
      if (list.size()>0){
         MenuVO menuVO = list.get(0);
//         int level = 0;
         WebMenuVO webMenuVO = buildWebMenuVO(menuVO);
         return webMenuVO.getChildren();
      }else {
         return null;
      }
   }
   @Override
   public List<MenuVO> getButtonList(String roleId) {
      return baseMapper.getButtonList(Func.toLongList(roleId));
   }
   public WebMenuVO buildWebMenuVO(MenuVO menuVO,int level){
   public WebMenuVO buildWebMenuVO(MenuVO menuVO){
      WebMenuVO webMenuVO = new WebMenuVO();
      Meta meta = new Meta();
      webMenuVO.setMeta(meta);
      webMenuVO.getMeta().setLevel(level);
      level++;
      final int levelTemp = level;
      webMenuVO.getMeta().setLevel(menuVO.getLevel());
//      level++;
//      final int levelTemp = level;
      //设置基础信息
      webMenuVO.setPath(menuVO.getPath());
      webMenuVO.setComponent(menuVO.getComponents());
      webMenuVO.getMeta().setIcon(menuVO.getIconPath());
      webMenuVO.getMeta().setTitle(menuVO.getName());
      webMenuVO.setComponentPath(menuVO.getComponentPath());
      if (Func.equals(menuVO.getHasSubMenu(),"1")){
         webMenuVO.getMeta().setHasSubMenu(true);
      }else {
         webMenuVO.getMeta().setHasSubMenu(false);
      }
      if (menuVO.getChildren().size()>0){
         //有子菜单
         webMenuVO.getMeta().setHasSubMenu(true);
         List<WebMenuVO> list = new ArrayList<>();
         menuVO.getChildren().forEach(menu->{
            WebMenuVO webMenuVO1 = buildWebMenuVO(menu,levelTemp);
            WebMenuVO webMenuVO1 = buildWebMenuVO(menu);
            list.add(webMenuVO1);
         });
         webMenuVO.setChildren(list);
      }else {
         //无子菜单
         webMenuVO.getMeta().setHasSubMenu(false);
      }
      return webMenuVO;