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
package org.jeecg.modules.system.mapper;
 
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.model.SysUserSysDepartModel;
import org.jeecg.modules.system.vo.MdcUserProVo;
import org.jeecg.modules.system.vo.SysUserDepVo;
 
import java.util.List;
 
/**
 * <p>
 * 用户表 Mapper 接口
 * </p>
 *
 * @Author scott
 * @since 2018-12-20
 */
public interface SysUserMapper extends BaseMapper<SysUser> {
    /**
      * 通过用户账号查询用户信息
     * @param username
     * @return
     */
    public SysUser getUserByName(@Param("username") String username);
 
    /**
     *  根据部门Id查询用户信息
     * @param page
     * @param departId
     * @param username 用户登录账户
     * @return
     */
    IPage<SysUser> getUserByDepId(Page page, @Param("departId") String departId, @Param("username") String username);
 
    /**
     *  根据用户Ids,查询用户所属部门名称信息
     * @param userIds
     * @return
     */
    List<SysUserDepVo> getDepNamesByUserIds(@Param("userIds")List<String> userIds);
 
    /**
     *  根据部门Ids,查询部门下用户信息
     * @param page
     * @param departIds
     * @param username 用户登录账户
     * @return
     */
    IPage<SysUser> getUserByDepIds(Page page, @Param("departIds") List<String> departIds, @Param("username") String username);
 
    /**
     * 根据角色Id查询用户信息
     * @param page
     * @param roleId 角色id
     * @param username 用户登录账户
     * @return
     */
    IPage<SysUser> getUserByRoleId(Page page, @Param("roleId") String roleId, @Param("username") String username);
    
    /**
     * 根据用户名设置部门ID
     * @param username
     * @param orgCode
     */
    void updateUserDepart(@Param("username") String username,@Param("orgCode") String orgCode);
    
    /**
     * 根据手机号查询用户信息
     * @param phone
     * @return
     */
    public SysUser getUserByPhone(@Param("phone") String phone);
 
    /** 根据工号查询用户信息 */
    SysUser getUserByWorkNo(@Param("workNo") String workNo);
    
    
    /**
     * 根据邮箱查询用户信息
     * @param email
     * @return
     */
    public SysUser getUserByEmail(@Param("email")String email);
 
    /**
     * 根据 orgCode 查询用户,包括子部门下的用户
     *
     * @param page 分页对象, xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位(你可以继承Page实现自己的分页对象)
     * @param orgCode
     * @param userParams 用户查询条件,可为空
     * @return
     */
    List<SysUserSysDepartModel> getUserByOrgCode(IPage page, @Param("orgCode") String orgCode, @Param("userParams") SysUser userParams);
 
 
    /**
     * 查询 getUserByOrgCode 的Total
     *
     * @param orgCode
     * @param userParams 用户查询条件,可为空
     * @return
     */
    Integer getUserByOrgCodeTotal(@Param("orgCode") String orgCode, @Param("userParams") SysUser userParams);
 
    /**
     * 批量删除角色与用户关系
     * @Author scott
     * @Date 2019/12/13 16:10
     * @param roleIdArray
     */
    void deleteBathRoleUserRelation(@Param("roleIdArray") String[] roleIdArray);
 
    /**
     * 批量删除角色与权限关系
     * @Author scott
     * @Date 2019/12/13 16:10
     * @param roleIdArray
     */
    void deleteBathRolePermissionRelation(@Param("roleIdArray") String[] roleIdArray);
 
    /**
     * 查询被逻辑删除的用户
     * @param wrapper
     * @return List<SysUser>
     */
    List<SysUser> selectLogicDeleted(@Param(Constants.WRAPPER) Wrapper<SysUser> wrapper);
 
    /**
     * 还原被逻辑删除的用户
     * @param userIds 用户id
     * @param entity
     * @return int
     */
    int revertLogicDeleted(@Param("userIds") List<String> userIds, @Param("entity") SysUser entity);
 
    /**
     * 彻底删除被逻辑删除的用户
     * @param userIds 多个用户id
     * @return int
     */
    int deleteLogicDeleted(@Param("userIds") List<String> userIds);
 
    /**
     * 更新空字符串为null【此写法有sql注入风险,禁止随便用】
     * @param fieldName
     * @return int
     */
    @Deprecated
    int updateNullByEmptyString(@Param("fieldName") String fieldName);
    
    /**
     *  根据部门Ids,查询部门下用户信息
     * @param departIds
     * @param username 用户账户名称
     * @return
     */
    List<SysUser> queryByDepIds(@Param("departIds")List<String> departIds,@Param("username") String username);
 
    /**
     * 根据用户Ids,查询用户所属产线名称信息
     */
    List<MdcUserProVo> getProNamesByUserIds(@Param("userIds") List<String> userIds);
 
    /**
     * 根据角色Id查询该角色下的所有用户信息
     *
     * @param
     * @return
     */
    List<SysUser> getAllUsersByRoleId(@Param("roleId") String roleId);
 
 
 
    /**
     * 根据角色编码查询用户id集合
     */
    List<String> getUserByRoleCode(@Param("roleCode") String roleCode);
 
    /**
     * 根据角色编码和设备编号查询用户
     */
    List<SysUser> getEquipmentAdmin(@Param("roleCode") String roleCode, @Param("equipmentId") String equipmentId);
 
}