From c5dbd04c9c99fc187ef526c0fda188dc30e51825 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期二, 14 十二月 2021 10:11:16 +0800
Subject: [PATCH] fix 修复数据权限 仅自己 相关问题

---
 ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java                     |   17 +++++++++++------
 ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java |    5 +++--
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java
index f99413b..5ae69ec 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java
@@ -23,34 +23,39 @@
     /**
      * 鍏ㄩ儴鏁版嵁鏉冮檺
      */
-    ALL("1", ""),
+    ALL("1", "", ""),
 
     /**
      * 鑷畾鏁版嵁鏉冮檺
      */
-    CUSTOM("2", " #{#deptName} IN ( #{@sdss.getRoleCustom( #user.roleId )} ) "),
+    CUSTOM("2", " #{#deptName} IN ( #{@sdss.getRoleCustom( #user.roleId )} ) ", ""),
 
     /**
      * 閮ㄩ棬鏁版嵁鏉冮檺
      */
-    DEPT("3", " #{#deptName} = #{#user.deptId} "),
+    DEPT("3", " #{#deptName} = #{#user.deptId} ", ""),
 
     /**
      * 閮ㄩ棬鍙婁互涓嬫暟鎹潈闄�
      */
-    DEPT_AND_CHILD("4", " #{#deptName} IN ( #{@sdss.getDeptAndChild( #user.deptId )} )"),
+    DEPT_AND_CHILD("4", " #{#deptName} IN ( #{@sdss.getDeptAndChild( #user.deptId )} )", ""),
 
     /**
      * 浠呮湰浜烘暟鎹潈闄�
      */
-    SELF("5", " #{#userName?:1} = #{#user.userId} ");
+    SELF("5", " #{#userName} = #{#user.userId} " , " 1 = 0 ");
 
     private final String code;
 
     /**
      * 璇硶 閲囩敤 spel 妯℃澘琛ㄨ揪寮�
      */
-    private final String sql;
+    private final String sqlTemplate;
+
+    /**
+     * 涓嶆弧瓒� sqlTemplate 鍒欏~鍏�
+     */
+    private final String elseSql;
 
     public static DataScopeType findCode(String code) {
         if (StringUtils.isBlank(code)) {
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java
index 89897c3..527fa60 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java
@@ -96,13 +96,14 @@
                     return "";
                 }
                 // 涓嶅寘鍚� key 鍙橀噺 鍒欎笉澶勭悊
-                if (!StringUtils.contains(type.getSql(), "#" + dataColumn.key())) {
+                if (!StringUtils.contains(type.getSqlTemplate(), "#" + dataColumn.key())) {
+                    sqlString.append(type.getElseSql());
                     continue;
                 }
                 // 鏇存柊鎴栧垹闄ら渶婊¤冻鎵�鏈夋潯浠�
                 sqlString.append(isSelect ? " OR " : " AND ");
                 // 瑙f瀽sql妯℃澘骞跺~鍏�
-                String sql = parser.parseExpression(type.getSql(), parserContext).getValue(context, String.class);
+                String sql = parser.parseExpression(type.getSqlTemplate(), parserContext).getValue(context, String.class);
                 sqlString.append(sql);
             }
         }

--
Gitblit v1.9.3