zhubaomin
2025-04-11 a1744d0bf7f0ad8ac861d672cffd7c710dac4e7e
pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
@@ -2,10 +2,11 @@
<!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"/>
        <id property="id" column="id" />
        <result property="blockId" column="blockId"/>
        <result property="userName" column="name"/>
        <result property="phone" column="phone"/>
@@ -21,17 +22,16 @@
    <resultMap id="partResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaUser">
        <!--@mbg.generated-->
        <!--@Table ba_user-->
        <id property="id" 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="id" column="id"/>
        <id property="id" column="id" />
        <result property="blockId" column="blockId"/>
        <result property="userName" column="name"/>
        <result property="phone" column="phone"/>
@@ -40,101 +40,79 @@
    </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 (#{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 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},
        #{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
@@ -145,7 +123,7 @@
            <if test="blockId != null">
                blockId,
            </if>
            <if test="userName != null">
           <if test="userName != null">
                `name`,
            </if>
            <if test="phone != null">
@@ -160,10 +138,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>
@@ -174,7 +152,7 @@
            <if test="blockId != null">
                #{blockId,jdbcType=BIGINT},
            </if>
            <if test="userName != null">
           <if test="userName != null">
                #{userName,jdbcType=VARCHAR},
            </if>
            <if test="phone != null">
@@ -204,7 +182,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">
@@ -224,128 +202,140 @@
    </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}
        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">
                AND user.id = ${userId}
            <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
        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.id = ${userId}
            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
        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
<!--            INNER JOIN ba_user_role usro ON usro.userId = user.id-->
        LEFT 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">
                AND usro.roleId = ${roleId}
            <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(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
        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
<!--            INNER JOIN ba_user_role usro ON usro.userId = user.id-->
            LEFT 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">
                AND usro.roleId = ${roleId}
            <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 ">
        <trim prefix="limit " >
            <if test="start != null and count != null">
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
            </if>
@@ -354,22 +344,57 @@
    <!--根据用户编号获取角色ID列表-->
    <select id="getRoleIdsByUserId" resultType="java.util.HashMap">
        SELECT roleId
        SELECT
            roleId
        FROM ba_user_role
        WHERE userId = ${userId}
        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}
        WHERE userId = #{userId}
    </select>
    <select id="selectById" resultMap="BaseResultMap">
    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
        <!--@mbg.generated-->
        select
        <include refid="Base_Column_List"/>
        <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>
    <!--获取巡检员列表-->
    <select id="getInspectors" resultType="com.dy.pipIrrGlobal.voBa.VoRoleSimple">
        SELECT
            us.id AS inspectorId,
            us.name AS inspector
        FROM ba_user us
            INNER JOIN ba_user_role ur ON ur.userId = us.id
            INNER JOIN ba_role rol ON rol.id = ur.roleId
        <where>
            AND us.disabled = 0
            AND us.deleted = 0
            AND rol.`name` = '巡检员'
            <if test = "inspector != null and inspector !=''">
                AND us.name LIKE CONCAT('%',#{inspector},'%')
            </if>
        </where>
    </select>
</mapper>