From 074ac556eea1409ece8da33ce2d50c53cc6e4922 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期二, 08 十二月 2020 16:07:40 +0800 Subject: [PATCH] 回显数据字典防止空值报错 --- src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java | 27 ++++++++++++++++++++++++--- 1 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java index fb1c830..bd8f988 100644 --- a/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java +++ b/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java @@ -15,10 +15,12 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.domain.TreeSelect; import com.ruoyi.project.system.domain.SysMenu; +import com.ruoyi.project.system.domain.SysRole; import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.domain.vo.MetaVo; import com.ruoyi.project.system.domain.vo.RouterVo; import com.ruoyi.project.system.mapper.SysMenuMapper; +import com.ruoyi.project.system.mapper.SysRoleMapper; import com.ruoyi.project.system.mapper.SysRoleMenuMapper; import com.ruoyi.project.system.service.ISysMenuService; @@ -34,6 +36,9 @@ @Autowired private SysMenuMapper menuMapper; + + @Autowired + private SysRoleMapper roleMapper; @Autowired private SysRoleMenuMapper roleMenuMapper; @@ -124,7 +129,8 @@ @Override public List<Integer> selectMenuListByRoleId(Long roleId) { - return menuMapper.selectMenuListByRoleId(roleId); + SysRole role = roleMapper.selectRoleById(roleId); + return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly()); } /** @@ -144,7 +150,7 @@ router.setName(getRouteName(menu)); router.setPath(getRouterPath(menu)); router.setComponent(getComponent(menu)); - router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); + router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()))); List<SysMenu> cMenus = menu.getChildren(); if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType())) { @@ -159,7 +165,7 @@ children.setPath(menu.getPath()); children.setComponent(menu.getComponent()); children.setName(StringUtils.capitalize(menu.getPath())); - children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); + children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()))); childrenList.add(children); router.setChildren(childrenList); } @@ -358,6 +364,10 @@ { component = menu.getComponent(); } + else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) + { + component = UserConstants.PARENT_VIEW; + } return component; } @@ -372,6 +382,17 @@ return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) && menu.getIsFrame().equals(UserConstants.NO_FRAME); } + + /** + * 鏄惁涓簆arent_view缁勪欢 + * + * @param menu 鑿滃崟淇℃伅 + * @return 缁撴灉 + */ + public boolean isParentView(SysMenu menu) + { + return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()); + } /** * 鏍规嵁鐖惰妭鐐圭殑ID鑾峰彇鎵�鏈夊瓙鑺傜偣 -- Gitblit v1.9.3