Files
xinnengyuan/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
2025-09-26 18:55:07 +08:00

144 lines
5.3 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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>