Przeglądaj źródła

2024-3-27 安全检查查询优化。

chaiyunlong 1 rok temu
rodzic
commit
220693b572

+ 12 - 1
zd-modules/zd-security/src/main/java/com/zd/security/controller/CheckPlanController.java

@@ -1,5 +1,6 @@
 package com.zd.security.controller;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,6 +19,7 @@ import com.zd.security.api.vo.CheckPlanVo;
 import com.zd.security.entity.CheckMember;
 import com.zd.security.entity.CheckPlan;
 import com.zd.security.scope.DataPermission;
+import com.zd.security.scope.DataPermissionAspect;
 import com.zd.security.service.CheckMemberService;
 import com.zd.security.service.CheckPlanService;
 import io.swagger.annotations.Api;
@@ -168,6 +170,7 @@ public class CheckPlanController extends AbstractController {
     @ApiOperation("获取检查计划列表(分页)")
     //@DataPermission(permissionStr = PerPrefix.SECURITY_CHECK_PLAN)
 //    @DataPermission(roleKey="checkGentle", tableAlias="*")
+    @DataPermission(tableAlias = "m")
     @PreAuthorize(hasAnyPermi = {PerPrefix.SECURITY_CHECK_PLAN + PerFun.LIST,PerPrefix.SECURITY_CHECK_PLAN_1 + PerFun.LIST})
     @PostMapping(value = "/list")
     public ResultData list(@RequestBody QueryCheckPlanListParam queryCheckPlanListParam) {
@@ -197,8 +200,16 @@ public class CheckPlanController extends AbstractController {
         if(Objects.nonNull(queryCheckPlanListParam.getMyRelated()) && queryCheckPlanListParam.getMyRelated() == 1){
             sql.append(" ( create_by = ").append(getCurrentUserId()).append(" ) ");
         }
+        //参数检查
+        List<Long> users = DataPermissionAspect.threadLocal.get(); // 获取数据
         if(Objects.nonNull(queryCheckPlanListParam.getMyRelated()) && queryCheckPlanListParam.getMyRelated() != 1){
-            sql.append(" ( create_by = ").append(getCurrentUserId()).append(" OR 1=1 )");
+            if(CollectionUtil.isNotEmpty(users)){
+                String userStr = users.stream().map(a->a.toString()).collect(Collectors.joining(","));
+                sql.append(" ( create_by = ").append(getCurrentUserId()).append(" or create_by in("+userStr+"))");
+            }else{
+                sql.append(" ( create_by = ").append(getCurrentUserId()).append(")");
+            }
+
         }
         queryWrapper.apply(sql.toString());
         queryWrapper.orderByDesc(CheckPlan::getId);