package com.vci.frameworkcore.compatibility; import com.vci.frameworkcore.pagemodel.SmRoleVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; import com.vci.starter.web.pagemodel.Tree; import com.vci.starter.web.pagemodel.TreeQueryObject; import java.util.Collection; import java.util.List; import java.util.Map; /** * 角色的查询服务,兼容来平台,所有的接口都返回新的角色显示对象 * @author weidy * @date 2020/3/1 */ public interface SmRoleQueryServiceI { /** * 根据角色主键获取角色的信息 * @param roleOid 角色主键 * @return 角色的显示对象,如果角色不存在则返回null,不会抛出异常 * @throws VciBaseException 参数为空或者数据库存在问题的时候会抛出异常 */ SmRoleVO getRoleByRoleOid(String roleOid) throws VciBaseException; /** * 批量获取角色的信息 (根据角色主键) * @param roleOidCollections 角色主键的集合,可以超过1000个 * @return 角色的显示对象,如果角色不存在则返回空的列表,不会抛出异常 * @throws VciBaseException 参数为空或者数据库存在问题的时候会抛出异常 */ List listRoleByRoleOids(Collection roleOidCollections) throws VciBaseException; /** * 获取角色的列表,默认会以角色名升序排列,角色的编辑页面列表不要使用这个接口 * @param queryMap 查询条件 * @param pageHelper 分页和排序的信息,在兼容老平台的时候会自动兼容,如果属性不存在会自动忽略 * @return 角色的显示对象列表 * @throws VciBaseException 参数为空的时候会抛出异常 */ DataGrid gridRoles(Map queryMap, PageHelper pageHelper) throws VciBaseException; /** * 根据角色主键获取角色的姓名 * @param roleOid 角色主键 * @return 角色姓名,如果不存在会返回null */ String getRoleNameByRoleOid(String roleOid); /** * 根据用户主键获取关联的角色 * @param userOid 用户主键 * @param queryMap 查询条件,如果需要使用用户的属性来查询可以使用pkUser.xxxx * @return 角色的显示对象 */ List listRoleByUserOid(String userOid, Map queryMap); /** * 根据用户主键获取关联的角色 * @param userOid 用户主键 * @param queryMap 查询条件,如果需要使用用户的属性来查询可以使用pkUser.xxxx * @param pageHelper 分页和排序对象,老平台不支持使用角色编号来排序 * @return 角色的显示对象 */ DataGrid gridRoleByUserOid(String userOid, Map queryMap, PageHelper pageHelper); /** * 获取未关联某个用户的角色 * @param userOid 用户主键 * @param queryMap 查询条件,如果需要使用用户的属性来查询可以使用pkUser.xxxx * @return 角色的显示对象 */ List listRoleUnInUserOid(String userOid, Map queryMap); /** * 获取未关联某个用户的角色 * @param userOid 用户主键 * @param queryMap 查询条件,如果需要使用用户的属性来查询可以使用pkUser.xxxx * @param pageHelper 分页和排序对象,老平台不支持使用角色编号来排序 * @return 角色的显示对象 */ DataGrid gridRoleUninUserOid(String userOid, Map queryMap, PageHelper pageHelper); /** * 批量根据用户的主键来获取角色 * @param userOidCollection 用户主键集合 * @param queryMap 查询条件,如果需要使用用户的属性来查询可以使用pkUser.xxxx * @return 角色的显示对象,key是用户主键,value是这个用户关联的角色 */ Map> batchListRoleByUserOids(Collection userOidCollection, Map queryMap); /** * 根据权限主键获取关联的角色 * @param functionOid 权限主键 * @param queryMap 查询条件 * @return 角色的显示对象 */ List listRoleByFunctionOid(String functionOid, Map queryMap); /** * 获取未关联某个权限的角色 * @param functionOid 权限主键 * @param queryMap 查询条件 * @param pageHelper 分页和排序对象,老平台不支持使用角色编号来排序 * @return 角色的显示对象 */ DataGrid gridRoleByFunctionOid(String functionOid, Map queryMap, PageHelper pageHelper); /** * 获取未关联某个权限的角色 * @param functionOid 权限主键 * @param queryMap 查询条件 * @return 角色的显示对象 */ List listRoleUnInFunctionOid(String functionOid, Map queryMap); /** * 根据权限主键获取关联的角色 * @param functionOid 权限主键 * @param queryMap 查询条件 * @param pageHelper 分页和排序对象,老平台不支持使用角色编号来排序 * @return 角色的显示对象 */ DataGrid gridRoleUnInFunctionOid(String functionOid, Map queryMap, PageHelper pageHelper); /** * 批量根据权限的主键来获取角色 * @param functionOidCollection 权限主键集合 * @param queryMap 查询条件,如果需要使用用户的属性来查询可以使用pkUser.xxxx * @return 角色的显示对象,key是权限主键,value是这个权限关联的角色 */ Map> batchListRoleByFunctionOids(Collection functionOidCollection, Map queryMap); /** * 参照角色的列表,三员管理的三个角色不会显示 * @param queryMap 查询条件 * @param pageHelper 分页和排序的信息,在兼容老平台的时候会自动兼容,如果属性不存在会自动忽略 * @return 角色的显示对象列表 * @throws VciBaseException 参数为空的时候会抛出异常 */ DataGrid refGridRoles(Map queryMap, PageHelper pageHelper) throws VciBaseException; /** * 角色的树形展示,常用于角色选择用户的页面使用 * @param treeQueryObject 树查询对象 * @return 树的节点 * @throws VciBaseException 参数为空的时候会抛出异常 */ List refTreeRoles(TreeQueryObject treeQueryObject) throws VciBaseException; }