144 lines
5.3 KiB
XML
144 lines
5.3 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
||
<!DOCTYPE mapper
|
||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||
<mapper namespace="org.dromara.system.mapper.SysUserMapper">
|
||
|
||
<resultMap type="org.dromara.system.domain.vo.SysUserVo" id="SysUserResult">
|
||
<id property="userId" column="user_id"/>
|
||
</resultMap>
|
||
<resultMap type="org.dromara.system.domain.vo.SysUserExportVo" id="SysUserExportResult">
|
||
<id property="userId" column="user_id"/>
|
||
</resultMap>
|
||
|
||
<select id="selectPageUserList" resultMap="SysUserResult">
|
||
select
|
||
<if test="ew.getSqlSelect != null">
|
||
${ew.getSqlSelect}
|
||
</if>
|
||
<if test="ew.getSqlSelect == null">
|
||
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
|
||
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.app_user_type,u.contractor_id
|
||
</if>
|
||
from sys_user u
|
||
${ew.getCustomSqlSegment}
|
||
</select>
|
||
|
||
<select id="selectUserList" resultMap="SysUserResult">
|
||
select
|
||
<if test="ew.getSqlSelect != null">
|
||
${ew.getSqlSelect}
|
||
</if>
|
||
<if test="ew.getSqlSelect == null">
|
||
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
|
||
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark
|
||
</if>
|
||
from sys_user u
|
||
${ew.getCustomSqlSegment}
|
||
</select>
|
||
|
||
<select id="selectUserExportList" resultMap="SysUserExportResult">
|
||
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
|
||
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
||
d.dept_name, d.leader, u1.user_name as leaderName
|
||
from sys_user u
|
||
left join sys_dept d on u.dept_id = d.dept_id
|
||
left join sys_user u1 on u1.user_id = d.leader
|
||
${ew.getCustomSqlSegment}
|
||
</select>
|
||
|
||
<select id="selectAllocatedList" resultMap="SysUserResult">
|
||
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
|
||
from sys_user u
|
||
left join sys_dept d on u.dept_id = d.dept_id
|
||
left join sys_user_role sur on u.user_id = sur.user_id
|
||
left join sys_role r on r.role_id = sur.role_id
|
||
${ew.getCustomSqlSegment}
|
||
</select>
|
||
|
||
<select id="selectUnallocatedList" resultMap="SysUserResult">
|
||
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
|
||
from sys_user u
|
||
left join sys_dept d on u.dept_id = d.dept_id
|
||
left join sys_user_role sur on u.user_id = sur.user_id
|
||
left join sys_role r on r.role_id = sur.role_id
|
||
${ew.getCustomSqlSegment}
|
||
</select>
|
||
|
||
<select id="countUserById" resultType="Long">
|
||
select count(*) from sys_user where del_flag = '0' and user_id = #{userId}
|
||
</select>
|
||
|
||
<select id="thisAlldepIds" resultType="Long">
|
||
WITH RECURSIVE dept_tree AS (
|
||
-- 首先获取当前部门自身的记录
|
||
SELECT
|
||
dept_id,
|
||
parent_id,
|
||
dept_name,
|
||
dept_category,
|
||
order_num,
|
||
status,
|
||
is_show,
|
||
0 as level -- 自身级别设为0,子部门从1开始
|
||
FROM sys_dept
|
||
WHERE dept_id = #{depId} -- 匹配当前部门ID
|
||
AND del_flag = '0'
|
||
AND status = '0'
|
||
|
||
UNION ALL
|
||
|
||
-- 然后递归查询所有子部门
|
||
SELECT
|
||
d.dept_id,
|
||
d.parent_id,
|
||
d.dept_name,
|
||
d.dept_category,
|
||
d.order_num,
|
||
d.status,
|
||
d.is_show,
|
||
dt.level + 1
|
||
FROM sys_dept d
|
||
INNER JOIN dept_tree dt ON d.parent_id = dt.dept_id
|
||
WHERE d.del_flag = '0'
|
||
AND d.status = '0'
|
||
)
|
||
SELECT
|
||
dept_id
|
||
FROM dept_tree
|
||
WHERE is_show = '1'
|
||
ORDER BY level, order_num;
|
||
</select>
|
||
<select id="selectVoListByDept" resultType="org.dromara.system.domain.vo.SysUserVo">
|
||
select
|
||
<if test="ew.getSqlSelect != null">
|
||
${ew.getSqlSelect}
|
||
</if>
|
||
<if test="ew.getSqlSelect == null">
|
||
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
|
||
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.app_user_type
|
||
</if>
|
||
from sys_user u
|
||
${ew.getCustomSqlSegment}
|
||
</select>
|
||
|
||
<select id="selectUserListByAppUserType" resultType="org.dromara.system.domain.vo.SysUserVo">
|
||
SELECT
|
||
su.user_id,
|
||
su.nick_name,
|
||
su.phonenumber
|
||
FROM
|
||
sys_user su
|
||
INNER JOIN
|
||
bus_user_project_relevancy bur
|
||
ON su.user_id = bur.user_id
|
||
WHERE
|
||
bur.project_id = #{projectId}
|
||
AND su.app_user_type = #{appUserType}
|
||
AND su.del_flag = '0'
|
||
AND su.status = '0'
|
||
</select>
|
||
|
||
|
||
</mapper>
|