zhangherong
2025-06-26 0a66b4e946ebbe3ac09a193ad5a60cf7a95fe99d
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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
package org.jeecg.modules.system.service;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.system.vo.SysUserCacheInfo;
import org.jeecg.modules.system.entity.SysRoleIndex;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.model.SysUserSysDepartModel;
import org.jeecg.modules.system.vo.UserSelector;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
 
/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @Author scott
 * @since 2018-12-20
 */
public interface ISysUserService extends IService<SysUser> {
 
    /**
     * 重置密码
     *
     * @param username
     * @param oldpassword
     * @param newpassword
     * @param confirmpassword
     * @return
     */
    Result<?> resetPassword(String username, String oldpassword, String newpassword, String confirmpassword);
 
    /**
     * 修改密码
     *
     * @param sysUser
     * @return
     */
    Result<?> changePassword(SysUser sysUser);
 
    /**
     * 删除用户
     * @param userId
     * @return
     */
    boolean deleteUser(String userId);
 
    /**
     * 批量删除用户
     * @param userIds
     * @return
     */
    boolean deleteBatchUsers(String userIds);
 
    /**
     * 根据用户名查询
     * @param username 用户名
     * @return SysUser
     */
    SysUser getUserByName(String username);
 
    /**
     * 添加用户和用户角色关系
     * @param user
     * @param roles
     */
    void addUserWithRole(SysUser user, String roles);
 
 
    /**
     * 修改用户和用户角色关系
     * @param user
     * @param roles
     */
    void editUserWithRole(SysUser user, String roles);
 
    /**
     * 获取用户的授权角色
     * @param username
     * @return
     */
    List<String> getRole(String username);
 
    /**
     * 获取根据登录用户的角色获取动态首页
     *
     * @param username
     * @param version 前端UI版本
     * @return
     */
    SysRoleIndex getDynamicIndexByUserRole(String username, String version);
 
    /**
      * 查询用户信息包括 部门信息
     * @param username
     * @return
     */
    @Deprecated
    SysUserCacheInfo getCacheUser(String username);
 
    /**
     * 根据部门Id查询
     * @param page
     * @param departId 部门id
     * @param username 用户账户名称
     * @return
     */
    IPage<SysUser> getUserByDepId(Page<SysUser> page, String departId, String username);
 
    /**
     * 根据部门Ids查询
     * @param page
     * @param departIds  部门id集合
     * @param username 用户账户名称
     * @return
     */
    IPage<SysUser> getUserByDepIds(Page<SysUser> page, List<String> departIds, String username);
 
    /**
     * 根据 userIds查询,查询用户所属部门的名称(多个部门名逗号隔开)
     * @param userIds
     * @return
     */
    Map<String,String> getDepNamesByUserIds(List<String> userIds);
 
    /**
     * 根据部门 Id 和 QueryWrapper 查询
     *
     * @param page
     * @param departId
     * @param queryWrapper
     * @return
     */
    //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245【漏洞】发现新漏洞待处理20220906 ----sql注入 方法没有使用,注掉
    // public IPage<SysUser> getUserByDepartIdAndQueryWrapper(Page<SysUser> page, String departId, QueryWrapper<SysUser> queryWrapper);
    //update-end-author:taoyan date:2022-9-13 for: VUEN-2245【漏洞】发现新漏洞待处理20220906 ----sql注入 方法没有使用,注掉
 
    /**
     * 根据 orgCode 查询用户,包括子部门下的用户
     *
     * @param orgCode
     * @param userParams 用户查询条件,可为空
     * @param page 分页参数
     * @return
     */
    IPage<SysUserSysDepartModel> queryUserByOrgCode(String orgCode, SysUser userParams, IPage page);
 
    /**
     * 根据角色Id查询
     * @param page
     * @param roleId 角色id
     * @param username 用户账户名称
     * @return
     */
    IPage<SysUser> getUserByRoleId(Page<SysUser> page, String roleId, String username);
 
    /**
     * 通过用户名获取用户角色集合
     *
     * @param username 用户名
     * @return 角色集合
     */
    Set<String> getUserRolesSet(String username);
 
    /**
     * 通过用户名获取用户权限集合
     *
     * @param username 用户名
     * @return 权限集合
     */
    Set<String> getUserPermissionsSet(String username);
 
    /**
     * 根据用户名设置部门ID
     * @param username
     * @param orgCode
     */
    void updateUserDepart(String username,String orgCode);
 
