diff --git a/backend/pom.xml b/backend/pom.xml
index cf9bf9be59..8eb0f12b3f 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -10,7 +10,7 @@
4.0.0
backend
-
+
UTF-8
@@ -207,7 +207,7 @@
io.dataease
dataease-plugin-interface
- 1.5
+ 1.6
cn.hutool
@@ -419,19 +419,19 @@
-
- pentaho-public
- Pentaho Public
- http://nexus.pentaho.org/content/groups/omni
-
- true
- always
-
-
- true
- always
-
-
+
+ pentaho-public
+ Pentaho Public
+ http://nexus.pentaho.org/content/groups/omni
+
+ true
+ always
+
+
+ true
+ always
+
+
diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.java
index 5261a66430..bca5c5202b 100644
--- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.java
+++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.java
@@ -9,4 +9,5 @@ public interface ExtDataSetTableMapper {
List search(DataSetTableRequest request);
DataSetTableDTO searchOne(DataSetTableRequest request);
+
}
diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml
index d64322478b..91abf6daea 100644
--- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml
+++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml
@@ -7,6 +7,12 @@
+
+
+
+
+
+
+
diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelLinkJumpMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelLinkJumpMapper.xml
index 7b0a7ba4ef..28c55e4479 100644
--- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelLinkJumpMapper.xml
+++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelLinkJumpMapper.xml
@@ -12,6 +12,7 @@
+
@@ -35,6 +36,7 @@
panel_link_jump_info.jump_type,
panel_link_jump_info.target_panel_id,
panel_link_jump_info.content,
+ panel_link_mapping.id as publicJumpId,
ifnull( panel_link_jump_info.checked, 0 ) AS checked,
panel_link_jump_target_view_info.target_view_id,
panel_link_jump_target_view_info.target_field_id
@@ -45,6 +47,7 @@
LEFT JOIN panel_link_jump_info ON panel_link_jump.id = panel_link_jump_info.link_jump_id
AND dataset_table_field.id = panel_link_jump_info.source_field_id
LEFT JOIN panel_link_jump_target_view_info ON panel_link_jump_info.id = panel_link_jump_target_view_info.link_jump_info_id
+ LEFT JOIN panel_link_mapping on panel_link_jump_info.target_panel_id = panel_link_mapping.resource_id
WHERE
chart_view.id =#{source_view_id}
ORDER BY
diff --git a/backend/src/main/java/io/dataease/dto/chart/ChartFieldCustomFilterDTO.java b/backend/src/main/java/io/dataease/dto/chart/ChartFieldCustomFilterDTO.java
index 588f9e9d54..57a9c8d2ae 100644
--- a/backend/src/main/java/io/dataease/dto/chart/ChartFieldCustomFilterDTO.java
+++ b/backend/src/main/java/io/dataease/dto/chart/ChartFieldCustomFilterDTO.java
@@ -1,5 +1,6 @@
package io.dataease.dto.chart;
+import io.dataease.base.domain.DatasetTableField;
import lombok.Getter;
import lombok.Setter;
@@ -12,6 +13,8 @@ import java.util.List;
*/
@Getter
@Setter
-public class ChartFieldCustomFilterDTO implements Serializable {
+public class ChartFieldCustomFilterDTO extends ChartViewFieldBaseDTO implements Serializable {
private List filter;
+
+ private DatasetTableField field;
}
diff --git a/backend/src/main/java/io/dataease/dto/chart/ChartViewFieldBaseDTO.java b/backend/src/main/java/io/dataease/dto/chart/ChartViewFieldBaseDTO.java
new file mode 100644
index 0000000000..1f84afc654
--- /dev/null
+++ b/backend/src/main/java/io/dataease/dto/chart/ChartViewFieldBaseDTO.java
@@ -0,0 +1,51 @@
+package io.dataease.dto.chart;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author gin
+ * @Date 2021/3/11 1:18 下午
+ */
+@Data
+public class ChartViewFieldBaseDTO implements Serializable {
+ private String id;
+
+ private String tableId;
+
+ private String originName;
+
+ private String dataeaseName;
+
+ private String name;
+
+ private String type;
+
+ private Boolean checked;
+
+ private Integer columnIndex;
+
+ private Long lastSyncTime;
+
+ private Integer deType;
+
+ private String summary;
+
+ private String sort;
+
+ private Integer deExtractType;
+
+ private String dateStyle;
+
+ private String datePattern;
+
+ private Integer extField;
+
+ private String chartType;
+
+ private ChartFieldCompareDTO compareCalc;
+
+ private String logic;
+}
diff --git a/backend/src/main/java/io/dataease/dto/chart/ChartViewFieldDTO.java b/backend/src/main/java/io/dataease/dto/chart/ChartViewFieldDTO.java
index 3d5b13665d..78e8353109 100644
--- a/backend/src/main/java/io/dataease/dto/chart/ChartViewFieldDTO.java
+++ b/backend/src/main/java/io/dataease/dto/chart/ChartViewFieldDTO.java
@@ -10,42 +10,6 @@ import java.util.List;
* @Date 2021/3/11 1:18 下午
*/
@Data
-public class ChartViewFieldDTO implements Serializable {
- private String id;
-
- private String tableId;
-
- private String originName;
-
- private String dataeaseName;
-
- private String name;
-
- private String type;
-
- private Boolean checked;
-
- private Integer columnIndex;
-
- private Long lastSyncTime;
-
- private Integer deType;
-
- private String summary;
-
- private String sort;
-
+public class ChartViewFieldDTO extends ChartViewFieldBaseDTO implements Serializable {
private List filter;
-
- private Integer deExtractType;
-
- private String dateStyle;
-
- private String datePattern;
-
- private Integer extField;
-
- private String chartType;
-
- private ChartFieldCompareDTO compareCalc;
}
diff --git a/backend/src/main/java/io/dataease/dto/panel/linkJump/PanelLinkJumpInfoDTO.java b/backend/src/main/java/io/dataease/dto/panel/linkJump/PanelLinkJumpInfoDTO.java
index dc60b16914..b03c8ceac6 100644
--- a/backend/src/main/java/io/dataease/dto/panel/linkJump/PanelLinkJumpInfoDTO.java
+++ b/backend/src/main/java/io/dataease/dto/panel/linkJump/PanelLinkJumpInfoDTO.java
@@ -19,6 +19,9 @@ public class PanelLinkJumpInfoDTO extends PanelLinkJumpInfo {
private String sourceJumpInfo;
+ //存在公共链接的目标仪表板
+ private String publicJumpId;
+
private List targetViewInfoList=new ArrayList<>();// linkType = inner 时使用
diff --git a/backend/src/main/java/io/dataease/plugins/server/RowPermissionsController.java b/backend/src/main/java/io/dataease/plugins/server/RowPermissionsController.java
new file mode 100644
index 0000000000..378429c9b0
--- /dev/null
+++ b/backend/src/main/java/io/dataease/plugins/server/RowPermissionsController.java
@@ -0,0 +1,39 @@
+package io.dataease.plugins.server;
+
+import io.dataease.plugins.config.SpringContextUtil;
+import io.dataease.plugins.xpack.auth.dto.request.DataSetRowPermissionsDTO;
+import io.dataease.plugins.xpack.auth.dto.request.DatasetRowPermissions;
+import io.dataease.plugins.xpack.auth.dto.response.XpackSysAuthDetailDTO;
+import io.dataease.plugins.xpack.auth.service.RowPermissionService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+@RestController
+@RequestMapping("plugin/dataset/rowPermissions")
+public class RowPermissionsController {
+
+ @ApiOperation("保存")
+ @PostMapping("save")
+ public void save(@RequestBody DatasetRowPermissions datasetRowPermissions) throws Exception {
+ RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
+ rowPermissionService.save(datasetRowPermissions);
+ }
+
+ @ApiOperation("分页查询")
+ @PostMapping("/list")
+ public List rowPermissions(@RequestBody XpackSysAuthDetailDTO request) {
+ RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
+ return rowPermissionService.searchRowPermissions(request);
+ }
+
+ @ApiOperation("删除")
+ @GetMapping("/delete/{id}")
+ public void dataSetRowPermissionInfo(@PathVariable String id) {
+ RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
+ rowPermissionService.delete(id);
+ }
+
+}
diff --git a/backend/src/main/java/io/dataease/plugins/server/XAuthServer.java b/backend/src/main/java/io/dataease/plugins/server/XAuthServer.java
index 9121d531d1..9282d72b88 100644
--- a/backend/src/main/java/io/dataease/plugins/server/XAuthServer.java
+++ b/backend/src/main/java/io/dataease/plugins/server/XAuthServer.java
@@ -41,7 +41,15 @@ public class XAuthServer {
@I18n
public ListauthDetailsModel(@PathVariable String authType){
AuthXpackService sysAuthService = SpringContextUtil.getBean(AuthXpackService.class);
- return sysAuthService.searchAuthDetailsModel(authType);
+ List authDetails = sysAuthService.searchAuthDetailsModel(authType);
+ if(authType.equalsIgnoreCase("dataset")){
+ XpackSysAuthDetail xpackSysAuthDetail = new XpackSysAuthDetail();
+ xpackSysAuthDetail.setPrivilegeName("i18n_auth_row_permission");
+ xpackSysAuthDetail.setPrivilegeType(20);
+ xpackSysAuthDetail.setPrivilegeValue(1);
+ authDetails.add(0,xpackSysAuthDetail);
+ }
+ return authDetails;
}
@PostMapping("/authChange")
diff --git a/backend/src/main/java/io/dataease/provider/query/QueryProvider.java b/backend/src/main/java/io/dataease/provider/query/QueryProvider.java
index 9dc0bfeef3..8716317f0b 100644
--- a/backend/src/main/java/io/dataease/provider/query/QueryProvider.java
+++ b/backend/src/main/java/io/dataease/provider/query/QueryProvider.java
@@ -5,9 +5,9 @@ import io.dataease.base.domain.ChartViewWithBLOBs;
import io.dataease.base.domain.DatasetTableField;
import io.dataease.base.domain.Datasource;
import io.dataease.controller.request.chart.ChartExtFilterRequest;
-import io.dataease.dto.datasource.JdbcConfiguration;
-import io.dataease.dto.chart.ChartCustomFilterDTO;
+import io.dataease.dto.chart.ChartFieldCustomFilterDTO;
import io.dataease.dto.chart.ChartViewFieldDTO;
+import io.dataease.dto.datasource.JdbcConfiguration;
import io.dataease.dto.sqlObj.SQLObj;
import io.dataease.provider.query.pg.PgConstants;
@@ -23,52 +23,43 @@ public abstract class QueryProvider {
public abstract String createSQLPreview(String sql, String orderBy);
- public abstract String createQuerySQL(String table, List fields, boolean isGroup, Datasource ds);
+ public abstract String createQuerySQL(String table, List fields, boolean isGroup, Datasource ds, List fieldCustomFilter);
- public abstract String createQuerySQLAsTmp(String sql, List fields, boolean isGroup);
+ public abstract String createQuerySQLAsTmp(String sql, List fields, boolean isGroup, List fieldCustomFilter);
- public abstract String createQueryTableWithPage(String table, List fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup, Datasource ds);
+ public abstract String createQueryTableWithPage(String table, List fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup, Datasource ds, List fieldCustomFilter);
- public abstract String createQuerySQLWithPage(String sql, List fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup);
+ public abstract String createQuerySQLWithPage(String sql, List fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup, List fieldCustomFilter);
- public abstract String createQueryTableWithLimit(String table, List fields, Integer limit, boolean isGroup, Datasource ds);
+ public abstract String createQueryTableWithLimit(String table, List fields, Integer limit, boolean isGroup, Datasource ds, List fieldCustomFilter);
- public abstract String createQuerySqlWithLimit(String sql, List fields, Integer limit, boolean isGroup);
+ public abstract String createQuerySqlWithLimit(String sql, List fields, Integer limit, boolean isGroup, List fieldCustomFilter);
- public abstract String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view);
+ public abstract String getSQL(String table, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view);
- public abstract String getSQLAsTmp(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, ChartViewWithBLOBs view);
+ public abstract String getSQLAsTmp(String table, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, ChartViewWithBLOBs view);
- public abstract String getSQLTableInfo(String table, List xAxis, List customFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view);
+ public abstract String getSQLTableInfo(String table, List xAxis, List fieldCustomFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view);
- public abstract String getSQLAsTmpTableInfo(String sql, List xAxis, List customFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view);
+ public abstract String getSQLAsTmpTableInfo(String sql, List xAxis, List fieldCustomFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view);
- public abstract String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, Datasource ds, ChartViewWithBLOBs view);
+ public abstract String getSQLStack(String table, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, List extStack, Datasource ds, ChartViewWithBLOBs view);
- public abstract String getSQLAsTmpStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, ChartViewWithBLOBs view);
+ public abstract String getSQLAsTmpStack(String table, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, List extStack, ChartViewWithBLOBs view);
- public abstract String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, Datasource ds, ChartViewWithBLOBs view);
+ public abstract String getSQLScatter(String table, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, List extBubble, Datasource ds, ChartViewWithBLOBs view);
- public abstract String getSQLAsTmpScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, ChartViewWithBLOBs view);
+ public abstract String getSQLAsTmpScatter(String table, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, List extBubble, ChartViewWithBLOBs view);
public abstract String searchTable(String table);
- public abstract String getSQLSummary(String table, List yAxis, List customFilter, List extFilterRequestList, ChartViewWithBLOBs view);
+ public abstract String getSQLSummary(String table, List yAxis, List fieldCustomFilter, List extFilterRequestList, ChartViewWithBLOBs view);
public Integer transFieldSize(String type) {
return 50;
}
- /**
- * 单指标汇总
- *
- * @param sql
- * @param yAxis
- * @param customFilter
- * @param extFilterRequestList
- * @return
- */
- public abstract String getSQLSummaryAsTmp(String sql, List yAxis, List customFilter, List extFilterRequestList, ChartViewWithBLOBs view);
+ public abstract String getSQLSummaryAsTmp(String sql, List yAxis, List fieldCustomFilter, List extFilterRequestList, ChartViewWithBLOBs view);
public abstract String wrapSql(String sql);
@@ -84,7 +75,19 @@ public abstract class QueryProvider {
}
}
- public String convertTableToSql(String tableName, Datasource ds){
+ public String convertTableToSql(String tableName, Datasource ds) {
return "select * from TABLE_NAME".replace("TABLE_NAME", tableName);
}
+
+ public String getLogic(String logic) {
+ if (logic != null) {
+ switch (logic) {
+ case "and":
+ return "AND";
+ case "or":
+ return "OR";
+ }
+ }
+ return "AND";
+ }
}
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 a2e9738d55..9b73bd8fef 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
@@ -7,7 +7,8 @@ import io.dataease.base.domain.Datasource;
import io.dataease.base.mapper.DatasetTableFieldMapper;
import io.dataease.commons.constants.DeTypeConstants;
import io.dataease.controller.request.chart.ChartExtFilterRequest;
-import io.dataease.dto.chart.ChartCustomFilterDTO;
+import io.dataease.dto.chart.ChartCustomFilterItemDTO;
+import io.dataease.dto.chart.ChartFieldCustomFilterDTO;
import io.dataease.dto.chart.ChartViewFieldDTO;
import io.dataease.dto.sqlObj.SQLObj;
import io.dataease.provider.query.QueryProvider;
@@ -26,6 +27,7 @@ import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import static io.dataease.provider.query.SQLConstants.TABLE_ALIAS_PREFIX;
@@ -107,7 +109,7 @@ public class CKQueryProvider extends QueryProvider {
}
@Override
- public String createQuerySQL(String table, List fields, boolean isGroup, Datasource ds) {
+ public String createQuerySQL(String table, List fields, boolean isGroup, Datasource ds, List fieldCustomFilter) {
SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(CKConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
@@ -170,42 +172,45 @@ public class CKQueryProvider extends QueryProvider {
st_sql.add("isGroup", isGroup);
if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields);
if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj);
+ String customWheres = transCustomFilterList(tableObj, fieldCustomFilter);
+ List wheres = new ArrayList<>();
+ if (customWheres != null) wheres.add(customWheres);
+ if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres);
return st_sql.render();
}
@Override
- public String createQuerySQLAsTmp(String sql, List fields, boolean isGroup) {
- return createQuerySQL("(" + sqlFix(sql) + ")", fields, isGroup, null);
+ public String createQuerySQLAsTmp(String sql, List fields, boolean isGroup, List fieldCustomFilter) {
+ return createQuerySQL("(" + sqlFix(sql) + ")", fields, isGroup, null, fieldCustomFilter);
}
@Override
- public String createQueryTableWithPage(String table, List fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup, Datasource ds) {
- return createQuerySQL(table, fields, isGroup, null) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
+ public String createQueryTableWithPage(String table, List fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup, Datasource ds, List fieldCustomFilter) {
+ return createQuerySQL(table, fields, isGroup, null, fieldCustomFilter) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
}
@Override
- public String createQueryTableWithLimit(String table, List fields, Integer limit, boolean isGroup, Datasource ds) {
- return createQuerySQL(table, fields, isGroup, null) + " LIMIT 0," + limit;
+ public String createQueryTableWithLimit(String table, List fields, Integer limit, boolean isGroup, Datasource ds, List fieldCustomFilter) {
+ return createQuerySQL(table, fields, isGroup, null, fieldCustomFilter) + " LIMIT 0," + limit;
}
@Override
- public String createQuerySqlWithLimit(String sql, List fields, Integer limit, boolean isGroup) {
- return createQuerySQLAsTmp(sql, fields, isGroup) + " LIMIT 0," + limit;
+ public String createQuerySqlWithLimit(String sql, List fields, Integer limit, boolean isGroup, List fieldCustomFilter) {
+ return createQuerySQLAsTmp(sql, fields, isGroup, fieldCustomFilter) + " LIMIT 0," + limit;
}
@Override
- public String createQuerySQLWithPage(String sql, List fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup) {
- return createQuerySQLAsTmp(sql, fields, isGroup) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
+ public String createQuerySQLWithPage(String sql, List fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup, List fieldCustomFilter) {
+ return createQuerySQLAsTmp(sql, fields, isGroup, fieldCustomFilter) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
}
@Override
- public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
+ public String getSQL(String table, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(CKConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
.build();
List xFields = new ArrayList<>();
- List xWheres = new ArrayList<>();
List xOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(xAxis)) {
for (int i = 0; i < xAxis.size(); i++) {
@@ -234,7 +239,7 @@ public class CKQueryProvider extends QueryProvider {
}
}
List yFields = new ArrayList<>();
- List yWheres = new ArrayList<>();
+ List yWheres = new ArrayList<>();
List yOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(yAxis)) {
for (int i = 0; i < yAxis.size(); i++) {
@@ -252,7 +257,7 @@ public class CKQueryProvider extends QueryProvider {
// 处理纵轴字段
yFields.add(getYFields(y, originField, fieldAlias));
// 处理纵轴过滤
- yWheres.addAll(getYWheres(y, originField, fieldAlias));
+ yWheres.add(getYWheres(y, originField, fieldAlias));
// 处理纵轴排序
if (StringUtils.isNotEmpty(y.getSort()) && !StringUtils.equalsIgnoreCase(y.getSort(), "none")) {
yOrders.add(SQLObj.builder()
@@ -264,25 +269,24 @@ public class CKQueryProvider extends QueryProvider {
}
}
// 处理视图中字段过滤
- List customWheres = transCustomFilterList(tableObj, customFilter);
+ String customWheres = transCustomFilterList(tableObj, fieldCustomFilter);
// 处理仪表板字段过滤
- List extWheres = transExtFilterList(tableObj, extFilterRequestList);
+ String extWheres = transExtFilterList(tableObj, extFilterRequestList);
// 构建sql所有参数
List fields = new ArrayList<>();
fields.addAll(xFields);
fields.addAll(yFields);
- List wheres = new ArrayList<>();
- wheres.addAll(xWheres);
- if (customWheres != null) wheres.addAll(customWheres);
- if (extWheres != null) wheres.addAll(extWheres);
+ List wheres = new ArrayList<>();
+ if (customWheres != null) wheres.add(customWheres);
+ if (extWheres != null) wheres.add(extWheres);
List groups = new ArrayList<>();
groups.addAll(xFields);
// 外层再次套sql
List orders = new ArrayList<>();
orders.addAll(xOrders);
orders.addAll(yOrders);
- List aggWheres = new ArrayList<>();
- aggWheres.addAll(yWheres);
+ List aggWheres = new ArrayList<>();
+ aggWheres.addAll(yWheres.stream().filter(ObjectUtils::isNotEmpty).collect(Collectors.toList()));
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("querySql");
@@ -304,13 +308,12 @@ public class CKQueryProvider extends QueryProvider {
}
@Override
- public String getSQLTableInfo(String table, List xAxis, List customFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
+ public String getSQLTableInfo(String table, List xAxis, List fieldCustomFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(CKConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
.build();
List xFields = new ArrayList<>();
- List xWheres = new ArrayList<>();
List xOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(xAxis)) {
for (int i = 0; i < xAxis.size(); i++) {
@@ -339,16 +342,15 @@ public class CKQueryProvider extends QueryProvider {
}
}
// 处理视图中字段过滤
- List customWheres = transCustomFilterList(tableObj, customFilter);
+ String customWheres = transCustomFilterList(tableObj, fieldCustomFilter);
// 处理仪表板字段过滤
- List extWheres = transExtFilterList(tableObj, extFilterRequestList);
+ String extWheres = transExtFilterList(tableObj, extFilterRequestList);
// 构建sql所有参数
List fields = new ArrayList<>();
fields.addAll(xFields);
- List wheres = new ArrayList<>();
- wheres.addAll(xWheres);
- if (customWheres != null) wheres.addAll(customWheres);
- if (extWheres != null) wheres.addAll(extWheres);
+ List wheres = new ArrayList<>();
+ if (customWheres != null) wheres.add(customWheres);
+ if (extWheres != null) wheres.add(extWheres);
List groups = new ArrayList<>();
groups.addAll(xFields);
// 外层再次套sql
@@ -375,24 +377,23 @@ public class CKQueryProvider extends QueryProvider {
}
@Override
- public String getSQLAsTmpTableInfo(String sql, List xAxis, List customFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
- return getSQLTableInfo("(" + sqlFix(sql) + ")", xAxis, customFilter, extFilterRequestList, null, view);
+ public String getSQLAsTmpTableInfo(String sql, List xAxis, List fieldCustomFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) {
+ return getSQLTableInfo("(" + sqlFix(sql) + ")", xAxis, fieldCustomFilter, extFilterRequestList, null, view);
}
@Override
- public String getSQLAsTmp(String sql, List xAxis, List yAxis, List customFilter, List extFilterRequestList, ChartViewWithBLOBs view) {
- return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList, null, view);
+ public String getSQLAsTmp(String sql, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, ChartViewWithBLOBs view) {
+ return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, fieldCustomFilter, extFilterRequestList, null, view);
}
@Override
- public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, Datasource ds, ChartViewWithBLOBs view) {
+ public String getSQLStack(String table, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, List extStack, Datasource ds, ChartViewWithBLOBs view) {
SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(CKConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
.build();
List xFields = new ArrayList<>();
- List xWheres = new ArrayList<>();
List xOrders = new ArrayList<>();
List xList = new ArrayList<>();
xList.addAll(xAxis);
@@ -424,7 +425,7 @@ public class CKQueryProvider extends QueryProvider {
}
}
List yFields = new ArrayList<>();
- List yWheres = new ArrayList<>();
+ List yWheres = new ArrayList<>();
List yOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(yAxis)) {
for (int i = 0; i < yAxis.size(); i++) {
@@ -442,7 +443,7 @@ public class CKQueryProvider extends QueryProvider {
// 处理纵轴字段
yFields.add(getYFields(y, originField, fieldAlias));
// 处理纵轴过滤
- yWheres.addAll(getYWheres(y, originField, fieldAlias));
+ yWheres.add(getYWheres(y, originField, fieldAlias));
// 处理纵轴排序
if (StringUtils.isNotEmpty(y.getSort()) && !StringUtils.equalsIgnoreCase(y.getSort(), "none")) {
yOrders.add(SQLObj.builder()
@@ -454,25 +455,24 @@ public class CKQueryProvider extends QueryProvider {
}
}
// 处理视图中字段过滤
- List customWheres = transCustomFilterList(tableObj, customFilter);
+ String customWheres = transCustomFilterList(tableObj, fieldCustomFilter);
// 处理仪表板字段过滤
- List extWheres = transExtFilterList(tableObj, extFilterRequestList);
+ String extWheres = transExtFilterList(tableObj, extFilterRequestList);
// 构建sql所有参数
List fields = new ArrayList<>();
fields.addAll(xFields);
fields.addAll(yFields);
- List wheres = new ArrayList<>();
- wheres.addAll(xWheres);
- if (customWheres != null) wheres.addAll(customWheres);
- if (extWheres != null) wheres.addAll(extWheres);
+ List wheres = new ArrayList<>();
+ if (customWheres != null) wheres.add(customWheres);
+ if (extWheres != null) wheres.add(extWheres);
List groups = new ArrayList<>();
groups.addAll(xFields);
// 外层再次套sql
List orders = new ArrayList<>();
orders.addAll(xOrders);
orders.addAll(yOrders);
- List aggWheres = new ArrayList<>();
- aggWheres.addAll(yWheres);
+ List aggWheres = new ArrayList<>();
+ aggWheres.addAll(yWheres.stream().filter(ObjectUtils::isNotEmpty).collect(Collectors.toList()));
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("querySql");
@@ -494,18 +494,17 @@ public class CKQueryProvider extends QueryProvider {
}
@Override
- public String getSQLAsTmpStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, ChartViewWithBLOBs view) {
- return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack, null, view);
+ public String getSQLAsTmpStack(String table, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, List extStack, ChartViewWithBLOBs view) {
+ return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, fieldCustomFilter, extFilterRequestList, extStack, null, view);
}
@Override
- public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, Datasource ds, ChartViewWithBLOBs view) {
+ public String getSQLScatter(String table, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, List extBubble, Datasource ds, ChartViewWithBLOBs view) {
SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(CKConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
.build();
List xFields = new ArrayList<>();
- List xWheres = new ArrayList<>();
List xOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(xAxis)) {
for (int i = 0; i < xAxis.size(); i++) {
@@ -534,7 +533,7 @@ public class CKQueryProvider extends QueryProvider {
}
}
List yFields = new ArrayList<>();
- List yWheres = new ArrayList<>();
+ List yWheres = new ArrayList<>();
List yOrders = new ArrayList<>();
List yList = new ArrayList<>();
yList.addAll(yAxis);
@@ -555,7 +554,7 @@ public class CKQueryProvider extends QueryProvider {
// 处理纵轴字段
yFields.add(getYFields(y, originField, fieldAlias));
// 处理纵轴过滤
- yWheres.addAll(getYWheres(y, originField, fieldAlias));
+ yWheres.add(getYWheres(y, originField, fieldAlias));
// 处理纵轴排序
if (StringUtils.isNotEmpty(y.getSort()) && !StringUtils.equalsIgnoreCase(y.getSort(), "none")) {
yOrders.add(SQLObj.builder()
@@ -567,25 +566,24 @@ public class CKQueryProvider extends QueryProvider {
}
}
// 处理视图中字段过滤
- List customWheres = transCustomFilterList(tableObj, customFilter);
+ String customWheres = transCustomFilterList(tableObj, fieldCustomFilter);
// 处理仪表板字段过滤
- List extWheres = transExtFilterList(tableObj, extFilterRequestList);
+ String extWheres = transExtFilterList(tableObj, extFilterRequestList);
// 构建sql所有参数
List fields = new ArrayList<>();
fields.addAll(xFields);
fields.addAll(yFields);
- List wheres = new ArrayList<>();
- wheres.addAll(xWheres);
- if (customWheres != null) wheres.addAll(customWheres);
- if (extWheres != null) wheres.addAll(extWheres);
+ List wheres = new ArrayList<>();
+ if (customWheres != null) wheres.add(customWheres);
+ if (extWheres != null) wheres.add(extWheres);
List groups = new ArrayList<>();
groups.addAll(xFields);
// 外层再次套sql
List orders = new ArrayList<>();
orders.addAll(xOrders);
orders.addAll(yOrders);
- List aggWheres = new ArrayList<>();
- aggWheres.addAll(yWheres);
+ List aggWheres = new ArrayList<>();
+ aggWheres.addAll(yWheres.stream().filter(ObjectUtils::isNotEmpty).collect(Collectors.toList()));
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("querySql");
@@ -607,8 +605,8 @@ public class CKQueryProvider extends QueryProvider {
}
@Override
- public String getSQLAsTmpScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, ChartViewWithBLOBs view) {
- return getSQLScatter("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble, null, view);
+ public String getSQLAsTmpScatter(String table, List xAxis, List yAxis, List fieldCustomFilter, List extFilterRequestList, List