<?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"> 
 | 
<!--namespace对应mapper接口所在的位置--> 
 | 
<mapper namespace="com.dy.pipIrrGlobal.daoBa.BaUserMapper"> 
 | 
  
 | 
    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaUser"> 
 | 
        <!--@mbg.generated--> 
 | 
        <!--@Table ba_user--> 
 | 
        <id property="id" column="id" /> 
 | 
        <result property="blockId" column="blockId"/> 
 | 
        <result property="userName" column="name"/> 
 | 
        <result property="phone" column="phone"/> 
 | 
        <result property="password" column="password"/> 
 | 
        <result property="orgTag" column="orgTag"/> 
 | 
        <result property="supperAdmin" column="supperAdmin"/> 
 | 
        <result property="disabled" column="disabled" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" 
 | 
                javaType="com.dy.common.mybatis.envm.Disabled"/> 
 | 
        <result property="deleted" column="deleted" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" 
 | 
                javaType="com.dy.common.mybatis.envm.Deleted"/> 
 | 
    </resultMap> 
 | 
  
 | 
    <resultMap id="partResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaUser"> 
 | 
        <!--@mbg.generated--> 
 | 
        <!--@Table ba_user--> 
 | 
        <id property="id" column="id" /> 
 | 
        <result property="userName" column="name"/> 
 | 
        <result property="phone" column="phone"/> 
 | 
        <result property="orgTag" column="orgTag"/> 
 | 
        <result property="supperAdmin" column="supperAdmin"/> 
 | 
        <result property="disabled" column="disabled" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" javaType="com.dy.common.mybatis.envm.Disabled"/> 
 | 
    </resultMap> 
 | 
  
 | 
    <resultMap id="loginResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaUser"> 
 | 
        <id property="id" column="id" /> 
 | 
        <result property="blockId" column="blockId"/> 
 | 
        <result property="userName" column="name"/> 
 | 
        <result property="phone" column="phone"/> 
 | 
        <result property="orgTag" column="orgTag"/> 
 | 
        <result property="supperAdmin" column="supperAdmin"/> 
 | 
    </resultMap> 
 | 
  
 | 
    <resultMap id="someResultMap" extends="partResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaUser"> 
 | 
        <collection property="roleList" fetchType="eager" column="{userId=id}" select="com.dy.pipIrrGlobal.daoBa.BaRoleMapper.selectByUserId" /> 
 | 
    </resultMap> 
 | 
  
 | 
    <sql id="Base_Column_List"> 
 | 
        id, blockId, name, phone, password, orgTag, supperAdmin, disabled, deleted 
 | 
    </sql> 
 | 
  
 | 
    <sql id="part_Column_List"> 
 | 
        ${alias}.id, ${alias}.name, ${alias}.phone, ${alias}.disabled 
 | 
    </sql> 
 | 
  
 | 
    <sql id="Login_Column_List"> 
 | 
        id, blockId, name, phone, orgTag, supperAdmin 
 | 
    </sql> 
 | 
  
 | 
    <select id="login" resultMap="loginResultMap" > 
 | 
        select 
 | 
        <include refid="Login_Column_List" /> 
 | 
        from ba_user 
 | 
        where disabled!=1 and deleted!=1 and phone=#{phone} and password=#{password} 
 | 
    </select> 
 | 
  
 | 
    <select id="selectTotal" parameterType="java.util.Map" resultType="java.lang.Long"> 
 | 
        select 
 | 
        count(*) 
 | 
        from ba_user 
 | 
        where supperAdmin!=1 and deleted!=1 
 | 
        <trim prefix="and" suffixOverrides="and"> 
 | 
            <if test="name != null and name != ''"> 
 | 
                name like concat('%', #{name}, '%') and 
 | 
            </if> 
 | 
            <if test="phone != null and phone !=''"> 
 | 
                phone = #{phone,jdbcType=VARCHAR} 
 | 
            </if> 
 | 
        </trim> 
 | 
    </select> 
 | 
    <select id="selectSome" parameterType="java.util.Map" resultMap="someResultMap"> 
 | 
        select 
 | 
        <include refid="part_Column_List" > 
 | 
            <property name="alias" value="bu"/> 
 | 
        </include>, 
 | 
        bb.`name` blockName 
 | 
        from ba_user bu 
 | 
        left join ba_block bb on bu.blockId = bb.id 
 | 
        where bu.supperAdmin!=1 and bu.deleted!=1 
 | 
        <trim prefix="and" suffixOverrides="and"> 
 | 
            <if test="name != null and name != ''"> 
 | 
                bu.name like concat('%', #{name}, '%') and 
 | 
            </if> 
 | 
            <if test="phone != null and phone !=''"> 
 | 
                bu.phone = #{phone,jdbcType=VARCHAR} 
 | 
            </if> 
 | 
        </trim> 
 | 
        order by id DESC 
 | 
        <trim prefix="limit " > 
 | 
            <if test="start != null and count != null"> 
 | 
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} 
 | 
            </if> 
 | 
        </trim> 
 | 
    </select> 
 | 
    <insert id="putin" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser"> 
 | 
<!--        insert into ba_user (<include refid="Base_Column_List" />)--> 
 | 
        insert into ba_user(id, blockId, name, phone, password, orgTag, supperAdmin, disabled, deleted) 
 | 
        values (#{id,jdbcType=BIGINT}, 
 | 
        #{blockId,jdbcType=BIGINT}, 
 | 
        #{userName,jdbcType=VARCHAR}, 
 | 
        #{phone,jdbcType=VARCHAR}, 
 | 
        #{password,jdbcType=VARCHAR}, 
 | 
        #{orgTag,jdbcType=VARCHAR}, 
 | 
        #{supperAdmin,jdbcType=TINYINT}, 
 | 
        #{disabled,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, 
 | 
        #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT} 
 | 
        ) 
 | 
    </insert> 
 | 
    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser"> 
 | 
        insert into ba_user 
 | 
        <trim prefix="(" suffix=")" suffixOverrides=","> 
 | 
            <if test="id != null"> 
 | 
                id, 
 | 
            </if> 
 | 
            <if test="blockId != null"> 
 | 
                blockId, 
 | 
            </if> 
 | 
           <if test="userName != null"> 
 | 
                `name`, 
 | 
            </if> 
 | 
            <if test="phone != null"> 
 | 
                phone, 
 | 
            </if> 
 | 
            <if test="password != null"> 
 | 
                password, 
 | 
            </if> 
 | 
            <if test="orgTag != null"> 
 | 
                orgTag, 
 | 
            </if> 
 | 
            <if test="supperAdmin != null"> 
 | 
                supperAdmin, 
 | 
            </if> 
 | 
           <if test="disabled != null"> 
 | 
               disabled, 
 | 
            </if> 
 | 
           <if test="deleted != null"> 
 | 
                deleted, 
 | 
            </if> 
 | 
        </trim> 
 | 
        <trim prefix="values (" suffix=")" suffixOverrides=","> 
 | 
            <if test="id != null"> 
 | 
                #{id,jdbcType=BIGINT}, 
 | 
            </if> 
 | 
            <if test="blockId != null"> 
 | 
                #{blockId,jdbcType=BIGINT}, 
 | 
            </if> 
 | 
           <if test="userName != null"> 
 | 
                #{userName,jdbcType=VARCHAR}, 
 | 
            </if> 
 | 
            <if test="phone != null"> 
 | 
                #{phone,jdbcType=VARCHAR}, 
 | 
            </if> 
 | 
            <if test="password != null"> 
 | 
                #{password,jdbcType=VARCHAR}, 
 | 
            </if> 
 | 
            <if test="orgTag != null"> 
 | 
                #{orgTag,jdbcType=VARCHAR}, 
 | 
            </if> 
 | 
            <if test="supperAdmin != null"> 
 | 
                #{supperAdmin,jdbcType=TINYINT}, 
 | 
            </if> 
 | 
            <if test="disabled != null"> 
 | 
                #{disabled,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, 
 | 
            </if> 
 | 
            <if test="deleted != null"> 
 | 
                #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, 
 | 
            </if> 
 | 
        </trim> 
 | 
    </insert> 
 | 
  
 | 
    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser"> 
 | 
        update ba_user 
 | 
        <set> 
 | 
            <if test="blockId != null"> 
 | 
                blockId = #{blockId,jdbcType=BIGINT}, 
 | 
            </if> 
 | 
           <if test="userName != null"> 
 | 
                `name` = #{userName,jdbcType=VARCHAR}, 
 | 
            </if> 
 | 
            <if test="phone != null"> 
 | 
                phone = #{phone,jdbcType=VARCHAR}, 
 | 
            </if> 
 | 
            <if test="password != null"> 
 | 
                password = #{password,jdbcType=VARCHAR}, 
 | 
            </if> 
 | 
            <if test="disabled != null"> 
 | 
                disabled = #{disabled,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, 
 | 
            </if> 
 | 
            <if test="deleted != null"> 
 | 
                deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, 
 | 
            </if> 
 | 
        </set> 
 | 
        where id = #{id, jdbcType=BIGINT} 
 | 
    </update> 
 | 
    <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser"> 
 | 
        update ba_user 
 | 
        set blockId = #{blockId,jdbcType=BIGINT}, 
 | 
        `name` = #{userName,jdbcType=VARCHAR}, 
 | 
        phone = #{phone,jdbcType=VARCHAR}, 
 | 
        password = #{password,jdbcType=VARCHAR}, 
 | 
        disabled = #{disabled,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, 
 | 
        deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT} 
 | 
        where id = #{id,jdbcType=BIGINT} 
 | 
    </update> 
 | 
    <update id="changePassword" > 
 | 
        update ba_user 
 | 
        set password = #{password,jdbcType=VARCHAR} 
 | 
        where id = #{id,jdbcType=BIGINT} 
 | 
    </update> 
 | 
  
 | 
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> 
 | 
        delete from ba_user 
 | 
        where id = #{id,jdbcType=BIGINT} 
 | 
    </delete> 
 | 
    <delete id="deleteLogicById" parameterType="java.lang.Long"> 
 | 
        update ba_user set deleted = 1 
 | 
        where id = #{id,jdbcType=BIGINT} 
 | 
    </delete> 
 | 
  
 | 
    <!--根据用户编号获取用户信息--> 
 | 
    <!--2024-01-09 废弃--> 
 | 
    <select id="getUserInfos" resultType="com.dy.pipIrrGlobal.voBa.VoUserInfo"> 
 | 
        SELECT 
 | 
            user.id AS userId, 
 | 
            user.`name` AS userName, 
 | 
            rol.id AS roleId, 
 | 
            rol.`name` AS roleName, 
 | 
            per.permissions 
 | 
        FROM ba_user user 
 | 
            INNER JOIN ba_user_role use_rol ON user.id = use_rol.userId 
 | 
            INNER JOIN ba_role rol ON rol.id = use_rol.roleId 
 | 
            INNER JOIN ba_role_permissions per ON per.roleId = rol.id 
 | 
        <where> 
 | 
            <if test = "userId != null and userId > 0"> 
 | 
                AND user.id = ${userId} 
 | 
            </if> 
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <!--根据用户编号获取用户信息--> 
 | 
    <select id="getUserInfoById" resultType="java.util.Map"> 
 | 
        SELECT 
 | 
            us.id AS userId, 
 | 
            us.name AS userName, 
 | 
            us.phone, 
 | 
            IFNULL(us.blockId, 0) AS blockId, 
 | 
            IFNULL(blo.name, 0) AS blockName 
 | 
        FROM ba_user us 
 | 
            LEFT JOIN ba_block blo ON us.blockId = blo.id 
 | 
        <where> 
 | 
            AND us.disabled = 0 
 | 
            AND us.deleted = 0 
 | 
            <if test = "userId != null and userId > 0"> 
 | 
                AND us.id = ${userId} 
 | 
            </if> 
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <!--根据指定的条件获取用户记录数--> 
 | 
    <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> 
 | 
        SELECT 
 | 
            COUNT(*) AS recordCount 
 | 
        FROM ba_user user 
 | 
