| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 | <?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.welampiot.dao.UserDao">    <select id="getUserByUserName" resultType="com.welampiot.dto.UserDTO" parameterType="com.welampiot.vo.LoginVO">        select username,privilege_list privilegeList from user where username=#{username,jdbcType=VARCHAR}        and password=#{password,jdbcType=VARCHAR} and status=1    </select>    <select id="loadUserByUsername" resultType="com.welampiot.dto.UserDTO">        select username,password,status,privilege_list privilegeList from user where username=#{username,jdbcType=VARCHAR}    </select>    <select id="findUserByUserName" resultType="com.welampiot.dto.UserDTO">        select id,username,role,status,privilege_list privilegeList,zone_list zoneList,        (select name from company c where c.id = u.company_id) as company,address from user u where u.username=#{username,jdbcType=VARCHAR}    </select>    <select id="getListByParentId" resultType="com.welampiot.dto.UserDTO">        select id,username         from user        <if test="parentId != null and parentId != ''">            where parent_id=#{parent_id}        </if>    </select>    <select id="queryMenuList" parameterType="list" resultType="com.welampiot.dto.MenuDTO">        <!--select id,parentid parentId,name,en_name enName,ru_name ruName,level,action from privilnode where status=1        and id in        <foreach collection="list" item="id" separator="," open="(" close=")">            id        </foreach>-->        SELECT        p.id,        p.parentid parentId,        p.`level`,        p.`name`,        p.en_name enName,        p.ru_name        FROM        user u        LEFT JOIN t_user_role_relation ur ON u.id = ur.user_id        LEFT JOIN t_role_menu_relation rm ON ur.role_id = rm.role_id        LEFT JOIN privilnode p ON rm.menu_id = p.id        WHERE        u.username=#{username,jdbcType=VARCHAR}    </select>    <select id="queryUserGrantUrl" resultType="com.welampiot.dto.PathDTO">        SELECT        r.url,        r.description        FROM        user u        LEFT JOIN t_user_role_relation ur ON u.id = ur.user_id        LEFT JOIN t_role_menu_relation rm ON ur.role_id = rm.role_id        LEFT JOIN t_menu_path_relation mp ON rm.menu_id = mp.menu_id        LEFT JOIN t_request_path r ON mp.path_id = r.id        WHERE        u.username=#{username,jdbcType=VARCHAR}    </select>    <select id="queryUserRole" resultType="com.welampiot.dto.RoleDTO">        SELECT        r.role_name roleName,        r.role_description roleDescription        FROM        user u        LEFT JOIN t_user_role_relation ur ON u.id = ur.user_id        LEFT JOIN t_role r ON ur.role_id = r.id        WHERE        u.username = #{username,jdbcType=VARCHAR};    </select>        <select id="getUserInfoById" resultType="UserDTO">        select u.id,u.avatar,u.name,u.username,u.company,u.company_id companyId,u.role,               u.email,u.sex,u.remark,u.status,u.department,u.mobile as phone,u.address,u.zone_list zoneList        from user u        where u.id = #{id}    </select>    <!-- role为1查询所有用户的数量 -->    <select id="getUserCount" resultType="Integer">        select count(u.id)        from user u     </select>    <!-- role为2查询下级账号数量 -->    <select id="getUserCountByParentId" resultType="Integer">        select count(u.id)        from user u        where u.parent_id = #{id}    </select>    <!-- 查询用户的区域权限数量 -->    <select id="getSectionCountByZoneList" resultType="Integer">        select count(*)        from section s        <if test="zoneList != null and !zoneList.isEmpty()">             where s.id in            <foreach collection="zoneList" item="item" open="(" separator="," close=")">                #{item}            </foreach>        </if>    </select>    <!-- role为2时查询下级子账户 -->    <select id="getUserListByUserDTO" resultType="com.welampiot.dto.UserDTO">        select u.id,u.name,u.avatar,u.username,u.company,u.role,u.department,u.privilege_list as privilegeList        from user u        where u.parent_id = #{id}        <if test="keyword != null and keyword != ''">            and u.username like '%${keyword}%'        </if>        <if test="companyId != 0">            and u.company_id = #{companyId}        </if>        <choose>            <when test="role == 1">                and u.role = 1            </when>            <when test="role == 2">                and u.role = 2            </when>            <when test="role == 3">                and u.role = 3            </when>        </choose>        <choose>            <when test="department == 1">                and u.department = 1            </when>            <when test="department == 2">                and u.department = 2            </when>            <when test="department == 3">                and u.department = 3            </when>            <when test="department == 4">                and u.department = 4            </when>            <when test="department == 5">                and u.department = 5            </when>            <when test="department == 6">                and u.department = 6            </when>            <when test="department == 7">                and u.department = 7            </when>            <when test="department == 8">                and u.department = 8            </when>            <when test="department == 9">                and u.department = 9            </when>        </choose>        order by u.id desc        <if test="page >= 0 and count > 0">            limit #{page},#{count}        </if>    </select>    <!-- role为1时查询所有用户 -->    <select id="getAllUserListByUserDTO" resultType="com.welampiot.dto.UserDTO">        select u.id,u.name,u.avatar,u.username,u.company,u.department,u.privilege_list as privilegeList        from user u        where 1=1        <if test="keyword != null and keyword != ''">            and u.username like '%${keyword}%'        </if>        <if test="companyId != 0">            and u.company_id = #{companyId}        </if>        <choose>            <when test="role == 1">                and u.role = 1            </when>            <when test="role == 2">                and u.role = 2            </when>            <when test="role == 3">                and u.role = 3            </when>        </choose>        <choose>            <when test="department == 1">                and u.department = 1            </when>            <when test="department == 2">                and u.department = 2            </when>            <when test="department == 3">                and u.department = 3            </when>            <when test="department == 4">                and u.department = 4            </when>            <when test="department == 5">                and u.department = 5            </when>            <when test="department == 6">                and u.department = 6            </when>            <when test="department == 7">                and u.department = 7            </when>            <when test="department == 8">                and u.department = 8            </when>            <when test="department == 9">                and u.department = 9            </when>        </choose>        order by u.id desc        <if test="page >= 0 and count > 0">            limit #{page},#{count}        </if>    </select>    <select id="queryUserIdByUsername" resultType="UserDTO">        select u.id,u.role        from user u        where u.username = #{username}    </select>    </mapper>
 |