zxl
2026-03-25 8819762ad58f77e606431fca4072c19e542e6055
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
package com.tievd.cube.modules.system.service;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tievd.cube.commons.base.Result;
import com.tievd.cube.modules.system.entity.SysUser;
import com.tievd.cube.modules.system.model.SysUserSysDepartModel;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.List;
import java.util.Map;
 
/**
 * 用户管理
 *
 * @author 杨欣武
 * @version 2.4.0
 * @since 2022-05-07
 */
public interface ISysUserService extends IService<SysUser> {
 
    /**
     * 新增用户
     *
     * @param user            用户基础信息
     * @param selectedRoles   用户绑定的角色
     * @param selectedDeparts 用户绑定的部门
     */
    void add(SysUser user, String selectedRoles, String selectedDeparts);
 
    /**
     * 用户自己修改密码
     */
    Result<?> changePassword(String oldPassword, String newPassword, String confirmPassword);
 
    /**
     * 管理员修改密码
     */
    Result<?> changePassword(SysUser sysUser);
 
    /**
     * 删除用户
     */
    void deleteUser(String userId);
 
    /**
     * 批量删除用户
     */
    void deleteBatchUsers(String userIds);
 
    SysUser getUserByName(String username);
 
    /**
     * 添加用户和用户角色关系
     */
    void addUserWithRole(SysUser user, String roles);
 
    /**
     * 修改用户和用户角色关系
     */
    void editUserWithRole(SysUser user, String roles);
 
    /**
     * 获取用户的授权角色
     */
    List<String> getRole(String username);
 
    /**
     * 根据部门Id查询
     */
    IPage<SysUser> getUserByDepId(Page<SysUser> page, String departId, String username);
 
    /**
     * 根据部门Ids查询
     */
    IPage<SysUser> getUserByDepIds(Page<SysUser> page, List<String> departIds, String username);
 
    /**
     * 根据 userIds查询,查询用户所属部门的名称(多个部门名逗号隔开)
     */
    Map<String, String> getDepNamesByUserIds(List<String> userIds);
 
    /**
     * 根据部门 Id 和 QueryWrapper 查询
     */
    IPage<SysUser> getUserByDepartIdAndQueryWrapper(Page<SysUser> page, String departId, QueryWrapper<SysUser> queryWrapper);
 
    /**
     * 根据 orgCode 查询用户,包括子部门下的用户
     *
     * @param orgCode    部门编码
     * @param userParams 用户查询条件,可为空
     * @param page       分页参数
     */
    List<SysUserSysDepartModel> queryUserByOrgCode(String orgCode, SysUser userParams, IPage<?> page);
 
    /**
     * 根据角色Id查询
     */
    IPage<SysUser> getUserByRoleId(Page<SysUser> page, String roleId, String username);
 
    /**
     * 根据用户名设置部门ID
     */
    void updateUserDepart(String username, String orgCode);
 
    /**
     * 根据手机号获取用户名和密码
     */
    SysUser getUserByPhone(String phone);
 
    /**
     * 根据邮箱获取用户
     */
    SysUser getUserByEmail(String email);
 
    /**
     * 添加用户和用户部门关系
     */
    void addUserWithDepart(SysUser user, String selectedParts);
 
    /**
     * 编辑用户和用户部门关系
     */
    void editUserWithDepart(SysUser user, String departs);
 
    /**
     * 查询被逻辑删除的用户
     */
    List<SysUser> queryLogicDeleted();
 
    /**
     * 查询被逻辑删除的用户(可拼装查询条件)
     */
    List<SysUser> queryLogicDeleted(LambdaQueryWrapper<SysUser> wrapper);
 
    /**
     * 还原被逻辑删除的用户
     */
    boolean revertLogicDeleted(List<String> userIds, SysUser updateEntity);
 
    /**
     * 彻底删除被逻辑删除的用户
     */
    boolean removeLogicDeleted(List<String> userIds);
 
    /**
     * 更新手机号、邮箱空字符串为 null
     */
    @Transactional(rollbackFor = Exception.class)
    boolean updateNullPhoneEmail();
 
    /**
     * 保存第三方用户信息
     */
    void saveThirdUser(SysUser sysUser);
 
    /**
     * 根据部门Ids查询
     */
    List<SysUser> queryByDepIds(List<String> departIds, String username);
}