| | |
| | | AND date_format(u.create_time,'%Y%m%d') <= date_format(#{params.endTime},'%Y%m%d') |
| | | </if> |
| | | <if test="deptId != null and deptId != 0"> |
| | | <![CDATA[ |
| | | AND u.dept_id IN ( |
| | | -- 查询用户所属分公司及其所有子部门 |
| | | SELECT t.dept_id FROM sys_dept t |
| | | WHERE t.del_flag = '0' AND ( |
| | | -- 情况1:传入的部门就是分公司(parent_id=100) |
| | | (t.dept_id = ]]>#{deptId}<![CDATA[ AND EXISTS ( |
| | | SELECT 1 FROM sys_dept d WHERE d.dept_id = ]]>#{deptId}<![CDATA[ AND d.parent_id = 100 |
| | | )) |
| | | OR |
| | | -- 查询该分公司的所有子部门 |
| | | (find_in_set( |
| | | (SELECT d.dept_id FROM sys_dept d WHERE d.dept_id = ]]>#{deptId}<![CDATA[ AND d.parent_id = 100), |
| | | t.ancestors |
| | | ) > 0) |
| | | OR |
| | | -- 情况2:传入的是子部门,找到其所属分公司 |
| | | (t.dept_id IN ( |
| | | SELECT branch.dept_id FROM sys_dept branch |
| | | WHERE branch.parent_id = 100 |
| | | AND find_in_set(branch.dept_id, ( |
| | | SELECT sub.ancestors FROM sys_dept sub WHERE sub.dept_id = ]]>#{deptId}<![CDATA[ |
| | | )) > 0 |
| | | )) |
| | | OR |
| | | -- 查询该分公司的所有子部门 |
| | | (find_in_set( |
| | | (SELECT branch.dept_id FROM sys_dept branch |
| | | WHERE branch.parent_id = 100 |
| | | AND find_in_set(branch.dept_id, ( |
| | | SELECT sub.ancestors FROM sys_dept sub WHERE sub.dept_id = ]]>#{deptId}<![CDATA[ |
| | | )) > 0 |
| | | ), |
| | | t.ancestors |
| | | ) > 0) |
| | | ) |
| | | ) |
| | | ]]> |
| | | -- 查询指定部门及其所有子部门的用户 |
| | | AND (u.dept_id = #{deptId} OR u.dept_id IN ( |
| | | SELECT dept_id FROM sys_dept |
| | | WHERE del_flag = '0' AND find_in_set(#{deptId}, ancestors) > 0 |
| | | )) |
| | | </if> |
| | | <!-- 数据范围过滤 --> |
| | | ${params.dataScope} |
| | |
| | | where u.open_id = #{openId} and u.del_flag = '0' |
| | | </select> |
| | | |
| | | <!-- 根据分公司ID列表查询用户(包含分公司及其所有子部门的用户) --> |
| | | <select id="selectUsersByBranchDeptIds" resultMap="SysUserResult"> |
| | | SELECT DISTINCT |
| | | u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, |
| | | u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, |
| | | d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, |
| | | r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status |
| | | FROM sys_user u |
| | | LEFT JOIN sys_dept d ON u.dept_id = d.dept_id |
| | | LEFT JOIN sys_user_role ur ON u.user_id = ur.user_id |
| | | LEFT JOIN sys_role r ON r.role_id = ur.role_id |
| | | WHERE u.del_flag = '0' |
| | | AND u.status = '0' |
| | | AND u.dept_id IN ( |
| | | -- 查询分公司及其所有子部门 |
| | | SELECT t.dept_id |
| | | FROM sys_dept t |
| | | WHERE t.del_flag = '0' |
| | | AND ( |
| | | -- 分公司本身 |
| | | t.dept_id IN |
| | | <foreach collection="branchDeptIds" item="deptId" open="(" separator="," close=")"> |
| | | #{deptId} |
| | | </foreach> |
| | | OR |
| | | -- 分公司的子部门(通过ancestors字段匹配) |
| | | <foreach collection="branchDeptIds" item="deptId" open="(" separator=" OR " close=")"> |
| | | find_in_set(#{deptId}, t.ancestors) > 0 |
| | | </foreach> |
| | | ) |
| | | ) |
| | | ORDER BY u.create_time DESC |
| | | </select> |
| | | |
| | | </mapper> |