<!--            INNER JOIN ba_user_role usro ON usro.userId = user.id--> 
 | 
        <where> 
 | 
            AND user.supperAdmin != 1 
 | 
            AND user.deleted = 0 
 | 
  
 | 
            <if test = "userName != null and userName !=''"> 
 | 
                AND user.name like CONCAT('%',#{userName},'%') 
 | 
            </if> 
 | 
  
 | 
            <if test = "phone != null and phone !=''"> 
 | 
                AND user.phone like CONCAT('%',#{phone},'%') 
 | 
            </if> 
 | 
  
 | 
            <if test = "roleId != null and roleId > 0"> 
 | 
                AND usro.roleId = ${roleId} 
 | 
            </if> 
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <!--根据指定条件获取用户列表--> 
 | 
    <select id="getUsers" resultType="com.dy.pipIrrGlobal.voBa.VoUserInfo"> 
 | 
        SELECT 
 | 
            CAST(id AS char) AS id, 
 | 
            phone, 
 | 
            name AS userName, 
 | 
            disabled AS stateId, 
 | 
            (CASE 
 | 
                 WHEN disabled = 0 THEN "正常" 
 | 
                 WHEN disabled = 1 THEN "已禁用" 
 | 
                END) AS stateName, 
 | 
            CAST(blockId AS char) AS blockId, 
 | 
            (SELECT name FROM ba_block WHERE id = user.blockId) AS blockName 
 | 
        FROM ba_user user 
 | 
<!--            INNER JOIN ba_user_role usro ON usro.userId = user.id--> 
 | 
        <where> 
 | 
            AND user.supperAdmin != 1 
 | 
            AND user.deleted = 0 
 | 
  
 | 
            <if test = "userName != null and userName !=''"> 
 | 
                AND user.name like CONCAT('%',#{userName},'%') 
 | 
            </if> 
 | 
  
 | 
            <if test = "phone != null and phone !=''"> 
 | 
                AND user.phone like CONCAT('%',#{phone},'%') 
 | 
            </if> 
 | 
  
 | 
            <if test = "roleId != null and roleId > 0"> 
 | 
                AND usro.roleId = ${roleId} 
 | 
            </if> 
 | 
        </where> 
 | 
        ORDER BY user.id DESC 
 | 
        <trim prefix="limit " > 
 | 
            <if test="start != null and count != null"> 
 | 
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} 
 | 
            </if> 
 | 
        </trim> 
 | 
    </select> 
 | 
  
 | 
    <!--根据用户编号获取角色ID列表--> 
 | 
    <select id="getRoleIdsByUserId" resultType="java.util.HashMap"> 
 | 
        SELECT 
 | 
            roleId 
 | 
        FROM ba_user_role 
 | 
        WHERE userId = ${userId} 
 | 
    </select> 
 | 
  
 | 
    <select id="getRoleNamesByUserId" resultType="java.util.HashMap"> 
 | 
        SELECT 
 | 
            ro.name AS roleName 
 | 
        FROM ba_user_role usro 
 | 
                 INNER JOIN ba_role ro ON usro.roleId = ro.id 
 | 
        WHERE userId = ${userId} 
 | 
  
 | 
    </select> 
 | 
  
 | 
    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> 
 | 
        <!--@mbg.generated--> 
 | 
        select 
 | 
        <include refid="Base_Column_List" /> 
 | 
        from ba_user 
 | 
        where id = #{id,jdbcType=BIGINT} 
 | 
    </select> 
 | 
</mapper> 
 |