package com.vci.web.service; import com.vci.common.exception.VciException; import com.vci.corba.common.PLException; import com.vci.dto.RoleInfoDTO; import com.vci.dto.RoleRightParamDTO; import com.vci.web.enumpck.ResourceControlTypeEnum; import com.vci.pagemodel.MenuVO; import com.vci.pagemodel.SmFunctionVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.*; import com.vci.pagemodel.UIContentVO; import com.vci.web.service.OsBaseServiceI; import java.util.Collection; import java.util.List; import java.util.Map; /** * 功能菜单的查询服务,这个兼容老平台 请不是framework的服务不要直接注入这个服务 * @author weidy * @date 2020/3/1 */ public interface ISmFunctionQueryService extends OsBaseServiceI { /** * 查询所有的功能 * @return 功能的显示对象 */ List selectAllFunction(); /** * 查询所有的功能映射 * @return 功能的显示对象 */ Map selectAllFunctionMap(); /** * 根据用户查询关联的权限 * @param userOid 用户的主键 * @param queryMap 查询条件,如果要用用户的属性查询,可以使用pkUser.xxx * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域 * @return 权限的显示对象,未转化为上下级关系 */ List listFunctionByUserOid(String userOid, Map queryMap, ResourceControlTypeEnum resourceControlTypeEnum); /** * 获取当前角色的菜单 * @param treeQueryObject 属性查询对象 * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域 * @return 菜单,包含上下级 */ List treeCurrentUserMenu(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) throws PLException; /** * 通过模块ID获取子级列表 * @param parentId * @param modeType 模块类型 * @param isAll 是否包括无效的模块,true则包括 * @return * @throws VciBaseException */ List getSysModelTreeMenuByPID(String parentId,String modeType,boolean isAll) throws VciBaseException; /** * 通过模块ID获取子级列表 * @param isAll 是否包括无效的模块,true则包括 * @return * @throws VciBaseException */ List getSysModelAuthTreeMenuByPID(boolean isAll) throws VciBaseException, PLException; int checkChildObject(String moduleId) throws VciException; /** * 获取所有的功能菜单 * @param treeQueryObject 树查询对象 * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域 * @return 树节点,出现错误会在异常处理器中统一返回Json */ List treeAllMenu(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum); /** * 通过上级节点获取下级的所有的菜单节点 * @param treeQueryObject 树查询对象 * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域 * @return 树节点,出现错误会在异常处理器中统一返回Json */ List treeFunctionByParent(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum); /** * 通过上级节点获取当前角色有权限的下级的所有的菜单节点 * @param treeQueryObject 树查询对象 * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域 * @return 树节点,出现错误会在异常处理器中统一返回Json */ List treeCurrentFunctionByParent(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) ; /** * 获取系统功能列表 * @param queryMap 查询条件 * @param pageHelper 排序和分页对象 * @return DataGrid 系统功能列表 */ DataGrid dataGrid(Map queryMap, PageHelper pageHelper); /** * 根据角色主键获取关联的权限 * @param roleOid 角色主键 * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域 * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkUser.xxxx * @return 权限的显示对象 */ List listFunctionByRoleOid(String roleOid, Map queryMap, ResourceControlTypeEnum resourceControlTypeEnum); /** * 获取未关联某个角色的权限 * @param roleOid 角色主键 * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域 * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkUser.xxxx * @return 权限的显示对象 */ List listFunctionUnInRoleOid(String roleOid, Map queryMap, ResourceControlTypeEnum resourceControlTypeEnum); /** * 获取未关联某个角色的权限 * @param roleOid 角色主键 * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkUser.xxxx * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域 * @param pageHelper 分页和排序对象,老平台不支持使用权限编号来排序 * @return 权限的显示对象 */ DataGrid gridFunctionUninRoleOid(String roleOid, Map queryMap, PageHelper pageHelper, ResourceControlTypeEnum resourceControlTypeEnum); /** * 批量根据角色的主键来获取权限 * @param roleOidCollection 角色主键集合 * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域 * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkRole.xxxx * @return 权限的显示对象,key是角色主键,value是这个角色关联的权限 */ Map> batchListFunctionByRoleOids(Collection roleOidCollection, Map queryMap, ResourceControlTypeEnum resourceControlTypeEnum); /** * 批量根据角色的主键获取关联的权限 * @param roleOidCollection 角色的主键集合 * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkRole.xxxx * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域 * @return 权限的显示对象,会去除重复的项 */ List listFunctionByRoleOids(Collection roleOidCollection, Map queryMap, ResourceControlTypeEnum resourceControlTypeEnum); /** * 批量根据角色的主键获取关联的权限 * @param roleOidCollection 角色的主键集合 * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkRole.xxxx * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域 * @param pageHelper 分页对象 * @return 权限的显示对象,会去除重复的项 */ DataGrid gridFunctionByRoleOids(Collection roleOidCollection, Map queryMap, PageHelper pageHelper, ResourceControlTypeEnum resourceControlTypeEnum); UIContentVO getUIContentByBtmTypeAndId(TreeQueryObject treeQueryObject, ResourceControlTypeEnum bs) throws PLException; /** * 获取授权的模块 * @param roleId 角色主键 * @return 所具有权限的主键 * @throws PLException */ List getSysModelAuth(String roleId) throws PLException; /** * 保存授权的模块 * @param roleRightDTOS 用户选择授权模块信息 * @param roleId 角色主键 * @return 授权结果 * @throws PLException */ BaseResult saveRoleRight(List roleRightDTOS, String roleId) throws PLException; /** * 获取所授权的模块权限 * @param roleName 搜索的角色 * @return 角色列表 */ List getRoleList(String roleName) throws PLException; }