From 14ea9837b60cf02aa9e1a8be2ace095f5cb9b046 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 1 Nov 2021 18:51:59 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E8=A7=84=E8=8C=83=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/datasource/MysqlConfigration.java | 19 --- .../provider/query/es/EsQueryProvider.java | 110 ++++-------------- 2 files changed, 22 insertions(+), 107 deletions(-) delete mode 100644 backend/src/main/java/io/dataease/dto/datasource/MysqlConfigration.java diff --git a/backend/src/main/java/io/dataease/dto/datasource/MysqlConfigration.java b/backend/src/main/java/io/dataease/dto/datasource/MysqlConfigration.java deleted file mode 100644 index 4c4da879ee..0000000000 --- a/backend/src/main/java/io/dataease/dto/datasource/MysqlConfigration.java +++ /dev/null @@ -1,19 +0,0 @@ -package io.dataease.dto.datasource; - -import lombok.Getter; -import lombok.Setter; - -@Getter -@Setter -public class MysqlConfigration extends JdbcConfiguration { - - private String driver = "com.mysql.cj.jdbc.Driver"; - - public String getJdbc() { - // 连接参数先写死,后边要把编码、时区等参数放到数据源的设置中 - return "jdbc:mysql://HOSTNAME:PORT/DATABASE?characterEncoding=UTF-8&connectTimeout=5000&useSSL=false" - .replace("HOSTNAME", getHost().trim()) - .replace("PORT", getPort().toString().trim()) - .replace("DATABASE", getDataBase().trim()); - } -} \ No newline at end of file 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 e9bcdf6d43..fa3babd645 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 @@ -1,5 +1,6 @@ package io.dataease.provider.query.es; +import io.dataease.base.domain.ChartViewWithBLOBs; import io.dataease.base.domain.DatasetTableField; import io.dataease.base.domain.DatasetTableFieldExample; import io.dataease.base.domain.Datasource; @@ -197,7 +198,7 @@ public class EsQueryProvider extends QueryProvider { } @Override - public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, Datasource ds) { + public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(EsSqlLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) @@ -299,94 +300,27 @@ public class EsQueryProvider extends QueryProvider { if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres); if (CollectionUtils.isNotEmpty(orders)) st.add("orders", orders); if (ObjectUtils.isNotEmpty(tableSQL)) st.add("table", tableSQL); - return st.render(); + return sqlLimit(st.render(), view); } @Override - public String getSQLAsTmp(String sql, List xAxis, List yAxis, List customFilter, List extFilterRequestList) { - return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList, null); + 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); } @Override - public String getSQLTableInfo(String table, List xAxis, List customFilter, List extFilterRequestList, Datasource ds) { - SQLObj tableObj = SQLObj.builder() - .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(EsSqlLConstants.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++) { - ChartViewFieldDTO x = xAxis.get(i); - String originField; - if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 2) { - // 解析origin name中有关联的字段生成sql表达式 - originField = calcFieldRegex(x.getOriginName(), tableObj); - } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { - originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); - } else { - originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); - } - String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); - // 处理横轴字段 - xFields.add(getXFields(x, originField, fieldAlias)); - // 处理横轴过滤 -// xWheres.addAll(getXWheres(x, originField, fieldAlias)); - // 处理横轴排序 - if (StringUtils.isNotEmpty(x.getSort()) && !StringUtils.equalsIgnoreCase(x.getSort(), "none")) { - xOrders.add(SQLObj.builder() - .orderField(originField) - .orderAlias(fieldAlias) - .orderDirection(x.getSort()) - .build()); - } - } - } - // 处理视图中字段过滤 - List customWheres = transCustomFilterList(tableObj, customFilter); - // 处理仪表板字段过滤 - List 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 groups = new ArrayList<>(); - groups.addAll(xFields); - // 外层再次套sql - List orders = new ArrayList<>(); - orders.addAll(xOrders); - - STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE); - ST st_sql = stg.getInstanceOf("previewSql"); - st_sql.add("isGroup", false); - if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); - if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres); - if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); - String sql = st_sql.render(); - - ST st = stg.getInstanceOf("previewSql"); - st.add("isGroup", false); - SQLObj tableSQL = SQLObj.builder() - .tableName(String.format(EsSqlLConstants.BRACKETS, sql)) - .tableAlias(String.format(TABLE_ALIAS_PREFIX, 1)) - .build(); - if (CollectionUtils.isNotEmpty(orders)) st.add("orders", orders); - if (ObjectUtils.isNotEmpty(tableSQL)) st.add("table", tableSQL); - return st.render(); + public String getSQLTableInfo(String table, List xAxis, List customFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) { + return null; } @Override - public String getSQLAsTmpTableInfo(String sql, List xAxis, List customFilter, List extFilterRequestList, Datasource ds) { - return getSQLTableInfo("(" + sqlFix(sql) + ")", xAxis, customFilter, extFilterRequestList, null); + public String getSQLAsTmpTableInfo(String sql, List xAxis, List customFilter, List extFilterRequestList, Datasource ds, ChartViewWithBLOBs view) { + return null; } @Override - public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, Datasource ds) { + public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, Datasource ds, ChartViewWithBLOBs view) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(EsSqlLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) @@ -491,16 +425,16 @@ public class EsQueryProvider extends QueryProvider { if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres); if (CollectionUtils.isNotEmpty(orders)) st.add("orders", orders); if (ObjectUtils.isNotEmpty(tableSQL)) st.add("table", tableSQL); - return st.render(); + return sqlLimit(st.render(), view); } @Override - public String getSQLAsTmpStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack) { - return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack, null); + 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); } @Override - public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, Datasource ds) { + public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, Datasource ds, ChartViewWithBLOBs view) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(EsSqlLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) @@ -605,12 +539,12 @@ public class EsQueryProvider extends QueryProvider { if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres); if (CollectionUtils.isNotEmpty(orders)) st.add("orders", orders); if (ObjectUtils.isNotEmpty(tableSQL)) st.add("table", tableSQL); - return st.render(); + return sqlLimit(st.render(), view); } @Override - public String getSQLAsTmpScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble) { - return getSQLScatter("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble, null); + 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); } @Override @@ -619,7 +553,7 @@ public class EsQueryProvider extends QueryProvider { } @Override - public String getSQLSummary(String table, List yAxis, List customFilter, List extFilterRequestList) { + public String getSQLSummary(String table, List yAxis, List customFilter, List extFilterRequestList, ChartViewWithBLOBs view) { // 字段汇总 排序等 SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(EsSqlLConstants.KEYWORD_TABLE, table)) @@ -687,12 +621,12 @@ public class EsQueryProvider extends QueryProvider { if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres); if (CollectionUtils.isNotEmpty(orders)) st.add("orders", orders); if (ObjectUtils.isNotEmpty(tableSQL)) st.add("table", tableSQL); - return st.render(); + return sqlLimit(st.render(), view); } @Override - public String getSQLSummaryAsTmp(String sql, List yAxis, List customFilter, List extFilterRequestList) { - return getSQLSummary("(" + sqlFix(sql) + ")", yAxis, customFilter, extFilterRequestList); + public String getSQLSummaryAsTmp(String sql, List yAxis, List customFilter, List extFilterRequestList, ChartViewWithBLOBs view) { + return getSQLSummary("(" + sqlFix(sql) + ")", yAxis, customFilter, extFilterRequestList, view); } @Override @@ -721,7 +655,7 @@ public class EsQueryProvider extends QueryProvider { } @Override - public String convertTableToSql(String tableName, Datasource ds){ + public String convertTableToSql(String tableName, Datasource ds) { return createSQLPreview("SELECT * FROM " + String.format(EsSqlLConstants.KEYWORD_TABLE, tableName), null); }