    /**
     * 根据手机号获取用户名和密码
     * @param phone 手机号
     * @return SysUser
     */
    SysUser getUserByPhone(String phone);
 
 
    /**
     * 根据邮箱获取用户
     * @param email 邮箱
     * @return SysUser
     */
    SysUser getUserByEmail(String email);
 
 
    /**
     * 添加用户和用户部门关系
     * @param user
     * @param selectedParts
     */
    void addUserWithDepart(SysUser user, String selectedParts);
 
    /**
     * 编辑用户和用户部门关系
     * @param user
     * @param departs
     */
    void editUserWithDepart(SysUser user, String departs);
 
    /**
       * 校验用户是否有效
     * @param sysUser
     * @return
     */
    Result checkUserIsEffective(SysUser sysUser);
 
    /**
     * 查询被逻辑删除的用户
     * @return List<SysUser>
     */
    List<SysUser> queryLogicDeleted();
 
    /**
     * 查询被逻辑删除的用户(可拼装查询条件)
     * @param wrapper
     * @return List<SysUser>
     */
    List<SysUser> queryLogicDeleted(LambdaQueryWrapper<SysUser> wrapper);
 
    /**
     * 还原被逻辑删除的用户
     * @param userIds  存放用户id集合
     * @param updateEntity
     * @return boolean
     */
    boolean revertLogicDeleted(List<String> userIds, SysUser updateEntity);
 
    /**
     * 彻底删除被逻辑删除的用户
     * @param userIds 存放用户id集合
     * @return boolean
     */
    boolean removeLogicDeleted(List<String> userIds);
 
    /**
     * 更新手机号、邮箱空字符串为 null
     * @return boolean
     */
    @Transactional(rollbackFor = Exception.class)
    boolean updateNullPhoneEmail();
 
    /**
     * 保存第三方用户信息
     * @param sysUser
     */
    void saveThirdUser(SysUser sysUser);
 
    /**
     * 根据部门Ids查询
     * @param departIds 部门id集合
     * @param username 用户账户名称
     * @return
     */
    List<SysUser> queryByDepIds(List<String> departIds, String username);
 
    /**
     * 保存用户
     * @param user 用户
     * @param selectedRoles 选择的角色id,多个以逗号隔开
     * @param selectedDeparts 选择的部门id,多个以逗号隔开
     * @param selectedProductions 选择的产线id,多个以逗号隔开
     */
    void saveUser(SysUser user, String selectedRoles, String selectedDeparts, String selectedProductions);
 
    /**
     * 编辑用户
     * @param user 用户
     * @param roles 选择的角色id,多个以逗号隔开
     * @param departs 选择的部门id,多个以逗号隔开
     * @param productions 选择的产线id,多个以逗号隔开
     */
    void editUser(SysUser user, String roles, String departs, String productions);
 
    /**
     * userId转为username
     * @param userIdList
     * @return List<String>
     */
    List<String> userIdToUsername(Collection<String> userIdList);
 
 
    /**
     * 获取用户信息 字段信息是加密后的 【加密用户信息】
     * @param username
     * @return
     */
    LoginUser getEncodeUserInfo(String username);
 
    /**
     * 根据 userIds查询,查询用户所属产线的名称(多个产线名逗号隔开)
     */
    Map<String, String> getProNamesByUserIds(List<String> userIds);
 
    /**
     * 根据角色Id查询该角色下的所有用户信息,不分页
     *
     * @param
     * @return
     */
    List<SysUser> getAllUsersByRoleId(String roleId);
 
    List<String> getUserByRoleCode(String roleCode);
 
    List<SysUser> getEquipmentAdmin(String roleCode, String equipmentId);
 
    /**
     * 选择用户
     * @param equipmentCode 选择的设备ID
     * @param productionId 选择的车间ID
     * @param positionCode 岗位编号
     * @return
     */
    List<UserSelector> selectOperatorList(String equipmentCode, String productionId, String positionCode);
 
    /**
     * 选择用户
     * @param positionCode 岗位编号
     * @return
     */
    List<UserSelector> selectOperatorList( String positionCode);
 
    /**
     * 根据用户名批量获取真实姓名映射
     * @param userNames 用户名列表
     * @return 用户名->真实姓名的映射(不存在时值为null)
     */
    Map<String, String> getUserRealNamesByUserNames(List<String> userNames);
 
 
    /**
     * 根据班组Id查询
     * @param page
     * @param groupId 班组id
     * @param username 用户账户名称
     * @return
     */
    IPage<SysUser> getUserByGroupId(Page<SysUser> page, String groupId, String username);
}