RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

281 lines
9.8 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="com.ruoyi.system.mapper.SysUserMapper">
<resultMap id="UserInfo" type="com.ruoyi.common.core.domain.model.UserInfo">
<id property="userId" column="user_id" />
<result property="userName" column="user_name" />
<result property="nickName" column="nick_name" />
<result property="email" column="email" />
<result property="phonenumber" column="phonenumber" />
<result property="sex" column="sex" />
<result property="avatar" column="avatar" />
<result property="password" column="password" />
<result property="status" column="status" />
<result property="delFlag" column="del_flag" />
<result property="loginIp" column="login_ip" />
<result property="loginDate" column="login_date" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="version" column="version" />
<collection property="roles" ofType="com.ruoyi.common.core.domain.model.RoleInfo">
<id property="roleId" column="role_id" />
<result property="relUserId" column="rel_user_id" />
<result property="relStoreId" column="rel_store_id" />
<result property="roleName" column="role_name" />
<result property="roleKey" column="role_key" />
<result property="roleSort" column="role_sort" />
<result property="storeId" column="store_id" />
<result property="status" column="role_status" />
<result property="remark" column="role_remark" />
<collection property="menus" ofType="com.ruoyi.common.core.domain.model.MenuInfo">
<id property="menuId" column="menu_id" />
<result property="relRoleId" column="rel_role_id" />
<result property="menuName" column="menu_name" />
<result property="parentId" column="parent_id" />
<result property="orderNum" column="order_num" />
<result property="path" column="path" />
<result property="component" column="component" />
<result property="query" column="query" />
<result property="routeName" column="route_name" />
<result property="isFrame" column="is_frame" />
<result property="isCache" column="is_cache" />
<result property="menuType" column="menu_type" />
<result property="visible" column="visible" />
<result property="status" column="menu_status" />
<result property="perms" column="perms" />
<result property="icon" column="icon" />
<result property="remark" column="menu_remark" />
</collection>
</collection>
</resultMap>
<resultMap id="UserListItem" type="com.ruoyi.common.core.domain.model.UserListItem">
<id property="userId" column="user_id" />
<result property="userName" column="user_name" />
<result property="nickName" column="nick_name" />
<result property="email" column="email" />
<result property="phonenumber" column="phonenumber" />
<result property="sex" column="sex" />
<result property="avatar" column="avatar" />
<result property="password" column="password" />
<result property="status" column="status" />
<result property="delFlag" column="del_flag" />
<result property="loginIp" column="login_ip" />
<result property="loginDate" column="login_date" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="version" column="version" />
<collection property="roles" ofType="com.ruoyi.common.core.domain.model.UserListItem$Role">
<id property="roleId" column="role_id" />
<result property="roleName" column="role_name" />
<result property="storeId" column="store_id" />
<result property="storeName" column="store_name" />
</collection>
</resultMap>
<select id="checkUserNameUnique" parameterType="String" resultType="com.ruoyi.common.core.domain.entity.SysUser">
select user_id, user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1
</select>
<select id="checkPhoneUnique" parameterType="String" resultType="com.ruoyi.common.core.domain.entity.SysUser">
select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} and del_flag = '0' limit 1
</select>
<select id="checkEmailUnique" parameterType="String" resultType="com.ruoyi.common.core.domain.entity.SysUser">
select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
</select>
<select id="getUserInfoById" resultMap="UserInfo">
SELECT
su.*,
sur.user_id AS rel_user_id,
sur.store_id AS rel_store_id,
sr.role_id,
sr.role_name,
sr.role_key,
sr.role_sort,
sr.store_id,
sr.status AS role_status,
sr.remark AS role_remark,
srm.role_id AS rel_role_id,
sm.menu_id,
sm.menu_name,
sm.parent_id,
sm.order_num,
sm.path,
sm.component,
sm.query,
sm.route_name,
sm.is_frame,
sm.is_cache,
sm.menu_type,
sm.visible,
sm.status AS menu_status,
sm.perms,
sm.icon,
sm.remark AS menu_remark
FROM
sys_user su
LEFT JOIN sys_user_role sur ON su.user_id = sur.user_id
LEFT JOIN sys_role sr ON sur.role_id = sr.role_id
LEFT JOIN sys_role_menu srm ON sr.role_id = srm.role_id
LEFT JOIN sys_menu sm ON srm.menu_id = sm.menu_id
WHERE
su.user_id = #{userId}
</select>
<select id="getUserInfoByUsername" resultMap="UserInfo">
SELECT
su.*,
sur.user_id AS rel_user_id,
sur.store_id AS rel_store_id,
sr.role_id,
sr.role_name,
sr.role_key,
sr.role_sort,
sr.store_id,
sr.status AS role_status,
sr.remark AS role_remark,
srm.role_id AS rel_role_id,
sm.menu_id,
sm.menu_name,
sm.parent_id,
sm.order_num,
sm.path,
sm.component,
sm.query,
sm.route_name,
sm.is_frame,
sm.is_cache,
sm.menu_type,
sm.visible,
sm.status AS menu_status,
sm.perms,
sm.icon,
sm.remark AS menu_remark
FROM
sys_user su
LEFT JOIN sys_user_role sur ON su.user_id = sur.user_id
LEFT JOIN sys_role sr ON sur.role_id = sr.role_id
LEFT JOIN sys_role_menu srm ON sr.role_id = srm.role_id
LEFT JOIN sys_menu sm ON srm.menu_id = sm.menu_id
WHERE
su.del_flag = '0'
AND su.user_name = #{userName}
</select>
<select id="getUserInfoByPhoneNumber" resultMap="UserInfo">
SELECT
su.*,
sur.user_id AS rel_user_id,
sur.store_id AS rel_store_id,
sr.role_id,
sr.role_name,
sr.role_key,
sr.role_sort,
sr.store_id,
sr.status AS role_status,
sr.remark AS role_remark,
srm.role_id AS rel_role_id,
sm.menu_id,
sm.menu_name,
sm.parent_id,
sm.order_num,
sm.path,
sm.component,
sm.query,
sm.route_name,
sm.is_frame,
sm.is_cache,
sm.menu_type,
sm.visible,
sm.status AS menu_status,
sm.perms,
sm.icon,
sm.remark AS menu_remark
FROM
sys_user su
LEFT JOIN sys_user_role sur ON su.user_id = sur.user_id
LEFT JOIN sys_role sr ON sur.role_id = sr.role_id
LEFT JOIN sys_role_menu srm ON sr.role_id = srm.role_id
LEFT JOIN sys_menu sm ON srm.menu_id = sm.menu_id
WHERE
su.del_flag = '0'
AND su.phonenumber = #{phoneNumber}
</select>
<select id="listUser" parameterType="com.ruoyi.common.core.domain.model.UserQuery" resultMap="UserListItem">
SELECT
su.*,
sr.role_id,
sr.role_name,
sr.store_id,
s.store_name
FROM
sys_user su
LEFT JOIN sys_user_role sur ON su.user_id = sur.user_id
LEFT JOIN sys_role sr ON sur.role_id = sr.role_id
LEFT JOIN store s ON sur.store_id = s.id
<where>
su.del_flag = '0'
<if test="userIds != null and !userIds.isEmpty()">
AND su.user_id IN
<foreach collection="userIds" item="obj" open="(" close=")" separator=",">
#{obj}
</foreach>
</if>
<if test="userName != null and userName != ''">
AND su.user_name LIKE CONCAT('%', #{userName}, '%')
</if>
<if test="nickName != null and nickName != ''">
AND su.nick_name LIKE CONCAT('%', #{nickName}, '%')
</if>
<if test="email != null and email != ''">
AND su.email LIKE CONCAT('%', #{email}, '%')
</if>
<if test="phonenumber != null and phonenumber != ''">
AND su.phonenumber LIKE CONCAT('%', #{phonenumber}, '%')
</if>
<if test="status != null and status != ''">
AND su.status = #{status}
</if>
<if test="storeIds != null and !storeIds.isEmpty()">
AND sr.store_id IN
<foreach collection="storeIds" item="obj" open="(" close=")" separator=",">
#{obj}
</foreach>
</if>
<if test="roleIds != null and !roleIds.isEmpty()">
AND sur.role_id IN
<foreach collection="roleIds" item="obj" open="(" close=")" separator=",">
#{obj}
</foreach>
</if>
<if test="createTimeBegin != null and createTimeEnd != null">
AND su.create_time BETWEEN #{createTimeBegin} AND #{createTimeEnd}
</if>
</where>
</select>
<select id="getManageStoreId" resultType="java.lang.Long">
SELECT
s.id
FROM
store s
WHERE
s.del_flag = '0'
AND s.user_id = #{userId}
LIMIT 1
</select>
</mapper>