pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
@@ -2,34 +2,36 @@
<!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" />
        <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="userId" column="id" />
        <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="userId" column="id" />
        <id property="id" column="id"/>
        <result property="blockId" column="blockId"/>
        <result property="userName" column="name"/>
        <result property="phone" column="phone"/>
@@ -38,89 +40,112 @@
    </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, blockId, name, phone, password, orgTag, supperAdmin, disabled, deleted
        id,
        blockId,
        name,
        phone,
        password,
        orgTag,
        supperAdmin,
        disabled,
        deleted
    </sql>
    <sql id="part_Column_List">
        ${alias}.id, ${alias}.name, ${alias}.phone, ${alias}.disabled
        ${alias}.id,
        ${alias}.name,
        ${alias}.phone,
        ${alias}.disabled
    </sql>
    <sql id="Login_Column_List">
        id, blockId, 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(*)
        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
                name like concat('%', #{name}
                    , '%')
                  and
            </if>
            <if test="phone != null and phone !=''">
            <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" >
        <include refid="part_Column_List">
            <property name="alias" value="bu"/>
        </include>,
        bb.`name` blockName
        </include>
        ,
            bb.`name` blockName
        from ba_user bu
        left join ba_block bb on bu.blockId = bb.id
                 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
                bu.name like concat('%', #{name}
                    , '%')
                  and
            </if>
            <if test="phone != null and phone !=''">
            <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,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 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
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="userId != null">
            <if test="id != null">
                id,
            </if>
            <if test="blockId != null">
                blockId,
            </if>
           <if test="userName != null">
            <if test="userName != null">
                `name`,
            </if>
            <if test="phone != null">
@@ -135,21 +160,21 @@
            <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="userId != null">
                #{userId,jdbcType=BIGINT},
            <if test="id != null">
                #{id,jdbcType=BIGINT},
            </if>
            <if test="blockId != null">
                #{blockId,jdbcType=BIGINT},
            </if>
           <if test="userName != null">
            <if test="userName != null">
                #{userName,jdbcType=VARCHAR},
            </if>
            <if test="phone != null">
@@ -179,7 +204,7 @@
            <if test="blockId != null">
                blockId = #{blockId,jdbcType=BIGINT},
            </if>
           <if test="userName != null">
            <if test="userName != null">
                `name` = #{userName,jdbcType=VARCHAR},
            </if>
            <if test="phone != null">
@@ -195,48 +220,50 @@
                deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
            </if>
        </set>
        where id = #{userId, jdbcType=BIGINT}
        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 = #{userId,jdbcType=BIGINT}
        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
        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_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">
            <if test="userId != null and userId > 0">
                AND user.id = ${userId}
            </if>
        </where>
@@ -244,18 +271,17 @@
    <!--根据用户编号获取用户信息-->
    <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
        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
                 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.deleted = 0
            <if test="userId != null and userId > 0">
                AND us.id = ${userId}
            </if>
        </where>
@@ -263,23 +289,26 @@
    <!--根据指定的条件获取用户记录数-->
    <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
        SELECT
            COUNT(*) AS recordCount
        SELECT COUNT(*) AS recordCount
        FROM ba_user user
            INNER JOIN ba_user_role usro ON usro.userId = user.id
<!--            INNER JOIN ba_user_role usro ON usro.userId = user.id-->
        <where>
            AND user.supperAdmin != 1
            AND user.deleted = 0
                AND user.deleted = 0
            <if test = "userName != null and userName !=''">
                AND user.name like CONCAT('%',#{userName},'%')
            <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 test="phone != null and phone != ''">
                AND user.phone like CONCAT('%'
                  , #{phone}
                  , '%')
            </if>
            <if test = "roleId != null and roleId > 0">
            <if test="roleId != null and roleId > 0">
                AND usro.roleId = ${roleId}
            </if>
        </where>
@@ -287,37 +316,36 @@
    <!--根据指定条件获取用户列表-->
    <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
        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
<!--            INNER JOIN ba_user_role usro ON usro.userId = user.id-->
        <where>
            AND user.supperAdmin != 1
            AND user.deleted = 0
                AND user.deleted = 0
            <if test = "userName != null and userName !=''">
                AND user.name like CONCAT('%',#{userName},'%')
            <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 test="phone != null and phone != ''">
                AND user.phone like CONCAT('%', #{phone}, '%')
            </if>
            <if test = "roleId != null and roleId > 0">
            <if test="roleId != null and roleId > 0">
                AND usro.roleId = ${roleId}
            </if>
        </where>
        ORDER BY user.id DESC
        <trim prefix="limit " >
        <trim prefix="limit ">
            <if test="start != null and count != null">
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
            </if>
@@ -326,18 +354,22 @@
    <!--根据用户编号获取角色ID列表-->
    <select id="getRoleIdsByUserId" resultType="java.util.HashMap">
        SELECT
            roleId
        SELECT roleId
        FROM ba_user_role
        WHERE userId = ${userId}
    </select>
    <select id="getRoleNamesByUserId" resultType="java.util.HashMap">
        SELECT
            ro.name AS roleName
        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>