From 44bc7dd9a5360de59cbfdfeca55787afdb27b14b Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期四, 16 十二月 2021 00:11:38 +0800
Subject: [PATCH] update 修改已过期方法 调整编译警告

---
 ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java |   47 +++++++++++++++++++++++++----------------------
 1 files changed, 25 insertions(+), 22 deletions(-)

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 527fa60..f3e3207 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
@@ -75,41 +75,44 @@
      */
     private String buildDataFilter(SysUser user, DataColumn[] dataColumns, boolean isSelect) {
         StringBuilder sqlString = new StringBuilder();
-
+        // 鏇存柊鎴栧垹闄ら渶婊¤冻鎵�鏈夋潯浠�
+        String joinStr = isSelect ? " OR " : " AND ";
         StandardEvaluationContext context = new StandardEvaluationContext();
         context.setBeanResolver(beanResolver);
         context.setVariable("user", user);
-
-        for (DataColumn dataColumn : dataColumns) {
-            // 璁剧疆娉ㄨВ鍙橀噺 key 涓鸿〃杈惧紡鍙橀噺 value 涓哄彉閲忓��
-            context.setVariable(dataColumn.key(), dataColumn.value());
-            for (SysRole role : user.getRoles()) {
-                user.setRoleId(role.getRoleId());
-
-                // 鑾峰彇瑙掕壊鏉冮檺娉涘瀷
-                DataScopeType type = DataScopeType.findCode(role.getDataScope());
-                if (ObjectUtil.isNull(type)) {
-                    throw new ServiceException("瑙掕壊鏁版嵁鑼冨洿寮傚父 => " + role.getDataScope());
-                }
-                // 鍏ㄩ儴鏁版嵁鏉冮檺鐩存帴杩斿洖
-                if (type == DataScopeType.ALL) {
-                    return "";
-                }
+        for (SysRole role : user.getRoles()) {
+            user.setRoleId(role.getRoleId());
+            // 鑾峰彇瑙掕壊鏉冮檺娉涘瀷
+            DataScopeType type = DataScopeType.findCode(role.getDataScope());
+            if (ObjectUtil.isNull(type)) {
+                throw new ServiceException("瑙掕壊鏁版嵁鑼冨洿寮傚父 => " + role.getDataScope());
+            }
+            // 鍏ㄩ儴鏁版嵁鏉冮檺鐩存帴杩斿洖
+            if (type == DataScopeType.ALL) {
+                return "";
+            }
+            boolean isSuccess = false;
+            for (DataColumn dataColumn : dataColumns) {
                 // 涓嶅寘鍚� key 鍙橀噺 鍒欎笉澶勭悊
                 if (!StringUtils.contains(type.getSqlTemplate(), "#" + dataColumn.key())) {
-                    sqlString.append(type.getElseSql());
                     continue;
                 }
-                // 鏇存柊鎴栧垹闄ら渶婊¤冻鎵�鏈夋潯浠�
-                sqlString.append(isSelect ? " OR " : " AND ");
+                // 璁剧疆娉ㄨВ鍙橀噺 key 涓鸿〃杈惧紡鍙橀噺 value 涓哄彉閲忓��
+                context.setVariable(dataColumn.key(), dataColumn.value());
+
                 // 瑙f瀽sql妯℃澘骞跺~鍏�
                 String sql = parser.parseExpression(type.getSqlTemplate(), parserContext).getValue(context, String.class);
-                sqlString.append(sql);
+                sqlString.append(joinStr).append(sql);
+                isSuccess = true;
+            }
+            // 鏈鐞嗘垚鍔熷垯濉厖鍏滃簳鏂规
+            if (!isSuccess) {
+                sqlString.append(joinStr).append(type.getElseSql());
             }
         }
 
         if (StringUtils.isNotBlank(sqlString.toString())) {
-            return sqlString.substring(isSelect ? 4 : 5);
+            return sqlString.substring(joinStr.length());
         }
         return "";
     }

--
Gitblit v1.9.3