wangting
2024-12-03 a53ab71161c5a546c70fa22ec5530cc4b2c7a672
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
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<SmFunctionVO> selectAllFunction();
 
    /**
     * 查询所有的功能映射
     * @return 功能的显示对象
     */
    Map<String,SmFunctionVO> selectAllFunctionMap();
 
    /**
     * 根据用户查询关联的权限
     * @param userOid 用户的主键
     * @param queryMap 查询条件,如果要用用户的属性查询,可以使用pkUser.xxx
     * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域
     * @return 权限的显示对象,未转化为上下级关系
     */
    List<SmFunctionVO> listFunctionByUserOid(String userOid, Map<String, String> queryMap, ResourceControlTypeEnum resourceControlTypeEnum);
 
    /**
     * 获取当前角色的菜单
     * @param treeQueryObject 属性查询对象
     * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域
     * @return 菜单,包含上下级
     */
    List<MenuVO> treeCurrentUserMenu(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) throws PLException;
 
    /**
     * 通过模块ID获取子级列表
     * @param parentId
     * @param modeType 模块类型
     * @param isAll 是否包括无效的模块,true则包括
     * @return
     * @throws VciBaseException
     */
    List<MenuVO> getSysModelTreeMenuByPID(String parentId,String modeType,boolean isAll) throws VciBaseException;
    /**
     * 通过模块ID获取子级列表
     * @param isAll 是否包括无效的模块,true则包括
     * @return
     * @throws VciBaseException
     */
    List<MenuVO> getSysModelAuthTreeMenuByPID(boolean isAll) throws VciBaseException, PLException;
 
    int checkChildObject(String moduleId) throws VciException;
 
    /**
     * 获取所有的功能菜单
     * @param treeQueryObject 树查询对象
     * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域
     * @return  树节点,出现错误会在异常处理器中统一返回Json
     */
     List<Tree> treeAllMenu(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum);
 
    /**
     * 通过上级节点获取下级的所有的菜单节点
     *  @param treeQueryObject 树查询对象
     *  @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域
     * @return  树节点,出现错误会在异常处理器中统一返回Json
     */
     List<Tree> treeFunctionByParent(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum);
 
    /**
     * 通过上级节点获取当前角色有权限的下级的所有的菜单节点
     *  @param treeQueryObject 树查询对象
     *  @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域
     * @return 树节点,出现错误会在异常处理器中统一返回Json
     */
     List<Tree> treeCurrentFunctionByParent(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) ;
 
    /**
     * 获取系统功能列表
     * @param queryMap 查询条件
     * @param pageHelper 排序和分页对象
     * @return DataGrid 系统功能列表
     */
    DataGrid<SmFunctionVO> dataGrid(Map<String, String> queryMap, PageHelper pageHelper);
 
    /**
     * 根据角色主键获取关联的权限
     * @param roleOid 角色主键
     * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域
     * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkUser.xxxx
     * @return 权限的显示对象
     */
    List<SmFunctionVO> listFunctionByRoleOid(String roleOid, Map<String, String> queryMap, ResourceControlTypeEnum resourceControlTypeEnum);
 
    /**
     * 获取未关联某个角色的权限
     * @param roleOid 角色主键
     * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域
     * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkUser.xxxx
     * @return 权限的显示对象
     */
    List<SmFunctionVO> listFunctionUnInRoleOid(String roleOid, Map<String, String> queryMap, ResourceControlTypeEnum resourceControlTypeEnum);
 
    /**
     * 获取未关联某个角色的权限
     * @param roleOid 角色主键
     * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkUser.xxxx
     * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域
     * @param pageHelper 分页和排序对象,老平台不支持使用权限编号来排序
     * @return 权限的显示对象
     */
    DataGrid<SmFunctionVO> gridFunctionUninRoleOid(String roleOid, Map<String, String> queryMap, PageHelper pageHelper, ResourceControlTypeEnum resourceControlTypeEnum);
 
    /**
     * 批量根据角色的主键来获取权限
     * @param roleOidCollection 角色主键集合
     * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域
     * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkRole.xxxx
     * @return 权限的显示对象,key是角色主键,value是这个角色关联的权限
     */
    Map<String,List<SmFunctionVO>> batchListFunctionByRoleOids(Collection<String> roleOidCollection, Map<String, String> queryMap, ResourceControlTypeEnum resourceControlTypeEnum);
 
    /**
     * 批量根据角色的主键获取关联的权限
     * @param roleOidCollection 角色的主键集合
     * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkRole.xxxx
     * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域
     * @return 权限的显示对象,会去除重复的项
     */
    List<SmFunctionVO> listFunctionByRoleOids(Collection<String> roleOidCollection, Map<String, String> queryMap, ResourceControlTypeEnum resourceControlTypeEnum);
 
    /**
     * 批量根据角色的主键获取关联的权限
     * @param roleOidCollection 角色的主键集合
     * @param queryMap 查询条件,如果需要使用角色的属性来查询可以使用pkRole.xxxx
     * @param resourceControlTypeEnum 角色控制区域,也是功能控制的区域
     * @param pageHelper 分页对象
     * @return 权限的显示对象,会去除重复的项
     */
    DataGrid<SmFunctionVO> gridFunctionByRoleOids(Collection<String> roleOidCollection, Map<String, String> queryMap, PageHelper pageHelper, ResourceControlTypeEnum resourceControlTypeEnum);
 
    UIContentVO getUIContentByBtmTypeAndId(TreeQueryObject treeQueryObject, ResourceControlTypeEnum bs) throws PLException;
    /**
     * 获取授权的模块
     * @param roleId 角色主键
     * @return 所具有权限的主键
     * @throws PLException
     */
    List<String> getSysModelAuth(String roleId) throws PLException;
 
    /**
     * 保存授权的模块
     * @param roleRightDTOS 用户选择授权模块信息
     * @param roleId 角色主键
     * @return 授权结果
     * @throws PLException
     */
    BaseResult saveRoleRight(List<RoleRightParamDTO> roleRightDTOS, String roleId) throws PLException;
    /**
     * 获取所授权的模块权限
     * @param roleName 搜索的角色
     * @return 角色列表
     */
    List<RoleInfoDTO> getRoleList(String roleName) throws PLException;
}