| <?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="userId" 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="userId" 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="userId" 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" />) | 
|         values (#{userId,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="userId != 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="userId != null"> | 
|                 #{userId,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 = #{userId, 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 = #{userId,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 userId, | 
|             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> | 
| </mapper> |