pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
@@ -2,105 +2,139 @@
<!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="name" column="name"/>
        <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"/>
        <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="name" column="name"/>
        <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"/>
        <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="name" column="name"/>
        <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" />
        <collection property="roleList" fetchType="eager" column="{userId=id}"
                    select="com.dy.pipIrrGlobal.daoBa.BaRoleMapper.selectByUserId"/>
    </resultMap>
    <sql id="Base_Column_List">
        id, name, phone, password, orgTag, supperAdmin, disabled, deleted
        id,
        blockId,
        name,
        phone,
        password,
        orgTag,
        supperAdmin,
        disabled,
        deleted
    </sql>
    <sql id="part_Column_List">
        id, name, phone, disabled
        ${alias}.id,
        ${alias}.name,
        ${alias}.phone,
        ${alias}.disabled
    </sql>
    <sql id="Login_Column_List">
        id, name, phone, orgTag, supperAdmin
        id,
        blockId,
        name,
        phone,
        orgTag,
        supperAdmin
    </sql>
    <select id="login" resultMap="loginResultMap" >
    <select id="login" resultMap="loginResultMap">
        select
        <include refid="Login_Column_List" />
        <include refid="Login_Column_List"/>
        from ba_user
        where disabled!=1 and deleted!=1 and phone=#{phone} and password=#{password}
        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
        select count(*)
        from ba_user
        where supperAdmin!=1 and deleted!=1
        <trim prefix="and" suffixOverrides="and">
            <if test="name != null">
                name like concat('%', #{name}, '%') and
            <if test="name != null and name != ''">
                name like concat('%', #{name}
                    , '%')
                  and
            </if>
            <if test="phone != null">
            <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" />
        from ba_user where supperAdmin!=1 and deleted!=1
        <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">
                name like concat('%', #{name}, '%') and
            <if test="name != null and name != ''">
                bu.name like concat('%', #{name}
                    , '%')
                  and
            </if>
            <if test="phone != null">
                phone = #{phone,jdbcType=VARCHAR}
            <if test="phone != null and phone != ''">
                bu.phone = #{phone,jdbcType=VARCHAR}
            </if>
        </trim>
        order by id DESC
        <trim prefix="limit " >
        <trim prefix="limit ">
            <if test="start != null and count != null">
                #{start,jdbcType=INTEGER}, #{count,jdbcType=INTEGER}
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
            </if>
        </trim>
    </select>
    <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser">
        insert into ba_user (<include refid="Base_Column_List" />)
        values (#{id,jdbcType=BIGINT},
        #{name,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 id="putin" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser">
        insert into ba_user (<include refid="Base_Column_List"/>)
    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
@@ -108,7 +142,10 @@
            <if test="id != null">
                id,
            </if>
            <if test="name != null">
            <if test="blockId != null">
                blockId,
            </if>
            <if test="userName != null">
                `name`,
            </if>
            <if test="phone != null">
@@ -123,10 +160,10 @@
            <if test="supperAdmin != null">
                supperAdmin,
            </if>
           <if test="disabled != null">
               disabled,
            <if test="disabled != null">
                disabled,
            </if>
           <if test="deleted != null">
            <if test="deleted != null">
                deleted,
            </if>
        </trim>
@@ -134,8 +171,11 @@
            <if test="id != null">
                #{id,jdbcType=BIGINT},
            </if>
            <if test="name != null">
                #{name,jdbcType=VARCHAR},
            <if test="blockId != null">
                #{blockId,jdbcType=BIGINT},
            </if>
            <if test="userName != null">
                #{userName,jdbcType=VARCHAR},
            </if>
            <if test="phone != null">
                #{phone,jdbcType=VARCHAR},
@@ -161,8 +201,11 @@
    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser">
        update ba_user
        <set>
            <if test="name != null">
                `name` = #{name,jdbcType=VARCHAR},
            <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},
@@ -177,29 +220,156 @@
                deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
            </if>
        </set>
        where id = #{id,jdbcType=BIGINT}
        where id = #{id, jdbcType=BIGINT}
    </update>
    <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser">
        update ba_user
        set `name` = #{name,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}
        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 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
        delete
        from ba_user
        where id = #{id,jdbcType=BIGINT}
    </delete>
    <delete id="deleteLogicById" parameterType="java.lang.Long">
        update ba_user set deleted = 1
        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(user.id AS char)                               AS userId,
               user.phone,
               user.name                                           AS userName,
               user.disabled                                       AS stateId,
               (CASE
                    WHEN disabled = 0 THEN "正常"
                    WHEN disabled = 1 THEN "已禁用"
                   END)                                            AS stateName,
               CAST(user.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="selectById" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from ba_user
        where id = #{id,jdbcType=BIGINT}
    </select>
</mapper>