| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.convert.Convert; |
| | | import cn.hutool.core.lang.tree.Tree; |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.ruoyi.common.core.constant.UserConstants; |
| | | import com.ruoyi.common.core.utils.BeanCopyUtils; |
| | | import com.ruoyi.common.core.utils.MapstructUtils; |
| | | import com.ruoyi.common.core.utils.StreamUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.TreeBuildUtils; |
| | |
| | | private final SysMenuMapper baseMapper; |
| | | private final SysRoleMapper roleMapper; |
| | | private final SysRoleMenuMapper roleMenuMapper; |
| | | private final SysTenantPackageMapper sysTenantPackageMapper; |
| | | private final SysTenantPackageMapper tenantPackageMapper; |
| | | |
| | | /** |
| | | * 根据用户查询系统菜单列表 |
| | |
| | | .orderByAsc("m.parent_id") |
| | | .orderByAsc("m.order_num"); |
| | | List<SysMenu> list = baseMapper.selectMenuListByUserId(wrapper); |
| | | menuList = BeanCopyUtils.copyList(list, SysMenuVo.class); |
| | | menuList = MapstructUtils.convert(list, SysMenuVo.class); |
| | | } |
| | | return menuList; |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public List<Long> selectMenuListByPackageId(Long packageId) { |
| | | SysTenantPackage tenantPackage = sysTenantPackageMapper.selectById(packageId); |
| | | SysTenantPackage tenantPackage = tenantPackageMapper.selectById(packageId); |
| | | List<Long> menuIds = StringUtils.splitTo(tenantPackage.getMenuIds(), Convert::toLong); |
| | | if (CollUtil.isEmpty(menuIds)) { |
| | | return List.of(); |
| | |
| | | router.setQuery(menu.getQueryParam()); |
| | | router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); |
| | | List<SysMenu> cMenus = menu.getChildren(); |
| | | if (!cMenus.isEmpty() && UserConstants.TYPE_DIR.equals(menu.getMenuType())) { |
| | | if (CollUtil.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) { |
| | | router.setAlwaysShow(true); |
| | | router.setRedirect("noRedirect"); |
| | | router.setChildren(buildMenus(cMenus)); |
| | |
| | | */ |
| | | @Override |
| | | public int insertMenu(SysMenuBo bo) { |
| | | SysMenu menu = BeanUtil.toBean(bo, SysMenu.class); |
| | | SysMenu menu = MapstructUtils.convert(bo, SysMenu.class); |
| | | return baseMapper.insert(menu); |
| | | } |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public int updateMenu(SysMenuBo bo) { |
| | | SysMenu menu = BeanUtil.toBean(bo, SysMenu.class); |
| | | SysMenu menu = MapstructUtils.convert(bo, SysMenu.class); |
| | | return baseMapper.updateById(menu); |
| | | } |
| | | |
| | |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public String checkMenuNameUnique(SysMenuBo menu) { |
| | | public boolean checkMenuNameUnique(SysMenuBo menu) { |
| | | boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysMenu>() |
| | | .eq(SysMenu::getMenuName, menu.getMenuName()) |
| | | .eq(SysMenu::getParentId, menu.getParentId()) |
| | | .ne(ObjectUtil.isNotNull(menu.getMenuId()), SysMenu::getMenuId, menu.getMenuId())); |
| | | if (exist) { |
| | | return UserConstants.NOT_UNIQUE; |
| | | } |
| | | return UserConstants.UNIQUE; |
| | | return !exist; |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param parentId 传入的父节点ID |
| | | * @return String |
| | | */ |
| | | public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) { |
| | | private List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) { |
| | | List<SysMenu> returnList = new ArrayList<>(); |
| | | for (SysMenu t : list) { |
| | | // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点 |