281 lines
9.8 KiB
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> |