From 02e7ca80d849ad8a99974bd08f9e68a78f36d601 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 16 一月 2024 21:51:45 +0800
Subject: [PATCH] 分类授权数据授权界面编写与接口修改

---
 Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml |   81 ++++++++++++++++++++++++----------------
 1 files changed, 49 insertions(+), 32 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml b/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml
index df3421c..8316436 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml
@@ -219,30 +219,22 @@
         ) 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
-        WHERE
-            "CATEGORY" = '2'
-          AND IS_DELETED = 0
-          AND PARENT_ID IN (
-            SELECT
-            ID
-            FROM
-            PL_SYS_MENU
-            WHERE
-            CODE = #{code})
-        ORDER BY SORT
+    <select id="getButtonsByRoleIdAndCode" resultMap="menuResultMap">
+        SELECT pm.*
+        FROM PL_SYS_MENU ps,
+             PL_SYS_MENU pm,
+             PL_ORG_ROLE_MENU prom
+        WHERE ps.ID = prom.MENU_ID
+          <if test="roleId != null and roleId != ''">
+              AND prom.ROLE_ID = #{roleId}
+          </if>
+            AND ps."CATEGORY" = 1
+            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">
@@ -513,15 +505,40 @@
           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>
+          <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 ps,
+        PL_SYS_MENU pm,
+        PL_ORG_ROLE_MENU prom
+        WHERE ps.ID = prom.MENU_ID
+        <if test="roleIds != null and roleIds != ''">
+            AND prom.ROLE_ID in (#{roleIds})
+        </if>
+          AND ps."CATEGORY" = 1
+          AND pm.IS_DELETED = 0
+        <if test="code != null and code != ''">
+            AND ps.ID = pm.PARENT_ID
+            AND ps.CODE = #{code}
+        </if>
+        <if test="ids != null and ids != ''">
+            AND ps.ID IN (
+                <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            )
+        </if>
+        ORDER BY pm.SORT ASC
+    </select>
+
 </mapper>

--
Gitblit v1.9.3