zhubaomin
2025-04-07 ecef3df4890be54c1da2a8a4fc1c8c1f50f1c263
pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
@@ -48,7 +48,7 @@
    </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">
@@ -240,7 +240,7 @@
            INNER JOIN ba_role_permissions per ON per.roleId = rol.id
        <where>
            <if test = "userId != null and userId > 0">
                AND user.id = ${userId}
                AND user.id = #{userId}
            </if>
        </where>
    </select>
@@ -259,7 +259,7 @@
            AND us.disabled = 0
            AND us.deleted = 0
            <if test = "userId != null and userId > 0">
                AND us.id = ${userId}
                AND us.id = #{userId}
            </if>
        </where>
    </select>
@@ -268,8 +268,21 @@
    <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
<!--            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
@@ -283,9 +296,10 @@
            </if>
            <if test = "roleId != null and roleId > 0">
                AND usro.roleId = ${roleId}
                AND usro.roleId = #{roleId}
            </if>
        </where>
        GROUP BY user.id) c
    </select>
    <!--根据指定条件获取用户列表-->
@@ -296,13 +310,13 @@
            name AS userName,
            disabled AS stateId,
            (CASE
                 WHEN disabled = 0 THEN "正常"
                 WHEN disabled = 1 THEN "已禁用"
                 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
@@ -316,9 +330,10 @@
            </if>
            <if test = "roleId != null and roleId > 0">
                AND usro.roleId = ${roleId}
                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">
@@ -332,7 +347,7 @@
        SELECT
            roleId
        FROM ba_user_role
        WHERE userId = ${userId}
        WHERE userId = #{userId}
    </select>
    <select id="getRoleNamesByUserId" resultType="java.util.HashMap">
@@ -340,7 +355,7 @@
            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>
@@ -351,4 +366,35 @@
        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>