From e339298a0b94505a0dd283f7f0d9c0cf0aa51987 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期一, 24 七月 2023 17:29:53 +0800
Subject: [PATCH] 增加用户任务数据过滤

---
 ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml                    |   13 ++++---------
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java    |    8 ++++++++
 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java |    2 +-
 ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml                 |    4 ----
 4 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
index b3c7423..6688e65 100644
--- a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
+++ b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -52,8 +52,8 @@
                c.name,
                c.text,
                c.voice,
-               c.dept_id,
-               c.user_id,
+               d.dept_id,
+               u.user_id,
                c.create_by,
                c.create_time,
                c.update_by,
@@ -69,14 +69,9 @@
             <if test="name != null  and name != ''">and name like '%'||#{name}||'%'</if>
             <if test="text != null  and text != ''">and text = #{text}</if>
             <if test="voice != null  and voice != ''">and voice = #{voice}</if>
-            <if test="deptId != null and deptId != 0 ">
-            and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
-                WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
-            </if>
-            <if test="userId != null  and userId != ''">and user_id = #{userId}</if>
+            <!-- 鏁版嵁鑼冨洿杩囨护 -->
+            ${params.dataScope}
         </where>
-        <!-- 鏁版嵁鑼冨洿杩囨护 -->
-        ${params.dataScope}
     </select>
 
     <select id="selectArdAppTaskById" parameterType="String" resultMap="ArdAppTaskSubResult">
diff --git a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
index 19fdea3..7907744 100644
--- a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
+++ b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
@@ -81,10 +81,6 @@
             <if test="longitude != null ">and c.longitude = #{longitude}</if>
             <if test="latitude != null ">and c.latitude = #{latitude}</if>
             <if test="altitude != null ">and c.altitude = #{altitude}</if>
-            <if test="userId != null  and userId != ''">and c.user_id = #{userId}</if>
-            <if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
-                WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
-            </if>
             <if test="camHeading != null ">and c.cam_heading = #{camHeading}</if>
             <if test="camPitch != null ">and c.cam_pitch = #{camPitch}</if>
             <if test="camRoll != null ">and c.cam_roll = #{camRoll}</if>
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index 151ebb4..4e5bf1e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -146,6 +146,14 @@
     {
         return userId != null && userId.equals("1");
     }
+    public boolean isApp()
+    {
+        return isApp(this.userId);
+    }
+    public boolean isApp(String userId)
+    {
+        return userId != null && this.getRoles().stream().anyMatch(sysRole -> sysRole.getRoleKey().contains("appLeader"));
+    }
 
     public Long getDeptId()
     {
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 63fa636..c961522 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
@@ -70,7 +70,7 @@
         {
             SysUser currentUser = loginUser.getUser();
             // 濡傛灉鏄秴绾х鐞嗗憳锛屽垯涓嶈繃婊ゆ暟鎹�
-            if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin())
+            if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()&& !currentUser.isApp())
             {
                 String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), PermissionContextHolder.getContext());
                 dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(),

--
Gitblit v1.9.3