提交 08d79cf5 作者: 陈柏江

路由信息返回格式修改(新)

上级 1a560350
...@@ -143,7 +143,7 @@ public class SysLoginController { ...@@ -143,7 +143,7 @@ public class SysLoginController {
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId); List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("list", menuService.buildMenus(menus)); map.put("list", menuService.buildMenusNew(menus));
return AjaxResult.success(map); return AjaxResult.success(map);
} }
} }
package com.ruoyi.system.domain.vo;
/**
* 路由显示信息
*
* @author ruoyi
*/
public class MetaNewVo {
/**
* 是否显示在菜单中显示隐藏路由(默认值:false)
*/
private boolean hidden;
/**
* 是否显示在菜单中显示隐藏一级路由(默认值:false)
*/
private boolean levelHidden;
/**
* 菜单、面包屑、多标签页显示的名称
*/
private String title;
/**
* 新版图标
*/
private String icon;
/**
* 是否是自定义svg图标(默认值:false,如果设置true,那么需要把你的svg拷贝到icon下,然后icon字段配置上你的图标名)
*/
private boolean isCustomSvg;
/**
* 当前路由是否不缓存(默认值:false)
*/
private boolean noKeepAlive;
/**
* 当前路由是否可关闭多标签页,同上(2021年10月后新版支持)
*/
private boolean noClosable;
/**
* 是否隐藏分栏,仅在分栏布局中二级路由生效(默认值:false,不推荐使用)
*/
private boolean noColumn;
/**
* badge小标签(只支持子级,String类型,支持自定义)
*/
private String badge;
/**
* 当前路由是否不显示多标签页(默认值:false,不推荐使用)
*/
private boolean tabHidden;
/**
* 是否浏览新标签页打开(不适用于分栏布局左侧tab部分,不推荐使用)
*/
private String target;
/**
* 高亮指定菜单,要从跟路由的path开始拼接(用于隐藏页高亮)
*/
private String activeMenu;
/**
* 小圆点(默认值:false)
*/
private boolean dot;
/**
* 动态传参路由是否新开标签页(默认值:false)
*/
private boolean dynamicNewTab;
/**
* 面包屑是否显示(默认值:false)
*/
private boolean breadcrumbHidden;
public boolean isHidden() {
return hidden;
}
public void setHidden(boolean hidden) {
this.hidden = hidden;
}
public boolean isLevelHidden() {
return levelHidden;
}
public void setLevelHidden(boolean levelHidden) {
this.levelHidden = levelHidden;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public boolean isCustomSvg() {
return isCustomSvg;
}
public void setCustomSvg(boolean customSvg) {
isCustomSvg = customSvg;
}
public boolean isNoKeepAlive() {
return noKeepAlive;
}
public void setNoKeepAlive(boolean noKeepAlive) {
this.noKeepAlive = noKeepAlive;
}
public boolean isNoClosable() {
return noClosable;
}
public void setNoClosable(boolean noClosable) {
this.noClosable = noClosable;
}
public boolean isNoColumn() {
return noColumn;
}
public void setNoColumn(boolean noColumn) {
this.noColumn = noColumn;
}
public String getBadge() {
return badge;
}
public void setBadge(String badge) {
this.badge = badge;
}
public boolean isTabHidden() {
return tabHidden;
}
public void setTabHidden(boolean tabHidden) {
this.tabHidden = tabHidden;
}
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
public String getActiveMenu() {
return activeMenu;
}
public void setActiveMenu(String activeMenu) {
this.activeMenu = activeMenu;
}
public boolean isDot() {
return dot;
}
public void setDot(boolean dot) {
this.dot = dot;
}
public boolean isDynamicNewTab() {
return dynamicNewTab;
}
public void setDynamicNewTab(boolean dynamicNewTab) {
this.dynamicNewTab = dynamicNewTab;
}
public boolean isBreadcrumbHidden() {
return breadcrumbHidden;
}
public void setBreadcrumbHidden(boolean breadcrumbHidden) {
this.breadcrumbHidden = breadcrumbHidden;
}
}
package com.ruoyi.system.domain.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.List;
/**
* 路由配置信息
*
* @author ruoyi
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class RouterNewVo {
/**
* 路由名字
*/
private String name;
/**
* 路由地址
*/
private String path;
/**
* 重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
*/
private String redirect;
/**
* 组件地址
*/
private String component;
/**
* 其他元素
*/
private MetaNewVo meta;
/**
* 子路由
*/
private List<RouterNewVo> children;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getRedirect() {
return redirect;
}
public void setRedirect(String redirect) {
this.redirect = redirect;
}
public String getComponent() {
return component;
}
public void setComponent(String component) {
this.component = component;
}
public MetaNewVo getMeta() {
return meta;
}
public void setMeta(MetaNewVo meta) {
this.meta = meta;
}
public List<RouterNewVo> getChildren() {
return children;
}
public void setChildren(List<RouterNewVo> children) {
this.children = children;
}
}
package com.ruoyi.system.mapper; package com.ruoyi.system.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysMenu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 菜单表 数据层 * 菜单表 数据层
* *
* @author ruoyi * @author ruoyi
*/ */
public interface SysMenuMapper @Mapper
{ public interface SysMenuMapper {
/** /**
* 查询系统菜单列表 * 查询系统菜单列表
* *
......
package com.ruoyi.system.mapper; package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysRole;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* 角色表 数据层 * 角色表 数据层
* *
* @author ruoyi * @author ruoyi
*/ */
public interface SysRoleMapper @Mapper
{ public interface SysRoleMapper {
/** /**
* 根据条件分页查询角色数据 * 根据条件分页查询角色数据
* *
......
package com.ruoyi.system.mapper; package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.SysRoleMenu; import com.ruoyi.system.domain.SysRoleMenu;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* 角色与菜单关联表 数据层 * 角色与菜单关联表 数据层
* *
* @author ruoyi * @author ruoyi
*/ */
public interface SysRoleMenuMapper @Mapper
{ public interface SysRoleMenuMapper {
/** /**
* 查询菜单使用数量 * 查询菜单使用数量
* *
......
...@@ -4,6 +4,7 @@ import java.util.List; ...@@ -4,6 +4,7 @@ import java.util.List;
import java.util.Set; import java.util.Set;
import com.ruoyi.common.core.domain.TreeSelect; import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.system.domain.vo.RouterNewVo;
import com.ruoyi.system.domain.vo.RouterVo; import com.ruoyi.system.domain.vo.RouterVo;
/** /**
...@@ -71,6 +72,14 @@ public interface ISysMenuService ...@@ -71,6 +72,14 @@ public interface ISysMenuService
public List<RouterVo> buildMenus(List<SysMenu> menus); public List<RouterVo> buildMenus(List<SysMenu> menus);
/** /**
* 构建前端路由所需要的菜单
*
* @param menus 菜单列表
* @return 路由列表
*/
public List<RouterNewVo> buildMenusNew(List<SysMenu> menus);
/**
* 构建前端所需要树结构 * 构建前端所需要树结构
* *
* @param menus 菜单列表 * @param menus 菜单列表
......
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.domain.TreeSelect; import com.ruoyi.common.core.domain.TreeSelect;
...@@ -18,12 +8,19 @@ import com.ruoyi.common.core.domain.entity.SysRole; ...@@ -18,12 +8,19 @@ import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.vo.MetaNewVo;
import com.ruoyi.system.domain.vo.MetaVo; import com.ruoyi.system.domain.vo.MetaVo;
import com.ruoyi.system.domain.vo.RouterNewVo;
import com.ruoyi.system.domain.vo.RouterVo; import com.ruoyi.system.domain.vo.RouterVo;
import com.ruoyi.system.mapper.SysMenuMapper; import com.ruoyi.system.mapper.SysMenuMapper;
import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysRoleMenuMapper; import com.ruoyi.system.mapper.SysRoleMenuMapper;
import com.ruoyi.system.service.ISysMenuService; import com.ruoyi.system.service.ISysMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/** /**
* 菜单 业务层处理 * 菜单 业务层处理
...@@ -31,8 +28,7 @@ import com.ruoyi.system.service.ISysMenuService; ...@@ -31,8 +28,7 @@ import com.ruoyi.system.service.ISysMenuService;
* @author ruoyi * @author ruoyi
*/ */
@Service @Service
public class SysMenuServiceImpl implements ISysMenuService public class SysMenuServiceImpl implements ISysMenuService {
{
public static final String PREMISSION_STRING = "perms[\"{0}\"]"; public static final String PREMISSION_STRING = "perms[\"{0}\"]";
@Autowired @Autowired
...@@ -51,8 +47,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -51,8 +47,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 菜单列表 * @return 菜单列表
*/ */
@Override @Override
public List<SysMenu> selectMenuList(Long userId) public List<SysMenu> selectMenuList(Long userId) {
{
return selectMenuList(new SysMenu(), userId); return selectMenuList(new SysMenu(), userId);
} }
...@@ -63,16 +58,12 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -63,16 +58,12 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 菜单列表 * @return 菜单列表
*/ */
@Override @Override
public List<SysMenu> selectMenuList(SysMenu menu, Long userId) public List<SysMenu> selectMenuList(SysMenu menu, Long userId) {
{
List<SysMenu> menuList = null; List<SysMenu> menuList = null;
// 管理员显示所有菜单信息 // 管理员显示所有菜单信息
if (SysUser.isAdmin(userId)) if (SysUser.isAdmin(userId)) {
{
menuList = menuMapper.selectMenuList(menu); menuList = menuMapper.selectMenuList(menu);
} } else {
else
{
menu.getParams().put("userId", userId); menu.getParams().put("userId", userId);
menuList = menuMapper.selectMenuListByUserId(menu); menuList = menuMapper.selectMenuListByUserId(menu);
} }
...@@ -86,14 +77,11 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -86,14 +77,11 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 权限列表 * @return 权限列表
*/ */
@Override @Override
public Set<String> selectMenuPermsByUserId(Long userId) public Set<String> selectMenuPermsByUserId(Long userId) {
{
List<String> perms = menuMapper.selectMenuPermsByUserId(userId); List<String> perms = menuMapper.selectMenuPermsByUserId(userId);
Set<String> permsSet = new HashSet<>(); Set<String> permsSet = new HashSet<>();
for (String perm : perms) for (String perm : perms) {
{ if (StringUtils.isNotEmpty(perm)) {
if (StringUtils.isNotEmpty(perm))
{
permsSet.addAll(Arrays.asList(perm.trim().split(","))); permsSet.addAll(Arrays.asList(perm.trim().split(",")));
} }
} }
...@@ -107,14 +95,11 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -107,14 +95,11 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 权限列表 * @return 权限列表
*/ */
@Override @Override
public Set<String> selectMenuPermsByRoleId(Long roleId) public Set<String> selectMenuPermsByRoleId(Long roleId) {
{
List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId); List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId);
Set<String> permsSet = new HashSet<>(); Set<String> permsSet = new HashSet<>();
for (String perm : perms) for (String perm : perms) {
{ if (StringUtils.isNotEmpty(perm)) {
if (StringUtils.isNotEmpty(perm))
{
permsSet.addAll(Arrays.asList(perm.trim().split(","))); permsSet.addAll(Arrays.asList(perm.trim().split(",")));
} }
} }
...@@ -128,15 +113,11 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -128,15 +113,11 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 菜单列表 * @return 菜单列表
*/ */
@Override @Override
public List<SysMenu> selectMenuTreeByUserId(Long userId) public List<SysMenu> selectMenuTreeByUserId(Long userId) {
{
List<SysMenu> menus = null; List<SysMenu> menus = null;
if (SecurityUtils.isAdmin(userId)) if (SecurityUtils.isAdmin(userId)) {
{
menus = menuMapper.selectMenuTreeAll(); menus = menuMapper.selectMenuTreeAll();
} } else {
else
{
menus = menuMapper.selectMenuTreeByUserId(userId); menus = menuMapper.selectMenuTreeByUserId(userId);
} }
return getChildPerms(menus, 0); return getChildPerms(menus, 0);
...@@ -149,8 +130,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -149,8 +130,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 选中菜单列表 * @return 选中菜单列表
*/ */
@Override @Override
public List<Long> selectMenuListByRoleId(Long roleId) public List<Long> selectMenuListByRoleId(Long roleId) {
{
SysRole role = roleMapper.selectRoleById(roleId); SysRole role = roleMapper.selectRoleById(roleId);
return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly()); return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
} }
...@@ -162,11 +142,9 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -162,11 +142,9 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 路由列表 * @return 路由列表
*/ */
@Override @Override
public List<RouterVo> buildMenus(List<SysMenu> menus) public List<RouterVo> buildMenus(List<SysMenu> menus) {
{
List<RouterVo> routers = new LinkedList<RouterVo>(); List<RouterVo> routers = new LinkedList<RouterVo>();
for (SysMenu menu : menus) for (SysMenu menu : menus) {
{
RouterVo router = new RouterVo(); RouterVo router = new RouterVo();
router.setHidden("1".equals(menu.getVisible())); router.setHidden("1".equals(menu.getVisible()));
router.setName(getRouteName(menu)); router.setName(getRouteName(menu));
...@@ -175,14 +153,11 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -175,14 +153,11 @@ public class SysMenuServiceImpl implements ISysMenuService
router.setQuery(menu.getQuery()); router.setQuery(menu.getQuery());
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
List<SysMenu> cMenus = menu.getChildren(); List<SysMenu> cMenus = menu.getChildren();
if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) {
{
router.setAlwaysShow(true); router.setAlwaysShow(true);
router.setRedirect("noRedirect"); router.setRedirect("noRedirect");
router.setChildren(buildMenus(cMenus)); router.setChildren(buildMenus(cMenus));
} } else if (isMenuFrame(menu)) {
else if (isMenuFrame(menu))
{
router.setMeta(null); router.setMeta(null);
List<RouterVo> childrenList = new ArrayList<RouterVo>(); List<RouterVo> childrenList = new ArrayList<RouterVo>();
RouterVo children = new RouterVo(); RouterVo children = new RouterVo();
...@@ -193,9 +168,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -193,9 +168,7 @@ public class SysMenuServiceImpl implements ISysMenuService
children.setQuery(menu.getQuery()); children.setQuery(menu.getQuery());
childrenList.add(children); childrenList.add(children);
router.setChildren(childrenList); router.setChildren(childrenList);
} } else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) {
else if (menu.getParentId().intValue() == 0 && isInnerLink(menu))
{
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon()));
router.setPath("/"); router.setPath("/");
List<RouterVo> childrenList = new ArrayList<RouterVo>(); List<RouterVo> childrenList = new ArrayList<RouterVo>();
...@@ -214,28 +187,85 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -214,28 +187,85 @@ public class SysMenuServiceImpl implements ISysMenuService
} }
/** /**
* 构建前端路由所需要的菜单
*
* @param menus 菜单列表
* @return 路由列表
*/
@Override
public List<RouterNewVo> buildMenusNew(List<SysMenu> menus) {
List<RouterNewVo> routers = new LinkedList<RouterNewVo>();
MetaNewVo meta = new MetaNewVo();
for (SysMenu menu : menus) {
RouterNewVo router = new RouterNewVo();
router.setName(getRouteName(menu));
router.setPath(getRouterPath(menu));
router.setComponent(getComponent(menu));
meta = new MetaNewVo();
meta.setIcon(menu.getIcon());
meta.setNoKeepAlive(StringUtils.equals("1", menu.getIsCache()));
router.setMeta(meta);
List<SysMenu> cMenus = menu.getChildren();
if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) {
router.setRedirect("noRedirect");
router.setChildren(buildMenusNew(cMenus));
} else if (isMenuFrame(menu)) {
router.setMeta(null);
List<RouterNewVo> childrenList = new ArrayList<RouterNewVo>();
RouterNewVo children = new RouterNewVo();
children.setPath(menu.getPath());
children.setComponent(menu.getComponent());
children.setName(getRouteName(menu.getRouteName(), menu.getPath()));
meta = new MetaNewVo();
meta.setIcon(menu.getIcon());
meta.setNoKeepAlive(StringUtils.equals("1", menu.getIsCache()));
children.setMeta(meta);
childrenList.add(children);
router.setChildren(childrenList);
} else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) {
meta = new MetaNewVo();
meta.setIcon(menu.getIcon());
meta.setNoKeepAlive(StringUtils.equals("1", menu.getIsCache()));
router.setMeta(meta);
router.setPath("/");
List<RouterNewVo> childrenList = new ArrayList<RouterNewVo>();
RouterNewVo children = new RouterNewVo();
String routerPath = innerLinkReplaceEach(menu.getPath());
children.setPath(routerPath);
children.setComponent(UserConstants.INNER_LINK);
children.setName(getRouteName(menu.getRouteName(), routerPath));
meta = new MetaNewVo();
meta.setIcon(menu.getIcon());
meta.setNoKeepAlive(StringUtils.equals("1", menu.getIsCache()));
children.setMeta(meta);
childrenList.add(children);
router.setChildren(childrenList);
}
routers.add(router);
}
return routers;
}
/**
* 构建前端所需要树结构 * 构建前端所需要树结构
* *
* @param menus 菜单列表 * @param menus 菜单列表
* @return 树结构列表 * @return 树结构列表
*/ */
@Override @Override
public List<SysMenu> buildMenuTree(List<SysMenu> menus) public List<SysMenu> buildMenuTree(List<SysMenu> menus) {
{
List<SysMenu> returnList = new ArrayList<SysMenu>(); List<SysMenu> returnList = new ArrayList<SysMenu>();
List<Long> tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList()); List<Long> tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext();) for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext(); ) {
{
SysMenu menu = (SysMenu) iterator.next(); SysMenu menu = (SysMenu) iterator.next();
// 如果是顶级节点, 遍历该父节点的所有子节点 // 如果是顶级节点, 遍历该父节点的所有子节点
if (!tempList.contains(menu.getParentId())) if (!tempList.contains(menu.getParentId())) {
{
recursionFn(menus, menu); recursionFn(menus, menu);
returnList.add(menu); returnList.add(menu);
} }
} }
if (returnList.isEmpty()) if (returnList.isEmpty()) {
{
returnList = menus; returnList = menus;
} }
return returnList; return returnList;
...@@ -248,8 +278,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -248,8 +278,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 下拉树结构列表 * @return 下拉树结构列表
*/ */
@Override @Override
public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus) public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus) {
{
List<SysMenu> menuTrees = buildMenuTree(menus); List<SysMenu> menuTrees = buildMenuTree(menus);
return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
} }
...@@ -261,8 +290,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -261,8 +290,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 菜单信息 * @return 菜单信息
*/ */
@Override @Override
public SysMenu selectMenuById(Long menuId) public SysMenu selectMenuById(Long menuId) {
{
return menuMapper.selectMenuById(menuId); return menuMapper.selectMenuById(menuId);
} }
...@@ -273,8 +301,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -273,8 +301,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public boolean hasChildByMenuId(Long menuId) public boolean hasChildByMenuId(Long menuId) {
{
int result = menuMapper.hasChildByMenuId(menuId); int result = menuMapper.hasChildByMenuId(menuId);
return result > 0; return result > 0;
} }
...@@ -286,8 +313,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -286,8 +313,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public boolean checkMenuExistRole(Long menuId) public boolean checkMenuExistRole(Long menuId) {
{
int result = roleMenuMapper.checkMenuExistRole(menuId); int result = roleMenuMapper.checkMenuExistRole(menuId);
return result > 0; return result > 0;
} }
...@@ -299,8 +325,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -299,8 +325,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int insertMenu(SysMenu menu) public int insertMenu(SysMenu menu) {
{
return menuMapper.insertMenu(menu); return menuMapper.insertMenu(menu);
} }
...@@ -311,8 +336,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -311,8 +336,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updateMenu(SysMenu menu) public int updateMenu(SysMenu menu) {
{
return menuMapper.updateMenu(menu); return menuMapper.updateMenu(menu);
} }
...@@ -323,8 +347,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -323,8 +347,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int deleteMenuById(Long menuId) public int deleteMenuById(Long menuId) {
{
return menuMapper.deleteMenuById(menuId); return menuMapper.deleteMenuById(menuId);
} }
...@@ -335,12 +358,10 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -335,12 +358,10 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 结果 * @return 结果
*/ */
@Override @Override
public boolean checkMenuNameUnique(SysMenu menu) public boolean checkMenuNameUnique(SysMenu menu) {
{
Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId(); Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId();
SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId()); SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId());
if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) {
{
return UserConstants.NOT_UNIQUE; return UserConstants.NOT_UNIQUE;
} }
return UserConstants.UNIQUE; return UserConstants.UNIQUE;
...@@ -352,11 +373,9 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -352,11 +373,9 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 路由名称 * @return 路由名称
*/ */
public String getRouteName(SysMenu menu) public String getRouteName(SysMenu menu) {
{
// 非外链并且是一级目录(类型为目录) // 非外链并且是一级目录(类型为目录)
if (isMenuFrame(menu)) if (isMenuFrame(menu)) {
{
return StringUtils.EMPTY; return StringUtils.EMPTY;
} }
return getRouteName(menu.getRouteName(), menu.getPath()); return getRouteName(menu.getRouteName(), menu.getPath());
...@@ -369,8 +388,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -369,8 +388,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param path 路由地址 * @param path 路由地址
* @return 路由名称(驼峰格式) * @return 路由名称(驼峰格式)
*/ */
public String getRouteName(String name, String path) public String getRouteName(String name, String path) {
{
String routerName = StringUtils.isNotEmpty(name) ? name : path; String routerName = StringUtils.isNotEmpty(name) ? name : path;
return StringUtils.capitalize(routerName); return StringUtils.capitalize(routerName);
} }
...@@ -381,23 +399,19 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -381,23 +399,19 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 路由地址 * @return 路由地址
*/ */
public String getRouterPath(SysMenu menu) public String getRouterPath(SysMenu menu) {
{
String routerPath = menu.getPath(); String routerPath = menu.getPath();
// 内链打开外网方式 // 内链打开外网方式
if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
{
routerPath = innerLinkReplaceEach(routerPath); routerPath = innerLinkReplaceEach(routerPath);
} }
// 非外链并且是一级目录(类型为目录) // 非外链并且是一级目录(类型为目录)
if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType()) if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType())
&& UserConstants.NO_FRAME.equals(menu.getIsFrame())) && UserConstants.NO_FRAME.equals(menu.getIsFrame())) {
{
routerPath = "/" + menu.getPath(); routerPath = "/" + menu.getPath();
} }
// 非外链并且是一级目录(类型为菜单) // 非外链并且是一级目录(类型为菜单)
else if (isMenuFrame(menu)) else if (isMenuFrame(menu)) {
{
routerPath = "/"; routerPath = "/";
} }
return routerPath; return routerPath;
...@@ -409,19 +423,13 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -409,19 +423,13 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 组件信息 * @return 组件信息
*/ */
public String getComponent(SysMenu menu) public String getComponent(SysMenu menu) {
{
String component = UserConstants.LAYOUT; String component = UserConstants.LAYOUT;
if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) {
{
component = menu.getComponent(); component = menu.getComponent();
} } else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu))
{
component = UserConstants.INNER_LINK; component = UserConstants.INNER_LINK;
} } else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) {
else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu))
{
component = UserConstants.PARENT_VIEW; component = UserConstants.PARENT_VIEW;
} }
return component; return component;
...@@ -433,8 +441,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -433,8 +441,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 结果 * @return 结果
*/ */
public boolean isMenuFrame(SysMenu menu) public boolean isMenuFrame(SysMenu menu) {
{
return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType())
&& menu.getIsFrame().equals(UserConstants.NO_FRAME); && menu.getIsFrame().equals(UserConstants.NO_FRAME);
} }
...@@ -445,8 +452,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -445,8 +452,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 结果 * @return 结果
*/ */
public boolean isInnerLink(SysMenu menu) public boolean isInnerLink(SysMenu menu) {
{
return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath()); return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath());
} }
...@@ -456,8 +462,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -456,8 +462,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param menu 菜单信息 * @param menu 菜单信息
* @return 结果 * @return 结果
*/ */
public boolean isParentView(SysMenu menu) public boolean isParentView(SysMenu menu) {
{
return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()); return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType());
} }
...@@ -468,15 +473,12 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -468,15 +473,12 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param parentId 传入的父节点ID * @param parentId 传入的父节点ID
* @return String * @return String
*/ */
public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) {
{
List<SysMenu> returnList = new ArrayList<SysMenu>(); List<SysMenu> returnList = new ArrayList<SysMenu>();
for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext();) for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext(); ) {
{
SysMenu t = (SysMenu) iterator.next(); SysMenu t = (SysMenu) iterator.next();
// 一、根据传入的某个父节点ID,遍历该父节点的所有子节点 // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点
if (t.getParentId() == parentId) if (t.getParentId() == parentId) {
{
recursionFn(list, t); recursionFn(list, t);
returnList.add(t); returnList.add(t);
} }
...@@ -490,15 +492,12 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -490,15 +492,12 @@ public class SysMenuServiceImpl implements ISysMenuService
* @param list 分类表 * @param list 分类表
* @param t 子节点 * @param t 子节点
*/ */
private void recursionFn(List<SysMenu> list, SysMenu t) private void recursionFn(List<SysMenu> list, SysMenu t) {
{
// 得到子节点列表 // 得到子节点列表
List<SysMenu> childList = getChildList(list, t); List<SysMenu> childList = getChildList(list, t);
t.setChildren(childList); t.setChildren(childList);
for (SysMenu tChild : childList) for (SysMenu tChild : childList) {
{ if (hasChild(list, tChild)) {
if (hasChild(list, tChild))
{
recursionFn(list, tChild); recursionFn(list, tChild);
} }
} }
...@@ -507,15 +506,12 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -507,15 +506,12 @@ public class SysMenuServiceImpl implements ISysMenuService
/** /**
* 得到子节点列表 * 得到子节点列表
*/ */
private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t) private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t) {
{
List<SysMenu> tlist = new ArrayList<SysMenu>(); List<SysMenu> tlist = new ArrayList<SysMenu>();
Iterator<SysMenu> it = list.iterator(); Iterator<SysMenu> it = list.iterator();
while (it.hasNext()) while (it.hasNext()) {
{
SysMenu n = (SysMenu) it.next(); SysMenu n = (SysMenu) it.next();
if (n.getParentId().longValue() == t.getMenuId().longValue()) if (n.getParentId().longValue() == t.getMenuId().longValue()) {
{
tlist.add(n); tlist.add(n);
} }
} }
...@@ -525,8 +521,7 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -525,8 +521,7 @@ public class SysMenuServiceImpl implements ISysMenuService
/** /**
* 判断是否有子节点 * 判断是否有子节点
*/ */
private boolean hasChild(List<SysMenu> list, SysMenu t) private boolean hasChild(List<SysMenu> list, SysMenu t) {
{
return getChildList(list, t).size() > 0; return getChildList(list, t).size() > 0;
} }
...@@ -535,9 +530,8 @@ public class SysMenuServiceImpl implements ISysMenuService ...@@ -535,9 +530,8 @@ public class SysMenuServiceImpl implements ISysMenuService
* *
* @return 替换后的内链域名 * @return 替换后的内链域名
*/ */
public String innerLinkReplaceEach(String path) public String innerLinkReplaceEach(String path) {
{ return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":"},
return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":" }, new String[]{"", "", "", "/", "/"});
new String[] { "", "", "", "/", "/" });
} }
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论