Browse Source

update dataScopeAspect logic

guoenzhou 8 months ago
parent
commit
ca9d520fff

+ 16 - 13
base-common/ruoyi-common-datascope/src/main/java/com/ruoyi/common/datascope/aspect/DataScopeAspect.java

@@ -88,7 +88,7 @@ public class DataScopeAspect
     public static void dataScopeFilter(JoinPoint joinPoint, SysUserVO user, String deptAlias, String userAlias)
     {
         StringBuilder sqlString = new StringBuilder();
-
+        StringBuilder sqlLambda = new StringBuilder();
         for (SysRoleVO role : user.getRoles())
         {
             String dataScope = role.getDataScope();
@@ -96,33 +96,32 @@ public class DataScopeAspect
             {
                 Integer tenantId = SecurityUtils.getTenantId();
                 sqlString.append(StringUtils.format(" OR {}.tenant_id = {} ", deptAlias, tenantId));
+                sqlLambda.append(StringUtils.format(" OR tenant_id = {} ",  tenantId));
             }
             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()));
+                sqlString.append(StringUtils.format(" OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, role.getRoleId()));
+                sqlLambda.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))
             {
                 sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId()));
+                sqlLambda.append(StringUtils.format(" OR dept_id = {} ", 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 find_in_set( {} , ancestors ) )",
-                        deptAlias, user.getDeptId(), user.getDeptId()));
+                sqlString.append(StringUtils.format( " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", deptAlias, user.getDeptId(), user.getDeptId()));
+                sqlLambda.append(StringUtils.format( " OR dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )",  user.getDeptId(), user.getDeptId()));
             }
             else if (DATA_SCOPE_SELF.equals(dataScope))
             {
-                if (StringUtils.isNotBlank(userAlias))
-                {
+                if (StringUtils.isNotBlank(userAlias)) {
                     sqlString.append(StringUtils.format(" OR {}.create_by = {} ", userAlias, user.getUserName()));
-                }
-                else
-                {
+                    sqlLambda.append(StringUtils.format(" OR create_by = {} ", user.getUserName()));
+                } else {
                     // 数据权限为仅本人且没有userAlias别名不查询任何数据
                     sqlString.append(" OR 1=0 ");
+                    sqlLambda.append(StringUtils.format(" OR create_by = '{}' ", user.getUserName()));
                 }
             }
         }
@@ -135,8 +134,12 @@ public class DataScopeAspect
                 BaseEntity baseEntity = (BaseEntity) params;
                 baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")");
             }
-            DataScopeContextHolder.setDataScopeSql(" AND (" + sqlString.substring(4) + ")");
         }
+        if(StringUtils.isNotBlank(sqlLambda.toString())){
+            DataScopeContextHolder.setDataScopeSql(" (" + sqlLambda.substring(4) + ")");
+        }
+
+
     }
 
     /**

+ 1 - 1
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysDeptController.java

@@ -40,7 +40,7 @@ public class SysDeptController extends BaseController {
      */
     @GetMapping("/list")
     public ApiResult list(SysDept dept) {
-        List<SysDept> depts = deptService.selectDeptListByLamda(dept);
+        List<SysDept> depts = deptService.selectDeptList(dept);
         return ApiResult.success(depts);
     }
 

+ 11 - 6
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/MceReceiveServiceImpl.java

@@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.datascope.annotation.DataScope;
+import com.ruoyi.common.datascope.context.DataScopeContextHolder;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.security.utils.SecurityUtils;
@@ -99,20 +101,22 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
     }
 
     @Override
+    @DataScope
     public CommonPage<Object> mceManageList(String infoTitle, String infoType, String startTime, String endTime, Integer current, Integer size) {
         List<Object> list = new ArrayList<>();
         IPage<MceContent> page = new Page<>(current, size);
+        //查询消息内容
         LambdaQueryWrapper<MceContent> lambdaQuery1 = Wrappers.lambdaQuery();
-        lambdaQuery1.select(MceContent::getId, MceContent::getInfoTitle, MceContent::getInfoContent,
-                MceContent::getCreateTime,MceContent::getInfoType)
+        lambdaQuery1.select(MceContent::getId, MceContent::getInfoTitle, MceContent::getInfoContent, MceContent::getCreateTime,MceContent::getInfoType)
                 .like(StringUtils.isNotBlank(infoTitle),MceContent::getInfoTitle,infoTitle)
-                .between(StringUtils.isNotBlank(startTime)&&StringUtils.isNotBlank(endTime),MceContent::getCreateTime,
-                        startTime,endTime)
+                .between(StringUtils.isNotBlank(startTime)&&StringUtils.isNotBlank(endTime),MceContent::getCreateTime, startTime,endTime)
                 .eq(StringUtils.isNotBlank(infoType),MceContent::getInfoType, infoType)
-                .eq(MceContent::getCreateBy,SecurityUtils.getUsername())
-                .eq(MceContent::getTenantId,SecurityUtils.getTenantId())
+                .apply(DataScopeContextHolder.getDataScopeSql())
+//              .eq(MceContent::getCreateBy,SecurityUtils.getUsername())
+//              .eq(MceContent::getTenantId,SecurityUtils.getTenantId())
                 .orderByDesc(MceContent::getId);
         page = mceContentService.page(page,lambdaQuery1);
+
         if (CollectionUtils.isNotEmpty(page.getRecords())) {
             List<Integer> contentIds = new ArrayList<>();
             for (int i = 0; i < page.getRecords().size(); i++) {
@@ -141,6 +145,7 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
                 list.add(map);
             }
         }
+
         return new CommonPage<>(list,page.getTotal(),page.getCurrent(),page.getSize());
     }
 

+ 1 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysDeptServiceImpl.java

@@ -77,6 +77,7 @@ public class SysDeptServiceImpl extends AbstractCrudService<SysDeptMapper, SysDe
         deptQuery.orderByAsc(SysDept::getParentId, SysDept::getOrderNum)
                 .apply(DataScopeContextHolder.getDataScopeSql());
         log.debug(DataScopeContextHolder.getDataScopeSql());
+
         return deptMapper.selectList(deptQuery);
     }