pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
@@ -7,20 +7,23 @@
        <!--@mbg.generated-->
        <!--@Table ba_user-->
        <id property="id" column="id" />
        <result property="name" column="name"/>
        <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"/>
        <result property="userName" column="name"/>
        <result property="phone" column="phone"/>
        <result property="orgTag" column="orgTag"/>
        <result property="supperAdmin" column="supperAdmin"/>
@@ -29,7 +32,8 @@
    <resultMap id="loginResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaUser">
        <id property="id" column="id" />
        <result property="name" column="name"/>
        <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"/>
@@ -40,15 +44,15 @@
    </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" >
@@ -61,45 +65,53 @@
    <select id="selectTotal" parameterType="java.util.Map" resultType="java.lang.Long">
        select
        count(*)
        from ba_user where supperAdmin!=1 and deleted!=1
        from ba_user
        where supperAdmin!=1 and deleted!=1
        <trim prefix="and" suffixOverrides="and">
            <if test="name != null">
            <if test="name != null and name != ''">
                name like concat('%', #{name}, '%') and
            </if>
            <if test="phone != null">
                phone = '#{phone,jdbcType=VARCHAR}'
            <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 " >
            <if test="start != null and count != null">
                #{start}, #{count}
                #{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" />)
    <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},
        #{name,jdbcType=VARCHAR},
        #{blockId,jdbcType=BIGINT},
        #{userName,jdbcType=VARCHAR},
        #{phone,jdbcType=VARCHAR},
        #{password,jdbcType=VARCHAR},
        #{orgTag,jdbcType=VARCHAR},
        #{supperAdmin,jdbcType=TINYINT},
        #{disabled,jdbcType=TINYINT},
        #{deleted,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">
@@ -108,7 +120,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">
@@ -134,8 +149,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},
@@ -150,10 +168,10 @@
                #{supperAdmin,jdbcType=TINYINT},
            </if>
            <if test="disabled != null">
                #{disabled,jdbcType=TINYINT},
                #{disabled,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
            </if>
            <if test="deleted != null">
                #{deleted,jdbcType=TINYINT},
                #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
            </if>
        </trim>
    </insert>
@@ -161,8 +179,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},
@@ -171,21 +192,22 @@
                password = #{password,jdbcType=VARCHAR},
            </if>
            <if test="disabled != null">
                disabled = #{disabled,jdbcType=TINYINT},
                disabled = #{disabled,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
            </if>
            <if test="deleted != null">
                deleted = #{deleted,jdbcType=TINYINT},
                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},
        set blockId = #{blockId,jdbcType=BIGINT},
        `name` = #{userName,jdbcType=VARCHAR},
        phone = #{phone,jdbcType=VARCHAR},
        password = #{password,jdbcType=VARCHAR},
        disabled = #{disabled,jdbcType=TINYINT},
        deleted = #{deleted,jdbcType=TINYINT}
        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" >
@@ -202,4 +224,160 @@
        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
        (
        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
        LEFT 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>
        GROUP BY user.id) c
    </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
            LEFT 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>
        GROUP BY user.id
        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>
    <select id="getPhones" resultType="java.lang.String">
        SELECT phone FROM ba_user WHERE deleted = 0 and disabled = 0
    </select>
    <!--获取简单用户数据列表-->
    <select id="getSimpleUsers" resultType="com.dy.pipIrrGlobal.voBa.VoSimpleUser">
        SELECT
            id AS userId,
            name AS userName
        FROM  ba_user
        WHERE disabled = 0 AND deleted = 0
    </select>
</mapper>