WholeProcessPlatform/backend/src/main/resources/mapper/system/SysUserMapper.xml

128 lines
4.0 KiB
XML
Raw Normal View History

2026-03-25 10:02:19 +08:00
<?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="com.yfd.platform.system.mapper.SysUserMapper">
<!--根据用户id 和角色id 查询 系统角色用户对照表-->
<select id="list" resultType="java.util.Map">
select * from sys_user
where 1=1
<if test="orgid != null">
and orgid = #{orgid}
</if>
<if test="username != null">
and username = #{username}
</if>
<if test="mobile != null">
and mobile = #{mobile}
</if>
<if test="status != null">
and status = #{status}
</if>
ORDER BY orgid,code
<if test="total != null and size != null">
LIMIT #{total},#{size}
</if>
</select>
<!--用户分配角色 系统角色用户对照新增数据-->
<insert id="addUserRoles">
2026-03-27 16:33:28 +08:00
insert into sys_role_users values (#{id},#{roleid},#{userid})
2026-03-25 10:02:19 +08:00
</insert>
<!--根据用户id 和角色id 查询 系统角色用户对照表-->
<select id="getRoleUsersByid" resultType="java.util.Map">
select id,roleid,userid from sys_role_users where roleid=#{roleid} and userid=#{userid}
</select>
<!--根据用户表id查询角色表所有角色-->
<select id="getLevel" resultType="java.util.Map">
select id,level,rolename, from sys_role where id in (select roleid from sys_role_users where userid=#{userid} )
</select>
<!--根据用户表id查询角色表所有角色id-->
<select id="getRoleid" resultType="String">
select roleid from sys_role_users where userid=#{userid}
</select>
2026-03-27 16:33:28 +08:00
<!--根据用户表 id 查询角色表最大级别-->
2026-03-25 10:02:19 +08:00
<select id="getMaxLevel" resultType="String">
2026-04-29 11:19:09 +08:00
SELECT MIN(TO_NUMBER(t.level_col))
FROM (
SELECT r."LEVEL" AS level_col
FROM sys_role r
WHERE r.id IN (SELECT roleid FROM sys_role_users WHERE userid = #{userId})
) t
2026-03-25 10:02:19 +08:00
</select>
2026-03-27 16:33:28 +08:00
<select id="queryUsers" resultType="com.yfd.platform.system.domain.SysUser">
2026-03-25 10:02:19 +08:00
SELECT DISTINCT
u.id,
u.usertype,
u.username,
u.nickname,
u.sex,
u.email,
u.phone,
u.avatar,
u.orgid,
2026-03-27 16:33:28 +08:00
u.status,
2026-03-25 10:02:19 +08:00
u.lastmodifier,
u.lastmodifydate
FROM
sys_user u
2026-04-28 16:38:15 +08:00
WHERE
1 = 1
AND ( ( u.REG_STATUS != 0 AND u.REG_STATUS != 2 ) OR u.REG_STATUS IS NULL )
AND u.usertype != 0
2026-03-25 10:02:19 +08:00
<if test="orgid != null">
and u.orgid = #{orgid}
</if>
<if test="username != null">
2026-03-27 16:33:28 +08:00
and u.username LIKE '%' || #{username} || '%'
2026-03-25 10:02:19 +08:00
</if>
ORDER BY u.lastmodifydate DESC
</select>
<select id="getOrganizationByid" resultType="java.util.Map">
2026-04-28 16:38:15 +08:00
SELECT DISTINCT
u.id AS "id",
u.username AS "username",
u.nickname AS "nickname",
u.email AS "email",
u.phone AS "phone",
u.avatar AS "avatar",
o.orgname AS "orgname",
o.id AS "oid",
op.orgname AS "porgname",
op.id AS "poid"
FROM sys_user u
INNER JOIN sys_organization o ON u.orgid = o.id
INNER JOIN sys_organization op ON o.parentid = op.id
WHERE u.id = #{id}
2026-03-25 10:02:19 +08:00
</select>
<delete id="delRoleUsersByUserid">
delete from sys_role_users where userid=#{userid}
</delete>
<delete id="delInRoleUsersByUserid">
delete from sys_role_users
where
userid=#{userid}
and roleid not in
<foreach collection="roleids" item="roleids" open="(" separator=","
close=")">
#{roleids}
</foreach>
</delete>
<delete id="delRoleUsersByUserIds">
DELETE FROM sys_role_users WHERE userid IN
<foreach collection="ids" item="id" open="(" separator=","
close=")">
#{id}
</foreach>
</delete>
</mapper>