From f50f1839aaa33be713561da03cf056662ac44f18 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 28 七月 2023 11:30:25 +0800
Subject: [PATCH] 增加app任务查看时间和查看位置 修改app任务详情为打卡时间和打卡位置

---
 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java |   78 +++++++++++++-------------------------
 1 files changed, 27 insertions(+), 51 deletions(-)

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 a4dcc41..74ce1bd 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
@@ -2,6 +2,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
@@ -23,8 +24,7 @@
  */
 @Aspect
 @Component
-public class DataScopeAspect
-{
+public class DataScopeAspect {
     /**
      * 鍏ㄩ儴鏁版嵁鏉冮檺
      */
@@ -56,22 +56,18 @@
     public static final String DATA_SCOPE = "dataScope";
 
     @Before("@annotation(controllerDataScope)")
-    public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable
-    {
+    public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable {
         clearDataScope(point);
         handleDataScope(point, controllerDataScope);
     }
 
-    protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope)
-    {
+    protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope) {
         // 鑾峰彇褰撳墠鐨勭敤鎴�
         LoginUser loginUser = SecurityUtils.getLoginUser();
-        if (StringUtils.isNotNull(loginUser))
-        {
+        if (StringUtils.isNotNull(loginUser)) {
             SysUser currentUser = loginUser.getUser();
             // 濡傛灉鏄秴绾х鐞嗗憳锛屽垯涓嶈繃婊ゆ暟鎹�;濡傛灉鏄痑pp鎸囨尌绔紝鍒欎笉杩囨护鏁版嵁;
-            if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin())
-            {
+            if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) {
                 String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), PermissionContextHolder.getContext());
                 dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(),
                         controllerDataScope.userAlias(), permission);
@@ -83,58 +79,42 @@
     /**
      * 鏁版嵁鑼冨洿杩囨护
      *
-     * @param joinPoint 鍒囩偣
-     * @param user 鐢ㄦ埛
-     * @param deptAlias 閮ㄩ棬鍒悕
-     * @param userAlias 鐢ㄦ埛鍒悕
+     * @param joinPoint  鍒囩偣
+     * @param user       鐢ㄦ埛
+     * @param deptAlias  閮ㄩ棬鍒悕
+     * @param userAlias  鐢ㄦ埛鍒悕
      * @param permission 鏉冮檺瀛楃
      */
-    public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission)
-    {
+    public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission) {
         StringBuilder sqlString = new StringBuilder();
         List<String> conditions = new ArrayList<String>();
 
-        for (SysRole role : user.getRoles())
-        {
+        for (SysRole role : user.getRoles()) {
             String dataScope = role.getDataScope();
-            if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope))
-            {
+            if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope)) {
                 continue;
             }
             if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions())
-                    && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission)))
-            {
+                    && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) {
                 continue;
             }
-            if (DATA_SCOPE_ALL.equals(dataScope))
-            {
+            if (DATA_SCOPE_ALL.equals(dataScope)) {
                 sqlString = new StringBuilder();
                 break;
-            }
-            else if (DATA_SCOPE_CUSTOM.equals(dataScope))
-            {
+            } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) {
                 sqlString.append(StringUtils.format(
                         " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias,
                         role.getRoleId()));
-            }
-            else if (DATA_SCOPE_DEPT.equals(dataScope))
-            {
+            } else if (DATA_SCOPE_DEPT.equals(dataScope)) {
                 sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId()));
-            }
-            else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope))
-            {
+            } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) {//" OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or '{}'= any(string_to_array(ancestors,',') ))",
                 sqlString.append(StringUtils.format(
-                        " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or '{}'= any(string_to_array(ancestors,',') ))",
-                        deptAlias, user.getDeptId(), user.getDeptId()));
-            }
-            else if (DATA_SCOPE_SELF.equals(dataScope))
-            {
-                if (StringUtils.isNotBlank(userAlias))
-                {
+                        " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE CAST ( {} AS VARCHAR ) = ANY ( string_to_array( ancestors, ',' )))",
+                        deptAlias, user.getDeptId()));
+            } else if (DATA_SCOPE_SELF.equals(dataScope)) {
+                if (StringUtils.isNotBlank(userAlias)) {
                     sqlString.append(StringUtils.format(" OR {}.user_id = '{}' ", userAlias, user.getUserId()));
-                }
-                else
-                {
+                } else {
                     // 鏁版嵁鏉冮檺涓轰粎鏈汉涓旀病鏈塽serAlias鍒悕涓嶆煡璇换浣曟暟鎹�
                     sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias));
                 }
@@ -142,11 +122,9 @@
             conditions.add(dataScope);
         }
 
-        if (StringUtils.isNotBlank(sqlString.toString()))
-        {
+        if (StringUtils.isNotBlank(sqlString.toString())) {
             Object params = joinPoint.getArgs()[0];
-            if (StringUtils.isNotNull(params) && params instanceof BaseEntity)
-            {
+            if (StringUtils.isNotNull(params) && params instanceof BaseEntity) {
                 BaseEntity baseEntity = (BaseEntity) params;
                 baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")");
             }
@@ -156,11 +134,9 @@
     /**
      * 鎷兼帴鏉冮檺sql鍓嶅厛娓呯┖params.dataScope鍙傛暟闃叉娉ㄥ叆
      */
-    private void clearDataScope(final JoinPoint joinPoint)
-    {
+    private void clearDataScope(final JoinPoint joinPoint) {
         Object params = joinPoint.getArgs()[0];
-        if (StringUtils.isNotNull(params) && params instanceof BaseEntity)
-        {
+        if (StringUtils.isNotNull(params) && params instanceof BaseEntity) {
             BaseEntity baseEntity = (BaseEntity) params;
             baseEntity.getParams().put(DATA_SCOPE, "");
         }

--
Gitblit v1.9.3