From 50515e1affbe069212832dbbeca9635d2c8ddb04 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Fri, 31 May 2019 13:55:02 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A7=92=E8=89=B2=E9=85=8D?=
 =?UTF-8?q?=E7=BD=AE=E6=9C=AC=E9=83=A8=E9=97=A8=E5=8F=8A=E4=BB=A5=E4=B8=8B?=
 =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../resources/templates/system/role/dataScope.html    |  1 +
 .../com/ruoyi/framework/aspectj/DataScopeAspect.java  | 11 +++++++++++
 .../web/exception/GlobalExceptionHandler.java         |  1 -
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/ruoyi-admin/src/main/resources/templates/system/role/dataScope.html b/ruoyi-admin/src/main/resources/templates/system/role/dataScope.html
index 880f7c80..4e7f7322 100644
--- a/ruoyi-admin/src/main/resources/templates/system/role/dataScope.html
+++ b/ruoyi-admin/src/main/resources/templates/system/role/dataScope.html
@@ -27,6 +27,7 @@
 						<option value="1" th:field="*{dataScope}">全部数据权限</option>
 						<option value="2" th:field="*{dataScope}">自定数据权限</option>
 						<option value="3" th:field="*{dataScope}">本部门数据权限</option>
+						<option value="4" th:field="*{dataScope}">本部门及以下数据权限</option>
 					</select>
 					<span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 特殊情况下,设置为“自定数据权限”</span>
 				</div>
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
index f9224e02..72b6c512 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
@@ -39,6 +39,11 @@ public class DataScopeAspect
      */
     public static final String DATA_SCOPE_DEPT = "3";
 
+    /**
+     * 部门及以下数据权限
+     */
+    public static final String DATA_SCOPE_DEPT_AND_CHILD = "4";
+
     /**
      * 数据权限过滤关键字
      */
@@ -105,6 +110,12 @@ public class DataScopeAspect
             {
                 sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", alias, user.getDeptId()));
             }
+            else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope))
+            {
+                sqlString.append(StringUtils.format(
+                        " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or parent_id= {} )", alias,
+                        user.getDeptId(), user.getDeptId()));
+            }
         }
 
         if (StringUtils.isNotBlank(sqlString.toString()))
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
index 50fbed54..82c60092 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
@@ -80,7 +80,6 @@ public class GlobalExceptionHandler
     public Object businessException(HttpServletRequest request, BusinessException e)
     {
         log.error(e.getMessage(), e);
-
         if (ServletUtils.isAjaxRequest(request))
         {
             return AjaxResult.error(e.getMessage());