Administrator
2024-01-25 6b268e3e7ee7e71d4dcb7760b005242679a1608f
pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
@@ -6,108 +6,122 @@
    <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="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="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="login" type="com.dy.pipIrrGlobal.pojoBa.BaUser">
        <id property="id" column="id" />
        <result property="name" column="name"/>
    <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">
        <!--@mbg.generated-->
        id, name, phone, password, orgTag, supperAdmin, deleted
        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">
        <!--@mbg.generated-->
        id, name, phone, orgTag, supperAdmin
        id, blockId, name, phone, orgTag, supperAdmin
    </sql>
    <select id="login" resultMap="login" >
    <select id="login" resultMap="loginResultMap" >
        select
        <include refid="Login_Column_List" />
        from ba_user
        where disabled=0 and deleted=0 and phone=#{phone} and password=#{password}
        where disabled!=1 and deleted!=1 and phone=#{phone} and password=#{password}
    </select>
    <!--
    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser">
        <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long" id="selectKey">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into  ba_user
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">
                id,
    <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="name != 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 test="phone != null and phone !=''">
                phone = #{phone,jdbcType=VARCHAR}
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">
                #{id, jdbcType=BIGINT},
    </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="name != null">
                #{name, 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=SMALLINT},
            </if>
           <if test="disabled != null">
                #{disabled, jdbcType=SMALLINT},
            </if>
           <if test="deleted != null">
                #{deleted, jdbcType=SMALLINT},
            <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="insertOnDuplicateUpdate" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser">
    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser">
        insert into ba_user
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">
            <if test="userId != null">
                id,
            </if>
            <if test="name != null">
                name,
            <if test="blockId != null">
                blockId,
            </if>
           <if test="userName != null">
                `name`,
            </if>
            <if test="phone != null">
                phone,
@@ -121,109 +135,207 @@
            <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>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">
                #{id, jdbcType=BIGINT},
            <if test="userId != null">
                #{userId,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},
                #{phone,jdbcType=VARCHAR},
            </if>
            <if test="password != null">
                #{password, jdbcType=VARCHAR},
                #{password,jdbcType=VARCHAR},
            </if>
            <if test="orgTag != null">
                #{orgTag, jdbcType=VARCHAR},
                #{orgTag,jdbcType=VARCHAR},
            </if>
            <if test="supperAdmin != null">
                #{supperAdmin, jdbcType=SMALLINT},
                #{supperAdmin,jdbcType=TINYINT},
            </if>
            <if test="disabled != null">
                #{disabled, jdbcType=SMALLINT},
                #{disabled,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
            </if>
            <if test="deleted != null">
                #{deleted, jdbcType=SMALLINT},
            </if>
        </trim>
        ON DUPLICATE KEY UPDATE
        <trim suffixOverrides="," >
            <if test="id != null" >
                id = #{id, jdbcType=BIGINT},
                #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
            </if>
        </trim>
    </insert>
    <update id="updateSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser" >
        UPDATE ba_user
        <set >
            <if test="name != null" >
                name = #{name, jdbcType=VARCHAR},
    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser">
        update ba_user
        <set>
            <if test="blockId != null">
                blockId = #{blockId,jdbcType=BIGINT},
            </if>
            <if test="phone != null" >
                phone = #{phone, jdbcType=VARCHAR},
           <if test="userName != null">
                `name` = #{userName,jdbcType=VARCHAR},
            </if>
            <if test="password != null" >
                phone = #{password, jdbcType=VARCHAR},
            <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
        <trim prefixOverrides="and | or">
            <if test="id != null">
                AND id = #{id,jdbcType=BIGINT}
        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>
        </trim>
    </update>
        </where>
    </select>
    <insert id="batchInsert" parameterType="java.util.List">
        <selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" id="batchInsert">
            SELECT LAST_INSERT_ID()
        </selectKey>
        INSERT INTO ba_user(id, name, phone, password, orgTag, supperAdmin, disabled, deleted)
        VALUES
        <foreach collection="list" item="it" index="index" separator=",">
            (
              #{it.id, jdbcType=BIGINT},
              #{it.name, jdbcType=VARCHAR},
              #{it.phone, jdbcType=VARCHAR},
              #{it.password, jdbcType=VARCHAR},
              #{it.orgTag, jdbcType=VARCHAR},
              #{it.supperAdmin, jdbcType=SMALLINT},
              #{it.disabled, jdbcType=SMALLINT},
              #{it.deleted, jdbcType=SMALLINT}
            )
        </foreach>
    </insert>
    <!--根据用户编号获取用户信息-->
    <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>
    <update id="batchUpdate" parameterType="java.util.List">
        <foreach collection="list" item="it"  separator=";">
            UPDATE ba_user
            <set >
                <if test="it.name != null" >
                    name = #{it.name, jdbcType=VARCHAR},
                </if>
                <if test="it.phone != null" >
                    phone = #{it.phone, jdbcType=VARCHAR},
                </if>
                <if test="it.password != null" >
                    phone = #{it.password, jdbcType=VARCHAR},
                </if>
            </set>
            WHERE
            <trim prefixOverrides="and | or">
                <if test="it.id != null">
                    AND id = #{it.id,jdbcType=BIGINT}
                </if>
            </trim>
        </foreach>
    </update>
    -->
    <!--根据指定的条件获取用户记录数-->
    <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 = "name != null and name !=''">
                AND user.name like CONCAT('%',#{name},'%')
            </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 = "name != null and name !=''">
                AND user.name like CONCAT('%',#{name},'%')
            </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
        <if test="pageCurr != null and pageSize != null">
            LIMIT ${pageCurr}, ${pageSize}
        </if>
    </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>