From 955d72cb75391f171c8e88d23377f20d88624af5 Mon Sep 17 00:00:00 2001 From: junjie Date: Tue, 14 Dec 2021 10:14:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=A7=86=E5=9B=BE):=20=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=99=A8=E6=94=AF=E6=8C=81and=E3=80=81or=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/provider/query/ck/CKQueryProvider.java | 8 +++++--- .../dataease/provider/query/db2/Db2QueryProvider.java | 8 +++++--- .../provider/query/doris/DorisQueryProvider.java | 8 +++++--- .../io/dataease/provider/query/es/EsQueryProvider.java | 8 +++++--- .../provider/query/hive/HiveQueryProvider.java | 8 +++++--- .../provider/query/mongodb/MongoQueryProvider.java | 8 +++++--- .../provider/query/mysql/MysqlQueryProvider.java | 8 +++++--- .../provider/query/oracle/OracleQueryProvider.java | 8 +++++--- .../io/dataease/provider/query/pg/PgQueryProvider.java | 8 +++++--- .../provider/query/redshift/RedshiftQueryProvider.java | 8 +++++--- .../query/sqlserver/SqlserverQueryProvider.java | 8 +++++--- .../dataease/service/dataset/DataSetTableService.java | 10 +++++++--- 12 files changed, 62 insertions(+), 36 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java index 6fef337c5e..6c0200c5c3 100644 --- a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java @@ -840,9 +840,11 @@ public class CKQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + if (CollectionUtils.isNotEmpty(list)) { + res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + } } - return "(" + String.join(" AND ", res) + ")"; + return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; } public String transExtFilterList(SQLObj tableObj, List requestList) { @@ -922,7 +924,7 @@ public class CKQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - return "(" + String.join(" AND ", strList) + ")"; + return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null; } private String sqlFix(String sql) { diff --git a/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java b/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java index 708950ef11..f75903bb1b 100644 --- a/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java @@ -790,9 +790,11 @@ public class Db2QueryProvider extends QueryProvider { List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + if (CollectionUtils.isNotEmpty(list)) { + res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + } } - return "(" + String.join(" AND ", res) + ")"; + return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; } public String transExtFilterList(SQLObj tableObj, List requestList) { @@ -860,7 +862,7 @@ public class Db2QueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - return "(" + String.join(" AND ", strList) + ")"; + return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null; } private String sqlFix(String sql) { diff --git a/backend/src/main/java/io/dataease/provider/query/doris/DorisQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/doris/DorisQueryProvider.java index 3ec5ea30ed..3d14ad7fe9 100644 --- a/backend/src/main/java/io/dataease/provider/query/doris/DorisQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/doris/DorisQueryProvider.java @@ -812,9 +812,11 @@ public class DorisQueryProvider extends QueryProvider { List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + if (CollectionUtils.isNotEmpty(list)) { + res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + } } - return "(" + String.join(" AND ", res) + ")"; + return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; } public String transExtFilterList(SQLObj tableObj, List requestList) { @@ -884,7 +886,7 @@ public class DorisQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - return "(" + String.join(" AND ", strList) + ")"; + return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null; } private String transDateFormat(String dateStyle, String datePattern) { diff --git a/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java index c4e87b62cd..0eae4242d9 100644 --- a/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java @@ -759,9 +759,11 @@ public class EsQueryProvider extends QueryProvider { List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + if (CollectionUtils.isNotEmpty(list)) { + res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + } } - return "(" + String.join(" AND ", res) + ")"; + return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; } public String transExtFilterList(SQLObj tableObj, List requestList) { @@ -828,7 +830,7 @@ public class EsQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - return "(" + String.join(" AND ", strList) + ")"; + return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null; } private String sqlFix(String sql) { diff --git a/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java index f9eef586e2..15cbcae957 100644 --- a/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java @@ -786,9 +786,11 @@ public class HiveQueryProvider extends QueryProvider { List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + if (CollectionUtils.isNotEmpty(list)) { + res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + } } - return "(" + String.join(" AND ", res) + ")"; + return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; } public String transExtFilterList(SQLObj tableObj, List requestList) { @@ -855,7 +857,7 @@ public class HiveQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - return "(" + String.join(" AND ", strList) + ")"; + return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null; } private String sqlFix(String sql) { diff --git a/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java index eb7c28f770..6cd5d84c02 100644 --- a/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java @@ -752,9 +752,11 @@ public class MongoQueryProvider extends QueryProvider { List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + if (CollectionUtils.isNotEmpty(list)) { + res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + } } - return "(" + String.join(" AND ", res) + ")"; + return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; } public String transExtFilterList(SQLObj tableObj, List requestList) { @@ -807,7 +809,7 @@ public class MongoQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - return "(" + String.join(" AND ", strList) + ")"; + return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null; } private String sqlFix(String sql) { diff --git a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java index e4e8b2eb90..07cbbe6a64 100644 --- a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java @@ -789,9 +789,11 @@ public class MysqlQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + if (CollectionUtils.isNotEmpty(list)) { + res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + } } - return "(" + String.join(" AND ", res) + ")"; + return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; } public String transExtFilterList(SQLObj tableObj, List requestList) { @@ -858,7 +860,7 @@ public class MysqlQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - return "(" + String.join(" AND ", strList) + ")"; + return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null; } private String sqlFix(String sql) { diff --git a/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java index 59abf74362..76e3313ff4 100644 --- a/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java @@ -847,9 +847,11 @@ public class OracleQueryProvider extends QueryProvider { List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + if (CollectionUtils.isNotEmpty(list)) { + res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + } } - return "(" + String.join(" AND ", res) + ")"; + return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; } public String transExtFilterList(SQLObj tableObj, List requestList) { @@ -917,7 +919,7 @@ public class OracleQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - return "(" + String.join(" AND ", strList) + ")"; + return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null; } private String sqlFix(String sql) { diff --git a/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java index 21c39311c9..46982dd15c 100644 --- a/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java @@ -817,9 +817,11 @@ public class PgQueryProvider extends QueryProvider { List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + if (CollectionUtils.isNotEmpty(list)) { + res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + } } - return "(" + String.join(" AND ", res) + ")"; + return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; } public String transExtFilterList(SQLObj tableObj, List requestList) { @@ -885,7 +887,7 @@ public class PgQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - return "(" + String.join(" AND ", strList) + ")"; + return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null; } private String sqlFix(String sql) { diff --git a/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java index bf19ddaee7..afeded3a65 100644 --- a/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java @@ -754,9 +754,11 @@ public class RedshiftQueryProvider extends QueryProvider { List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + if (CollectionUtils.isNotEmpty(list)) { + res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + } } - return "(" + String.join(" AND ", res) + ")"; + return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; } public String transExtFilterList(SQLObj tableObj, List requestList) { @@ -822,7 +824,7 @@ public class RedshiftQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - return "(" + String.join(" AND ", strList) + ")"; + return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null; } private String sqlFix(String sql) { diff --git a/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java index b7e5e6a374..8a534ffabb 100644 --- a/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java @@ -851,9 +851,11 @@ public class SqlserverQueryProvider extends QueryProvider { List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + if (CollectionUtils.isNotEmpty(list)) { + res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); + } } - return "(" + String.join(" AND ", res) + ")"; + return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; } public String transExtFilterList(SQLObj tableObj, List requestList) { @@ -920,7 +922,7 @@ public class SqlserverQueryProvider extends QueryProvider { } List strList = new ArrayList<>(); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); - return "(" + String.join(" AND ", strList) + ")"; + return CollectionUtils.isNotEmpty(list) ? "(" + String.join(" AND ", strList) + ")" : null; } private String sqlFix(String sql) { diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index f5019db9c3..cb482572fc 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -4,6 +4,7 @@ package io.dataease.service.dataset; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import io.dataease.auth.api.dto.CurrentRoleDto; +import io.dataease.auth.api.dto.CurrentUserDto; import io.dataease.base.domain.*; import io.dataease.base.mapper.*; import io.dataease.base.mapper.ext.ExtDataSetGroupMapper; @@ -447,9 +448,12 @@ public class DataSetTableService { return new ArrayList<>(); } RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class); - datasetRowPermissions.addAll(rowPermissionService.listDatasetRowPermissions(datasetId, Collections.singletonList(AuthUtils.getUser().getUserId()), "user")); - datasetRowPermissions.addAll(rowPermissionService.listDatasetRowPermissions(datasetId, AuthUtils.getUser().getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList()), "role")); - datasetRowPermissions.addAll(rowPermissionService.listDatasetRowPermissions(datasetId, Collections.singletonList(AuthUtils.getUser().getDeptId()), "dept")); + CurrentUserDto user = AuthUtils.getUser(); + if (user != null) { + datasetRowPermissions.addAll(rowPermissionService.listDatasetRowPermissions(datasetId, Collections.singletonList(user.getUserId()), "user")); + datasetRowPermissions.addAll(rowPermissionService.listDatasetRowPermissions(datasetId, user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList()), "role")); + datasetRowPermissions.addAll(rowPermissionService.listDatasetRowPermissions(datasetId, Collections.singletonList(user.getDeptId()), "dept")); + } return datasetRowPermissions; }