|
|
@ -33,9 +33,14 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuDao, SysMenuEntity> i |
|
|
@Resource |
|
|
@Resource |
|
|
private SysObjectLanguageMenuService sysObjectLanguageMenuService; |
|
|
private SysObjectLanguageMenuService sysObjectLanguageMenuService; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @author rqrq |
|
|
|
|
|
* @Description 按父节点查询菜单并叠加工厂site可见性过滤,随后再按角色授权菜单ID裁剪 - rqrq |
|
|
|
|
|
*/ |
|
|
@Override |
|
|
@Override |
|
|
public List<SysMenuEntity> queryListParentId(String parentId, List<String> menuIdList,String l,String menuType) { |
|
|
|
|
|
List<SysMenuEntity> menuList = queryListParentId1(parentId,l,menuType); |
|
|
|
|
|
|
|
|
public List<SysMenuEntity> queryListParentId(String parentId, List<String> menuIdList,String l,String menuType,String site) { |
|
|
|
|
|
// 菜单查询在角色授权之后再叠加工厂维度过滤,确保权限模型不被site改写 - rqrq |
|
|
|
|
|
List<SysMenuEntity> menuList = queryListParentId1(parentId,l,menuType,site); |
|
|
if(menuIdList == null){ |
|
|
if(menuIdList == null){ |
|
|
return menuList; |
|
|
return menuList; |
|
|
} |
|
|
} |
|
|
@ -53,9 +58,13 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuDao, SysMenuEntity> i |
|
|
public List<SysMenuEntity> queryListParentId(String parentId) { |
|
|
public List<SysMenuEntity> queryListParentId(String parentId) { |
|
|
return baseMapper.queryListParentId(parentId); |
|
|
return baseMapper.queryListParentId(parentId); |
|
|
} |
|
|
} |
|
|
|
|
|
/** |
|
|
|
|
|
* @author rqrq |
|
|
|
|
|
* @Description 查询子节点菜单并透传site过滤参数到Mapper,保障*与指定site菜单可控 - rqrq |
|
|
|
|
|
*/ |
|
|
// TODO 修改 |
|
|
// TODO 修改 |
|
|
public List<SysMenuEntity> queryListParentId1(String parentId,String l,String menuType) { |
|
|
|
|
|
return baseMapper.queryListParentId1(parentId,l,menuType); |
|
|
|
|
|
|
|
|
public List<SysMenuEntity> queryListParentId1(String parentId,String l,String menuType,String site) { |
|
|
|
|
|
return baseMapper.queryListParentId1(parentId,l,menuType,site); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
@ -63,16 +72,20 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuDao, SysMenuEntity> i |
|
|
return baseMapper.queryNotButtonList(); |
|
|
return baseMapper.queryNotButtonList(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @author rqrq |
|
|
|
|
|
* @Description 获取用户菜单树时保留原角色授权语义,并新增site维度菜单可见性过滤 - rqrq |
|
|
|
|
|
*/ |
|
|
@Override |
|
|
@Override |
|
|
public List<SysMenuEntity> getUserMenuList(Long userId,String l,String MenuType) { |
|
|
|
|
|
|
|
|
public List<SysMenuEntity> getUserMenuList(Long userId,String l,String MenuType,String site) { |
|
|
//系统管理员,拥有最高权限 |
|
|
//系统管理员,拥有最高权限 |
|
|
if(userId == Constant.SUPER_ADMIN){ |
|
|
if(userId == Constant.SUPER_ADMIN){ |
|
|
return getAllMenuList(null,l,MenuType); |
|
|
|
|
|
|
|
|
return getAllMenuList(null,l,MenuType,site); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//用户菜单列表 |
|
|
//用户菜单列表 |
|
|
List<String> menuIdList = sysUserService.queryAllMenuId(userId); |
|
|
List<String> menuIdList = sysUserService.queryAllMenuId(userId); |
|
|
return getAllMenuList(menuIdList,l,MenuType); |
|
|
|
|
|
|
|
|
return getAllMenuList(menuIdList,l,MenuType,site); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
@ -84,33 +97,35 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuDao, SysMenuEntity> i |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 获取所有菜单列表 |
|
|
|
|
|
|
|
|
* @author rqrq |
|
|
|
|
|
* @Description 构建完整菜单树时按menuType选择根节点,并全链路透传site过滤参数 - rqrq |
|
|
*/ |
|
|
*/ |
|
|
private List<SysMenuEntity> getAllMenuList(List<String> menuIdList,String l,String menuType){ |
|
|
|
|
|
|
|
|
private List<SysMenuEntity> getAllMenuList(List<String> menuIdList,String l,String menuType,String site){ |
|
|
//查询根菜单列表 |
|
|
//查询根菜单列表 |
|
|
List<SysMenuEntity> menuList = new ArrayList<>(); |
|
|
List<SysMenuEntity> menuList = new ArrayList<>(); |
|
|
if ("pc".equals(menuType)) { |
|
|
if ("pc".equals(menuType)) { |
|
|
menuList = queryListParentId("0", menuIdList,l,menuType); |
|
|
|
|
|
|
|
|
menuList = queryListParentId("0", menuIdList,l,menuType,site); |
|
|
}else { |
|
|
}else { |
|
|
menuList = queryListParentId("950", menuIdList,l,menuType); |
|
|
|
|
|
|
|
|
menuList = queryListParentId("950", menuIdList,l,menuType,site); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//递归获取子菜单 |
|
|
//递归获取子菜单 |
|
|
getMenuTreeList(menuList, menuIdList,l,menuType); |
|
|
|
|
|
|
|
|
getMenuTreeList(menuList, menuIdList,l,menuType,site); |
|
|
|
|
|
|
|
|
return menuList; |
|
|
return menuList; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 递归 |
|
|
|
|
|
|
|
|
* @author rqrq |
|
|
|
|
|
* @Description 递归装配菜单子树,确保每层子菜单都执行同一site过滤规则 - rqrq |
|
|
*/ |
|
|
*/ |
|
|
private List<SysMenuEntity> getMenuTreeList(List<SysMenuEntity> menuList, List<String> menuIdList,String l,String menuType){ |
|
|
|
|
|
|
|
|
private List<SysMenuEntity> getMenuTreeList(List<SysMenuEntity> menuList, List<String> menuIdList,String l,String menuType,String site){ |
|
|
List<SysMenuEntity> subMenuList = new ArrayList<SysMenuEntity>(); |
|
|
List<SysMenuEntity> subMenuList = new ArrayList<SysMenuEntity>(); |
|
|
|
|
|
|
|
|
for(SysMenuEntity entity : menuList){ |
|
|
for(SysMenuEntity entity : menuList){ |
|
|
//目录 |
|
|
//目录 |
|
|
if(entity.getType() == Constant.MenuType.CATALOG.getValue()){ |
|
|
if(entity.getType() == Constant.MenuType.CATALOG.getValue()){ |
|
|
entity.setList(getMenuTreeList(queryListParentId(entity.getMenuId(), menuIdList,l,menuType), menuIdList,l,menuType)); |
|
|
|
|
|
|
|
|
entity.setList(getMenuTreeList(queryListParentId(entity.getMenuId(), menuIdList,l,menuType,site), menuIdList,l,menuType,site)); |
|
|
} |
|
|
} |
|
|
subMenuList.add(entity); |
|
|
subMenuList.add(entity); |
|
|
} |
|
|
} |
|
|
|