ludc
2024-01-17 2ff8dd1f7d2f71944c25c9e116d12d9fb418ac0a
Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml
@@ -44,19 +44,19 @@
        <result column="key" property="key"/>
    </resultMap>
    <select id="lazyList"  resultMap="menuVOResultMap">
    <select id="lazyList" resultMap="menuVOResultMap">
        SELECT
            menu.*,
            (
                SELECT
                    CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END
            FROM
                pl_sys_menu
            WHERE
                parent_id = menu.id AND is_deleted = 0
        menu.*,
        (
        SELECT
        CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END
        FROM
        pl_sys_menu
        WHERE
        parent_id = menu.id AND is_deleted = 0
        ) AS "has_children"
        FROM
            pl_sys_menu menu
        pl_sys_menu menu
        WHERE menu.is_deleted = 0
        <if test="param1!=null">
            and menu.parent_id = #{param1}
@@ -75,17 +75,17 @@
    <select id="lazyMenuPage" resultMap="menuVOResultMap">
        SELECT
            menu.*,
            (
                SELECT
                    CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END
        menu.*,
        (
        SELECT
        CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END
        FROM
                pl_sys_menu
        pl_sys_menu
        WHERE
        parent_id = menu.id AND is_deleted = 0  AND category = 1
        parent_id = menu.id AND is_deleted = 0 AND category = 1
        ) AS "has_children"
        FROM
            pl_sys_menu menu
        pl_sys_menu menu
        WHERE menu.is_deleted = 0 AND menu.category = 1
        <if test="param1!=null">
            and menu.parent_id = #{param1}
@@ -103,11 +103,17 @@
    </select>
    <select id="tree" resultMap="treeNodeResultMap">
        select id, parent_id, name as title, id as "value", id as "key" from pl_sys_menu where is_deleted = 0 and category = 1
        select id, parent_id, name as title, id as "value", id as "key"
        from pl_sys_menu
        where is_deleted = 0
          and category = 1
    </select>
    <select id="allMenu" resultMap="menuResultMap">
        select * from pl_sys_menu where is_deleted = 0 and category = 1
        select *
        from pl_sys_menu
        where is_deleted = 0
          and category = 1
    </select>
    <select id="roleMenu" resultMap="menuResultMap">
@@ -127,49 +133,56 @@
    <select id="roleMenuByRoleId" resultMap="menuResultMap">
        select * from pl_sys_menu where is_deleted = 0 and id IN
            ( SELECT menu_id FROM pl_org_role_menu WHERE role_id IN
                <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            )
        ( SELECT menu_id FROM pl_org_role_menu WHERE role_id IN
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
    </select>
    <select id="roleMenuByTopMenuId" resultMap="menuResultMap">
        select * from pl_sys_menu where is_deleted = 0 and id IN
        select *
        from pl_sys_menu
        where is_deleted = 0
          and id IN
              (
                  SELECT menu_id FROM pl_sys_top_menu_setting WHERE top_menu_id = #{param1}
                  SELECT menu_id
                  FROM pl_sys_top_menu_setting
                  WHERE top_menu_id = #{param1}
              )
    </select>
    <select id="routes" resultMap="menuResultMap">
        SELECT
            *
        *
        FROM
            pl_sys_menu
        pl_sys_menu
        WHERE
            is_deleted = 0 and category = 1
            and id IN ( SELECT menu_id FROM pl_org_role_menu WHERE role_id IN
                        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                            #{item}
                        </foreach> )
        is_deleted = 0 and category = 1
        and id IN ( SELECT menu_id FROM pl_org_role_menu WHERE role_id IN
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
    </select>
    <select id="allButtons" resultMap="menuResultMap">
        SELECT
            id,
            parent_id,
            CODE,
            NAME,
            alias,
            path,
            source,
        SELECT id,
               parent_id,
               CODE,
               NAME,
               alias,
               path,
               source,
            action,
            sort
        FROM
            pl_sys_menu
        WHERE
            (
                category = 2 OR id IN ( SELECT parent_id FROM pl_sys_menu WHERE is_deleted = 0 AND category = 2 )
            category = 2
           OR id IN ( SELECT parent_id FROM pl_sys_menu WHERE is_deleted = 0
          AND category = 2 )
            )
          AND is_deleted = 0
        ORDER BY sort
@@ -177,82 +190,78 @@
    <select id="buttons" resultMap="menuResultMap">
        SELECT * FROM (
            SELECT
                id,
                parent_id,
                code,
                name,
                alias,
                path,
                source,
                action,
                sort
            FROM
                pl_sys_menu
            WHERE
                is_deleted = 0 and id IN (
                  SELECT parent_id FROM pl_sys_menu
                  WHERE ( category = 2 AND id IN ( SELECT menu_id FROM pl_org_role_menu WHERE role_id IN
                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                        #{item}
                    </foreach>
                  ) ) )
            UNION ALL
        SELECT
        id,
        parent_id,
        code,
        name,
        alias,
        path,
        source,
        action,
        sort
        FROM
        pl_sys_menu
        WHERE
        is_deleted = 0 and id IN (
        SELECT parent_id FROM pl_sys_menu
        WHERE ( category = 2 AND id IN ( SELECT menu_id FROM pl_org_role_menu WHERE role_id IN
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        ) ) )
        UNION ALL
            SELECT
                id,
                parent_id,
                code,
                name,
                alias,
                path,
                source,
                action,
                sort
            FROM
                pl_sys_menu
            WHERE
                is_deleted = 0 and  category = 2 AND id IN ( SELECT menu_id FROM pl_org_role_menu WHERE role_id IN
                <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>)
        SELECT
        id,
        parent_id,
        code,
        name,
        alias,
        path,
        source,
        action,
        sort
        FROM
        pl_sys_menu
        WHERE
        is_deleted = 0 and category = 2 AND id IN ( SELECT menu_id FROM pl_org_role_menu WHERE role_id IN
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>)
        ) menu ORDER BY sort
    </select>
    <select id="getButtonByParentCode" resultMap="menuResultMap">
        SELECT
            id,
            parent_id,
            code,
            name,
            alias,
            PATH,
            SOURCE,
            ACTION,
            sort
        FROM
            PL_SYS_MENU
    <select id="getButtonsByRoleIdAndCode" resultMap="menuResultMap">
        SELECT pm.*
        FROM PL_SYS_MENU ps,
        PL_SYS_MENU pm
        <if test="roleId != null and roleId != ''">
            ,PL_ORG_ROLE_MENU prom
        </if>
        WHERE
            "CATEGORY" = '2'
          AND IS_DELETED = 0
          AND PARENT_ID IN (
            SELECT
            ID
            FROM
            PL_SYS_MENU
            WHERE
            CODE = #{code})
        ORDER BY SORT
        ps."CATEGORY" = 1
        <if test="roleId != null and roleId != ''">
            AND ps.ID = prom.MENU_ID
            AND prom.ROLE_ID = #{roleId}
        </if>
        AND pm.IS_DELETED = 0
        <if test="code != null and code != ''">
            AND ps.ID = pm.PARENT_ID
            AND ps.CODE = #{code}
        </if>
        ORDER BY pm.SORT ASC
    </select>
    <select id="grantTree" resultMap="treeNodeResultMap">
        select
               id,
        select id,
               parent_id,
               name as title,
               id as "value",
               id as "key"
        from pl_sys_menu where is_deleted = 0 order by sort
               id   as "value",
               id   as "key"
        from pl_sys_menu
        where is_deleted = 0
        order by sort
    </select>
    <select id="grantTreeByRole" resultMap="treeNodeResultMap">
@@ -260,102 +269,95 @@
        and id in ( select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach> )
        or id in (
            select parent_id from pl_sys_menu where is_deleted = 0
            and id in ( select menu_id from pl_org_role_menu where role_id in
            <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                #{item}
            </foreach> )
          )
        order by sort
    </select>
    <select id="grantTopTree" resultMap="treeNodeResultMap">
        select id, parent_id, name as title, id as "value", id as "key" from pl_sys_menu where category = 1 and is_deleted = 0 order by sort
    </select>
    <select id="grantTopTreeByRole" resultMap="treeNodeResultMap">
        select id, parent_id, name as title, id as "value", id as "key" from pl_sys_menu where category = 1 and is_deleted = 0
        and id in ( select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach> )
        </foreach>
        )
        or id in (
        select parent_id from pl_sys_menu where is_deleted = 0
        and id in ( select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach> )
        </foreach>
        )
        )
        order by sort
    </select>
    <select id="grantTopTree" resultMap="treeNodeResultMap">
        select id, parent_id, name as title, id as "value", id as "key"
        from pl_sys_menu
        where category = 1
          and is_deleted = 0
        order by sort
    </select>
    <select id="grantTopTreeByRole" resultMap="treeNodeResultMap">
        select id, parent_id, name as title, id as "value", id as "key" from pl_sys_menu where category = 1 and
        is_deleted = 0
        and id in ( select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
        or id in (
        select parent_id from pl_sys_menu where is_deleted = 0
        and id in ( select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
        )
        order by sort
    </select>
    <select id="grantDataScopeTree" resultMap="treeNodeResultMap">
        SELECT
            *
        FROM
            (
                SELECT
                    id,
                    parent_id,
                    NAME AS title,
                    id AS "value",
                    id AS "key"
                FROM
                    pl_sys_menu
                WHERE
                    category = 1
                  AND is_deleted = 0
                  AND id IN ( SELECT menu_id FROM pl_auth_scope_data WHERE is_deleted = 0 AND menu_id IS NOT NULL )
            ) menu
        SELECT *
        FROM (
                 SELECT id,
                        parent_id,
                        NAME AS title,
                        id   AS "value",
                        id   AS "key"
                 FROM pl_sys_menu
                 WHERE category = 1
                   AND is_deleted = 0
                   AND id IN (SELECT menu_id FROM pl_auth_scope_data WHERE is_deleted = 0 AND menu_id IS NOT NULL)
             ) menu
        UNION ALL
        SELECT
            id,
            menu_id AS parent_id,
            scope_name AS title,
            id AS "value",
            id AS "key"
        FROM
            pl_auth_scope_data
        WHERE
            is_deleted = 0
        SELECT id,
               menu_id    AS parent_id,
               scope_name AS title,
               id         AS "value",
               id         AS "key"
        FROM pl_auth_scope_data
        WHERE is_deleted = 0
          AND menu_id IS NOT NULL
    </select>
    <select id="grantApiScopeTree" resultMap="treeNodeResultMap">
        SELECT
            *
        FROM
            (
                SELECT
                    id,
                    parent_id,
                    NAME AS title,
                    id AS "value",
                    id AS "key"
                FROM
                    pl_sys_menu
                WHERE
                    category = 1
                  AND is_deleted = 0
                  AND id IN ( SELECT menu_id FROM pl_auth_scope_api WHERE is_deleted = 0 AND menu_id IS NOT NULL )
            ) menu
        SELECT *
        FROM (
                 SELECT id,
                        parent_id,
                        NAME AS title,
                        id   AS "value",
                        id   AS "key"
                 FROM pl_sys_menu
                 WHERE category = 1
                   AND is_deleted = 0
                   AND id IN (SELECT menu_id FROM pl_auth_scope_api WHERE is_deleted = 0 AND menu_id IS NOT NULL)
             ) menu
        UNION ALL
        SELECT
            id,
            menu_id AS parent_id,
            scope_name AS title,
            id AS "value",
            id AS "key"
        FROM
            pl_auth_scope_api
        WHERE
            is_deleted = 0
        SELECT id,
               menu_id    AS parent_id,
               scope_name AS title,
               id         AS "value",
               id         AS "key"
        FROM pl_auth_scope_api
        WHERE is_deleted = 0
          AND menu_id IS NOT NULL
    </select>
@@ -364,61 +366,63 @@
        *
        FROM
        (
            SELECT
                id,
                parent_id,
                NAME AS title,
                id AS "value",
                id AS "key"
            FROM
                pl_sys_menu
            WHERE
                category = 1
            AND is_deleted = 0
            AND id IN ( SELECT menu_id FROM pl_auth_scope_data WHERE is_deleted = 0 AND menu_id IS NOT NULL )
            AND (
                id IN (
                    select menu_id from pl_org_role_menu where role_id in
                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                        #{item}
                    </foreach>
                )
                OR id IN (
                    select parent_id from pl_sys_menu where is_deleted = 0
                    and id in ( select menu_id from pl_org_role_menu where role_id in
                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                        #{item}
                    </foreach> )
                )
            )
        SELECT
        id,
        parent_id,
        NAME AS title,
        id AS "value",
        id AS "key"
        FROM
        pl_sys_menu
        WHERE
        category = 1
        AND is_deleted = 0
        AND id IN ( SELECT menu_id FROM pl_auth_scope_data WHERE is_deleted = 0 AND menu_id IS NOT NULL )
        AND (
        id IN (
        select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
        OR id IN (
        select parent_id from pl_sys_menu where is_deleted = 0
        and id in ( select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
        )
        )
        ) menu
        UNION ALL
        SELECT
            id,
            menu_id AS parent_id,
            scope_name AS title,
            id AS "value",
            id AS "key"
        id,
        menu_id AS parent_id,
        scope_name AS title,
        id AS "value",
        id AS "key"
        FROM
            pl_auth_scope_data
        pl_auth_scope_data
        WHERE
            is_deleted = 0
        is_deleted = 0
        AND (
            menu_id IN (
                select menu_id from pl_org_role_menu where role_id in
                <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            )
            OR menu_id IN (
                select parent_id from pl_sys_menu where is_deleted = 0
                and id in ( select menu_id from pl_org_role_menu where role_id in
                <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach> )
            )
        menu_id IN (
        select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
        OR menu_id IN (
        select parent_id from pl_sys_menu where is_deleted = 0
        and id in ( select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
        )
        )
        AND menu_id IS NOT NULL
    </select>
@@ -428,100 +432,133 @@
        *
        FROM
        (
            SELECT
                id,
                parent_id,
                NAME AS title,
                id AS "value",
                id AS "key"
            FROM
                pl_sys_menu
            WHERE
                category = 1
            AND is_deleted = 0
            AND id IN ( SELECT menu_id FROM pl_auth_scope_api WHERE is_deleted = 0 AND menu_id IS NOT NULL )
            AND (
                id IN (
                    select menu_id from pl_org_role_menu where role_id in
                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                        #{item}
                    </foreach>
                )
                OR id IN (
                    select parent_id from pl_sys_menu where is_deleted = 0
                    and id in (
                        select menu_id from pl_org_role_menu where role_id in
                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                        #{item}
                    </foreach> )
                )
            )
        SELECT
        id,
        parent_id,
        NAME AS title,
        id AS "value",
        id AS "key"
        FROM
        pl_sys_menu
        WHERE
        category = 1
        AND is_deleted = 0
        AND id IN ( SELECT menu_id FROM pl_auth_scope_api WHERE is_deleted = 0 AND menu_id IS NOT NULL )
        AND (
        id IN (
        select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
        OR id IN (
        select parent_id from pl_sys_menu where is_deleted = 0
        and id in (
        select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
        )
        )
        ) menu
        UNION ALL
        SELECT
            id,
            menu_id AS parent_id,
            scope_name AS title,
            id AS "value",
            id AS "key"
        id,
        menu_id AS parent_id,
        scope_name AS title,
        id AS "value",
        id AS "key"
        FROM
            pl_auth_scope_api
        pl_auth_scope_api
        WHERE
            is_deleted = 0
        is_deleted = 0
        AND
            (
                menu_id IN (
                    select menu_id from pl_org_role_menu where role_id in
                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                        #{item}
                    </foreach>
                )
            OR menu_id IN (
                    select parent_id from pl_sys_menu where is_deleted = 0
                    and id in ( select menu_id from pl_org_role_menu where role_id in
                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                        #{item}
                    </foreach> )
                )
        (
        menu_id IN (
        select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
        OR menu_id IN (
        select parent_id from pl_sys_menu where is_deleted = 0
        and id in ( select menu_id from pl_org_role_menu where role_id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        )
        )
        )
        AND menu_id IS NOT NULL
    </select>
    <select id="authRoutes" resultType="com.vci.ubcs.system.dto.MenuDTO">
        SELECT
            GROUP_CONCAT(r.role_alias) as alias,
            m.path
        GROUP_CONCAT(r.role_alias) as alias,
        m.path
        FROM
            pl_org_role_menu rm
            LEFT JOIN pl_sys_menu m ON rm.menu_id = m.id
            LEFT JOIN pl_org_role r ON rm.role_id = r.id
        pl_org_role_menu rm
        LEFT JOIN pl_sys_menu m ON rm.menu_id = m.id
        LEFT JOIN pl_org_role r ON rm.role_id = r.id
        WHERE
            rm.role_id IN
            <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                #{item}
            </foreach>
            AND m.path IS NOT NULL and m.is_deleted = 0
        rm.role_id IN
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
        AND m.path IS NOT NULL and m.is_deleted = 0
        GROUP BY m.path
    </select>
    <select id="selectMenuChildByBtnType" resultMap="menuResultMap">
        select pm.*
            from pl_sys_menu ps, pl_sys_menu pm
        from pl_sys_menu ps, pl_sys_menu pm
        where pm.is_deleted = 0
          and ps.category = 1
          and ps.CODE = #{btmType}
          and ps.ID = pm.PARENT_ID
            <if test="roleIds != null and roleIds != ''">
                and ps.ID in (
                    SELECT menu_id FROM pl_org_role_menu WHERE role_id IN
                    <foreach collection="roleIds" index="index" item="item" open="(" separator="," close=")">
                        #{item}
                    </foreach>
                )
            </if>
        and ps.category = 1
        and ps.CODE = #{btmType}
        and ps.ID = pm.PARENT_ID
        <if test="roleIds != null and roleIds != ''">
            and ps.ID in
            SELECT menu_id FROM pl_org_role_menu WHERE role_id IN
            <foreach collection="roleIds" index="index" item="item" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
        order by pm.sort asc
    </select>
    <select id="getButtonByIdsOrByParentCode" resultMap="menuResultMap">
        SELECT
            pm.*
        FROM
            PL_SYS_MENU pm
            <if test="code != null and code != ''">
                ,PL_SYS_MENU ps
            </if>
            <if test="roleIds != null and roleIds != ''">
                ,PL_ORG_ROLE_MENU prom
            </if>
        WHERE
            pm.IS_DELETED = 0
            AND pm."CATEGORY" = 2
            <if test="code != null and code != ''">
                AND ps."CATEGORY" = 1
                AND ps.ID = pm.PARENT_ID
                AND ps.CODE = #{code}
            </if>
            <if test="roleIds != null and roleIds != ''">
                AND pm.ID = prom.MENU_ID
                AND prom.ROLE_ID in (#{roleIds})
            </if>
            <if test="ids != null and ids != ''">
                AND pm.ID IN
                <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        ORDER BY SORT ASC
    </select>
</mapper>