提交 463e45b6 authored 作者: junjie's avatar junjie

fix: 自定义数据集关联问题

上级 b7cccef6
...@@ -81,7 +81,7 @@ public class DorisQueryProvider extends QueryProvider { ...@@ -81,7 +81,7 @@ public class DorisQueryProvider extends QueryProvider {
} }
@Override @Override
public String createQuerySQL(String table, List<DatasetTableField> fields) { public String createQuerySQL(String table, List<DatasetTableField> fields, boolean isGroup) {
SQLObj tableObj = SQLObj.builder() SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(DorisConstants.KEYWORD_TABLE, table)) .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(DorisConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
...@@ -130,7 +130,7 @@ public class DorisQueryProvider extends QueryProvider { ...@@ -130,7 +130,7 @@ public class DorisQueryProvider extends QueryProvider {
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE); STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("querySql"); ST st_sql = stg.getInstanceOf("querySql");
if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); if (isGroup && CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields);
if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj);
if ((fields.size() > 0)) { if ((fields.size() > 0)) {
xOrders.add(SQLObj.builder() xOrders.add(SQLObj.builder()
...@@ -144,28 +144,28 @@ public class DorisQueryProvider extends QueryProvider { ...@@ -144,28 +144,28 @@ public class DorisQueryProvider extends QueryProvider {
} }
@Override @Override
public String createQuerySQLAsTmp(String sql, List<DatasetTableField> fields) { public String createQuerySQLAsTmp(String sql, List<DatasetTableField> fields, boolean isGroup) {
return createQuerySQL("(" + sql + ")", fields); return createQuerySQL("(" + sql + ")", fields, isGroup);
} }
@Override @Override
public String createQuerySQLWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) { public String createQuerySQLWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup) {
return createQuerySQL(table, fields) + " LIMIT " + (page - 1) * pageSize + "," + realSize; return createQuerySQL(table, fields, isGroup) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
} }
@Override @Override
public String createQueryTableWithLimit(String table, List<DatasetTableField> fields, Integer limit) { public String createQueryTableWithLimit(String table, List<DatasetTableField> fields, Integer limit, boolean isGroup) {
return createQuerySQL(table, fields) + " LIMIT 0," + limit; return createQuerySQL(table, fields, isGroup) + " LIMIT 0," + limit;
} }
@Override @Override
public String createQuerySqlWithLimit(String sql, List<DatasetTableField> fields, Integer limit) { public String createQuerySqlWithLimit(String sql, List<DatasetTableField> fields, Integer limit, boolean isGroup) {
return createQuerySQLAsTmp(sql, fields) + " LIMIT 0," + limit; return createQuerySQLAsTmp(sql, fields, isGroup) + " LIMIT 0," + limit;
} }
@Override @Override
public String createQuerySQLAsTmpWithPage(String sql, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) { public String createQuerySQLAsTmpWithPage(String sql, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup) {
return createQuerySQLAsTmp(sql, fields) + " LIMIT " + (page - 1) * pageSize + "," + realSize; return createQuerySQLAsTmp(sql, fields, isGroup) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
} }
@Override @Override
......
...@@ -80,7 +80,7 @@ public class MysqlQueryProvider extends QueryProvider { ...@@ -80,7 +80,7 @@ public class MysqlQueryProvider extends QueryProvider {
} }
@Override @Override
public String createQuerySQL(String table, List<DatasetTableField> fields) { public String createQuerySQL(String table, List<DatasetTableField> fields, boolean isGroup) {
SQLObj tableObj = SQLObj.builder() SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(MySQLConstants.KEYWORD_TABLE, table)) .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(MySQLConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
...@@ -128,34 +128,34 @@ public class MysqlQueryProvider extends QueryProvider { ...@@ -128,34 +128,34 @@ public class MysqlQueryProvider extends QueryProvider {
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE); STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("querySql"); ST st_sql = stg.getInstanceOf("querySql");
if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); if (isGroup && CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields);
if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj);
return st_sql.render(); return st_sql.render();
} }
@Override @Override
public String createQuerySQLAsTmp(String sql, List<DatasetTableField> fields) { public String createQuerySQLAsTmp(String sql, List<DatasetTableField> fields, boolean isGroup) {
return createQuerySQL("(" + sqlFix(sql) + ")", fields); return createQuerySQL("(" + sqlFix(sql) + ")", fields, isGroup);
} }
@Override @Override
public String createQuerySQLWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) { public String createQuerySQLWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup) {
return createQuerySQL(table, fields) + " LIMIT " + (page - 1) * pageSize + "," + realSize; return createQuerySQL(table, fields, isGroup) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
} }
@Override @Override
public String createQueryTableWithLimit(String table, List<DatasetTableField> fields, Integer limit) { public String createQueryTableWithLimit(String table, List<DatasetTableField> fields, Integer limit, boolean isGroup) {
return createQuerySQL(table, fields) + " LIMIT 0," + limit; return createQuerySQL(table, fields, isGroup) + " LIMIT 0," + limit;
} }
@Override @Override
public String createQuerySqlWithLimit(String sql, List<DatasetTableField> fields, Integer limit) { public String createQuerySqlWithLimit(String sql, List<DatasetTableField> fields, Integer limit, boolean isGroup) {
return createQuerySQLAsTmp(sql, fields) + " LIMIT 0," + limit; return createQuerySQLAsTmp(sql, fields, isGroup) + " LIMIT 0," + limit;
} }
@Override @Override
public String createQuerySQLAsTmpWithPage(String sql, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) { public String createQuerySQLAsTmpWithPage(String sql, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup) {
return createQuerySQLAsTmp(sql, fields) + " LIMIT " + (page - 1) * pageSize + "," + realSize; return createQuerySQLAsTmp(sql, fields, isGroup) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
} }
@Override @Override
......
...@@ -92,7 +92,7 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -92,7 +92,7 @@ public class OracleQueryProvider extends QueryProvider {
} }
@Override @Override
public String createQuerySQL(String table, List<DatasetTableField> fields) { public String createQuerySQL(String table, List<DatasetTableField> fields, boolean isGroup) {
SQLObj tableObj = SQLObj.builder() SQLObj tableObj = SQLObj.builder()
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(OracleConstants.KEYWORD_TABLE, table)) .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(OracleConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(OracleConstants.ALIAS_FIX, String.format(TABLE_ALIAS_PREFIX, 0))) .tableAlias(String.format(OracleConstants.ALIAS_FIX, String.format(TABLE_ALIAS_PREFIX, 0)))
...@@ -101,7 +101,7 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -101,7 +101,7 @@ public class OracleQueryProvider extends QueryProvider {
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE); STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("querySql"); ST st_sql = stg.getInstanceOf("querySql");
if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); if (isGroup && CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields);
if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj);
return st_sql.render(); return st_sql.render();
} }
...@@ -163,33 +163,33 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -163,33 +163,33 @@ public class OracleQueryProvider extends QueryProvider {
} }
@Override @Override
public String createQuerySQLAsTmp(String sql, List<DatasetTableField> fields) { public String createQuerySQLAsTmp(String sql, List<DatasetTableField> fields, boolean isGroup) {
return createQuerySQL("(" + sqlFix(sql) + ")", fields); return createQuerySQL("(" + sqlFix(sql) + ")", fields, isGroup);
} }
@Override @Override
public String createQuerySQLWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) { public String createQuerySQLWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup) {
List<SQLObj> xFields = xFields(table, fields); List<SQLObj> xFields = xFields(table, fields);
return MessageFormat.format("SELECT {0} FROM ( SELECT DE_TMP.*, rownum r FROM ( {1} ) DE_TMP WHERE rownum <= {2} ) WHERE r > {3} ", return MessageFormat.format("SELECT {0} FROM ( SELECT DE_TMP.*, rownum r FROM ( {1} ) DE_TMP WHERE rownum <= {2} ) WHERE r > {3} ",
sqlColumn(xFields), createQuerySQL(table, fields), Integer.valueOf(page * realSize).toString(), Integer.valueOf((page - 1) * pageSize).toString()); sqlColumn(xFields), createQuerySQL(table, fields, isGroup), Integer.valueOf(page * realSize).toString(), Integer.valueOf((page - 1) * pageSize).toString());
} }
@Override @Override
public String createQueryTableWithLimit(String table, List<DatasetTableField> fields, Integer limit) { public String createQueryTableWithLimit(String table, List<DatasetTableField> fields, Integer limit, boolean isGroup) {
return String.format("SELECT %s.* from %s WHERE rownum <= %s ", table, table, limit.toString()); return String.format("SELECT %s.* from %s WHERE rownum <= %s ", table, table, limit.toString());
} }
@Override @Override
public String createQuerySqlWithLimit(String sql, List<DatasetTableField> fields, Integer limit) { public String createQuerySqlWithLimit(String sql, List<DatasetTableField> fields, Integer limit, boolean isGroup) {
return String.format("SELECT * from %s WHERE rownum <= %s ", "(" + sqlFix(sql) + ")", limit.toString()); return String.format("SELECT * from %s WHERE rownum <= %s ", "(" + sqlFix(sql) + ")", limit.toString());
} }
@Override @Override
public String createQuerySQLAsTmpWithPage(String sql, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) { public String createQuerySQLAsTmpWithPage(String sql, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup) {
List<SQLObj> xFields = xFields("(" + sqlFix(sql) + ")", fields); List<SQLObj> xFields = xFields("(" + sqlFix(sql) + ")", fields);
return MessageFormat.format("SELECT {0} FROM ( SELECT DE_TMP.*, rownum r FROM ( {1} ) DE_TMP WHERE rownum <= {2} ) WHERE r > {3} ", return MessageFormat.format("SELECT {0} FROM ( SELECT DE_TMP.*, rownum r FROM ( {1} ) DE_TMP WHERE rownum <= {2} ) WHERE r > {3} ",
sqlColumn(xFields), createQuerySQLAsTmp(sql, fields), Integer.valueOf(page * realSize).toString(), Integer.valueOf((page - 1) * pageSize).toString()); sqlColumn(xFields), createQuerySQLAsTmp(sql, fields, isGroup), Integer.valueOf(page * realSize).toString(), Integer.valueOf((page - 1) * pageSize).toString());
} }
@Override @Override
......
package io.dataease.provider.sqlserver; //package io.dataease.provider.sqlserver;
//
import io.dataease.base.domain.DatasetTableField; //import io.dataease.base.domain.DatasetTableField;
import io.dataease.controller.request.chart.ChartExtFilterRequest; //import io.dataease.controller.request.chart.ChartExtFilterRequest;
import io.dataease.dto.chart.ChartCustomFilterDTO; //import io.dataease.dto.chart.ChartCustomFilterDTO;
import io.dataease.dto.chart.ChartViewFieldDTO; //import io.dataease.dto.chart.ChartViewFieldDTO;
import io.dataease.provider.QueryProvider; //import io.dataease.provider.QueryProvider;
import org.apache.commons.collections4.CollectionUtils; //import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; //import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; //import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; //import org.springframework.stereotype.Service;
//
import java.text.MessageFormat; //import java.text.MessageFormat;
import java.text.SimpleDateFormat; //import java.text.SimpleDateFormat;
import java.util.Arrays; //import java.util.Arrays;
import java.util.Date; //import java.util.Date;
import java.util.List; //import java.util.List;
//
/** ///**
* @Author gin // * @Author gin
* @Date 2021/5/17 2:43 下午 // * @Date 2021/5/17 2:43 下午
*/ // */
@Service("sqlServerQuery") //@Service("sqlServerQuery")
public class SqlserverQueryProvider extends QueryProvider { //public class SqlserverQueryProvider extends QueryProvider {
@Override // @Override
public Integer transFieldType(String field) { // public Integer transFieldType(String field) {
switch (field) { // switch (field) {
case "CHAR": // case "CHAR":
case "VARCHAR": // case "VARCHAR":
case "TEXT": // case "TEXT":
case "TINYTEXT": // case "TINYTEXT":
case "MEDIUMTEXT": // case "MEDIUMTEXT":
case "LONGTEXT": // case "LONGTEXT":
case "ENUM": // case "ENUM":
return 0;// 文本 // return 0;// 文本
case "DATE": // case "DATE":
case "TIME": // case "TIME":
case "YEAR": // case "YEAR":
case "DATETIME": // case "DATETIME":
case "TIMESTAMP": // case "TIMESTAMP":
return 1;// 时间 // return 1;// 时间
case "INT": // case "INT":
case "SMALLINT": // case "SMALLINT":
case "MEDIUMINT": // case "MEDIUMINT":
case "INTEGER": // case "INTEGER":
case "BIGINT": // case "BIGINT":
return 2;// 整型 // return 2;// 整型
case "FLOAT": // case "FLOAT":
case "DOUBLE": // case "DOUBLE":
case "DECIMAL": // case "DECIMAL":
return 3;// 浮点 // return 3;// 浮点
case "BIT": // case "BIT":
case "TINYINT": // case "TINYINT":
return 4;// 布尔 // return 4;// 布尔
default: // default:
return 0; // return 0;
} // }
} // }
//
@Override // @Override
public String createQueryCountSQL(String table) { // public String createQueryCountSQL(String table) {
return MessageFormat.format("SELECT COUNT(*) FROM {0}", table); // return MessageFormat.format("SELECT COUNT(*) FROM {0}", table);
} // }
//
@Override // @Override
public String createQueryCountSQLAsTmp(String sql) { // public String createQueryCountSQLAsTmp(String sql) {
return createQueryCountSQL(" (" + sqlFix(sql) + ") AS tmp "); // return createQueryCountSQL(" (" + sqlFix(sql) + ") AS tmp ");
} // }
//
@Override // @Override
public String createSQLPreview(String sql, String orderBy) { // public String createSQLPreview(String sql, String orderBy) {
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp ORDER BY null " + " LIMIT 0,1000"; // return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp ORDER BY null " + " LIMIT 0,1000";
} // }
//
@Override // @Override
public String createQuerySQL(String table, List<DatasetTableField> fields) { // public String createQuerySQL(String table, List<DatasetTableField> fields) {
String[] array = fields.stream().map(f -> { // String[] array = fields.stream().map(f -> {
StringBuilder stringBuilder = new StringBuilder(); // StringBuilder stringBuilder = new StringBuilder();
// 如果原始类型为时间 // // 如果原始类型为时间
if (f.getDeExtractType() == 1) { // if (f.getDeExtractType() == 1) {
if (f.getDeType() == 2 || f.getDeType() == 3) { // if (f.getDeType() == 2 || f.getDeType() == 3) {
stringBuilder.append("UNIX_TIMESTAMP(`").append(f.getOriginName()).append("`)*1000 AS ").append(f.getDataeaseName()); // stringBuilder.append("UNIX_TIMESTAMP(`").append(f.getOriginName()).append("`)*1000 AS ").append(f.getDataeaseName());
} else { // } else {
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName()); // stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
} // }
} else if (f.getDeExtractType() == 0) { // } else if (f.getDeExtractType() == 0) {
if (f.getDeType() == 2) { // if (f.getDeType() == 2) {
stringBuilder.append("CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,0)) AS ").append(f.getDataeaseName()); // stringBuilder.append("CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,0)) AS ").append(f.getDataeaseName());
} else if (f.getDeType() == 3) { // } else if (f.getDeType() == 3) {
stringBuilder.append("CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,2)) AS ").append(f.getDataeaseName()); // stringBuilder.append("CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,2)) AS ").append(f.getDataeaseName());
} else if (f.getDeType() == 1) { // } else if (f.getDeType() == 1) {
stringBuilder.append("DATE_FORMAT(`").append(f.getOriginName()).append("`,'%Y-%m-%d %H:%i:%S') AS _").append(f.getDataeaseName()); // stringBuilder.append("DATE_FORMAT(`").append(f.getOriginName()).append("`,'%Y-%m-%d %H:%i:%S') AS _").append(f.getDataeaseName());
} else { // } else {
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName()); // stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
} // }
} else { // } else {
if (f.getDeType() == 1) { // if (f.getDeType() == 1) {
stringBuilder.append("FROM_UNIXTIME(CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') AS ").append(f.getDataeaseName()); // stringBuilder.append("FROM_UNIXTIME(CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') AS ").append(f.getDataeaseName());
} else { // } else {
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName()); // stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
} // }
} // }
return stringBuilder.toString(); // return stringBuilder.toString();
}).toArray(String[]::new); // }).toArray(String[]::new);
return MessageFormat.format("SELECT {0} FROM {1} ORDER BY null", StringUtils.join(array, ","), table); // return MessageFormat.format("SELECT {0} FROM {1} ORDER BY null", StringUtils.join(array, ","), table);
} // }
//
@Override // @Override
public String createQuerySQLAsTmp(String sql, List<DatasetTableField> fields) { // public String createQuerySQLAsTmp(String sql, List<DatasetTableField> fields) {
return createQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields); // return createQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields);
} // }
//
@Override // @Override
public String createQuerySQLWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) { // public String createQuerySQLWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) {
return createQuerySQL(table, fields) + " LIMIT " + (page - 1) * pageSize + "," + realSize; // return createQuerySQL(table, fields) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
} // }
//
@Override // @Override
public String createQueryTableWithLimit(String table, List<DatasetTableField> fields, Integer limit) { // public String createQueryTableWithLimit(String table, List<DatasetTableField> fields, Integer limit) {
return createQuerySQL(table, fields) + " LIMIT 0," + limit; // return createQuerySQL(table, fields) + " LIMIT 0," + limit;
} // }
//
@Override // @Override
public String createQuerySqlWithLimit(String sql, List<DatasetTableField> fields, Integer limit) { // public String createQuerySqlWithLimit(String sql, List<DatasetTableField> fields, Integer limit) {
return createQuerySQLAsTmp(sql, fields) + " LIMIT 0," + limit; // return createQuerySQLAsTmp(sql, fields) + " LIMIT 0," + limit;
} // }
//
@Override // @Override
public String createQuerySQLAsTmpWithPage(String sql, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) { // public String createQuerySQLAsTmpWithPage(String sql, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) {
return createQuerySQLAsTmp(sql, fields) + " LIMIT " + (page - 1) * pageSize + "," + realSize; // return createQuerySQLAsTmp(sql, fields) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
} // }
//
@Override // @Override
public String getSQL(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList) { // public String getSQL(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList) {
// 字段汇总 排序等 // // 字段汇总 排序等
String[] field = yAxis.stream().map(y -> { // String[] field = yAxis.stream().map(y -> {
StringBuilder f = new StringBuilder(); // StringBuilder f = new StringBuilder();
if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) { // if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) {
f.append(y.getSummary()).append("(").append(y.getOriginName()).append(")"); // f.append(y.getSummary()).append("(").append(y.getOriginName()).append(")");
} else { // } else {
if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) { // if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) {
f.append("CAST(") // f.append("CAST(")
.append(y.getSummary()).append("(") // .append(y.getSummary()).append("(")
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") // .append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
.append(") AS DECIMAL(20,2)").append(")"); // .append(") AS DECIMAL(20,2)").append(")");
} else { // } else {
f.append(y.getSummary()).append("(") // f.append(y.getSummary()).append("(")
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") // .append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
.append(")"); // .append(")");
} // }
} // }
f.append(" AS `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`"); // f.append(" AS `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
return f.toString(); // return f.toString();
}).toArray(String[]::new); // }).toArray(String[]::new);
String[] groupField = xAxis.stream().map(x -> { // String[] groupField = xAxis.stream().map(x -> {
StringBuilder stringBuilder = new StringBuilder(); // StringBuilder stringBuilder = new StringBuilder();
// 如果原始类型为时间 // // 如果原始类型为时间
if (x.getDeExtractType() == 1) { // if (x.getDeExtractType() == 1) {
if (x.getDeType() == 2 || x.getDeType() == 3) { // if (x.getDeType() == 2 || x.getDeType() == 3) {
stringBuilder.append("UNIX_TIMESTAMP(`").append(x.getOriginName()).append("`)*1000 AS `_").append(x.getOriginName()).append("`"); // stringBuilder.append("UNIX_TIMESTAMP(`").append(x.getOriginName()).append("`)*1000 AS `_").append(x.getOriginName()).append("`");
} else if (x.getDeType() == 1) { // } else if (x.getDeType() == 1) {
String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); // String format = transDateFormat(x.getDateStyle(), x.getDatePattern());
stringBuilder.append("DATE_FORMAT(`").append(x.getOriginName()).append("`,'").append(format).append("') AS `_").append(x.getOriginName()).append("`"); // stringBuilder.append("DATE_FORMAT(`").append(x.getOriginName()).append("`,'").append(format).append("') AS `_").append(x.getOriginName()).append("`");
} else { // } else {
stringBuilder.append("`").append(x.getOriginName()).append("` AS `_").append(x.getOriginName()).append("`"); // stringBuilder.append("`").append(x.getOriginName()).append("` AS `_").append(x.getOriginName()).append("`");
} // }
} else { // } else {
if (x.getDeType() == 1) { // if (x.getDeType() == 1) {
String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); // String format = transDateFormat(x.getDateStyle(), x.getDatePattern());
if (x.getDeExtractType() == 0) { // if (x.getDeExtractType() == 0) {
stringBuilder.append("DATE_FORMAT(`").append(x.getOriginName()).append("`,'").append(format).append("') AS `_").append(x.getOriginName()).append("`"); // stringBuilder.append("DATE_FORMAT(`").append(x.getOriginName()).append("`,'").append(format).append("') AS `_").append(x.getOriginName()).append("`");
} else { // } else {
stringBuilder.append("DATE_FORMAT(").append("FROM_UNIXTIME(CAST(`").append(x.getOriginName()).append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S')").append(",'").append(format).append("') AS `_").append(x.getOriginName()).append("`"); // stringBuilder.append("DATE_FORMAT(").append("FROM_UNIXTIME(CAST(`").append(x.getOriginName()).append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S')").append(",'").append(format).append("') AS `_").append(x.getOriginName()).append("`");
} // }
} else { // } else {
stringBuilder.append("`").append(x.getOriginName()).append("` AS `_").append(x.getOriginName()).append("`"); // stringBuilder.append("`").append(x.getOriginName()).append("` AS `_").append(x.getOriginName()).append("`");
} // }
} // }
return stringBuilder.toString(); // return stringBuilder.toString();
}).toArray(String[]::new); // }).toArray(String[]::new);
String[] group = xAxis.stream().map(x -> "`_" + x.getOriginName() + "`").toArray(String[]::new); // String[] group = xAxis.stream().map(x -> "`_" + x.getOriginName() + "`").toArray(String[]::new);
String[] xOrder = xAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none")) // String[] xOrder = xAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
.map(f -> "`_" + f.getOriginName() + "` " + f.getSort()).toArray(String[]::new); // .map(f -> "`_" + f.getOriginName() + "` " + f.getSort()).toArray(String[]::new);
String[] yOrder = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none")) // String[] yOrder = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
.map(f -> "`_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + "` " + f.getSort()).toArray(String[]::new); // .map(f -> "`_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + "` " + f.getSort()).toArray(String[]::new);
String[] order = Arrays.copyOf(xOrder, xOrder.length + yOrder.length); // String[] order = Arrays.copyOf(xOrder, xOrder.length + yOrder.length);
System.arraycopy(yOrder, 0, order, xOrder.length, yOrder.length); // System.arraycopy(yOrder, 0, order, xOrder.length, yOrder.length);
//
String[] xFilter = xAxis.stream().filter(x -> CollectionUtils.isNotEmpty(x.getFilter()) && x.getFilter().size() > 0) // String[] xFilter = xAxis.stream().filter(x -> CollectionUtils.isNotEmpty(x.getFilter()) && x.getFilter().size() > 0)
.map(x -> { // .map(x -> {
String[] s = x.getFilter().stream().map(f -> { // String[] s = x.getFilter().stream().map(f -> {
StringBuilder filter = new StringBuilder(); // StringBuilder filter = new StringBuilder();
if (x.getDeType() == 1 && x.getDeExtractType() != 1) { // if (x.getDeType() == 1 && x.getDeExtractType() != 1) {
filter.append(" AND FROM_UNIXTIME(cast(`") // filter.append(" AND FROM_UNIXTIME(cast(`")
.append(x.getOriginName()) // .append(x.getOriginName())
.append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); // .append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
} else { // } else {
filter.append(" AND `").append(x.getOriginName()).append("`"); // filter.append(" AND `").append(x.getOriginName()).append("`");
} // }
filter.append(transMysqlFilterTerm(f.getTerm())); // filter.append(transMysqlFilterTerm(f.getTerm()));
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { // if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
filter.append("(null,'')"); // filter.append("(null,'')");
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { // } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
filter.append(" AND `").append(x.getOriginName()).append("`").append(" <> ''"); // filter.append(" AND `").append(x.getOriginName()).append("`").append(" <> ''");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { // } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')"); // filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { // } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
filter.append("%").append(f.getValue()).append("%"); // filter.append("%").append(f.getValue()).append("%");
} else { // } else {
filter.append("'").append(f.getValue()).append("'"); // filter.append("'").append(f.getValue()).append("'");
} // }
return filter.toString(); // return filter.toString();
}).toArray(String[]::new); // }).toArray(String[]::new);
return StringUtils.join(s, " "); // return StringUtils.join(s, " ");
}).toArray(String[]::new); // }).toArray(String[]::new);
//
String sql = MessageFormat.format("SELECT {0},{1} FROM {2} WHERE 1=1 {3} GROUP BY {4} ORDER BY null,{5}", // String sql = MessageFormat.format("SELECT {0},{1} FROM {2} WHERE 1=1 {3} GROUP BY {4} ORDER BY null,{5}",
StringUtils.join(groupField, ","), // StringUtils.join(groupField, ","),
StringUtils.join(field, ","), // StringUtils.join(field, ","),
table, // table,
(xFilter.length > 0 ? StringUtils.join(xFilter, " ") : "") + transCustomFilter(customFilter) + transExtFilter(extFilterRequestList),// origin field filter and panel field filter // (xFilter.length > 0 ? StringUtils.join(xFilter, " ") : "") + transCustomFilter(customFilter) + transExtFilter(extFilterRequestList),// origin field filter and panel field filter
StringUtils.join(group, ","), // StringUtils.join(group, ","),
StringUtils.join(order, ",")); // StringUtils.join(order, ","));
if (sql.endsWith(",")) { // if (sql.endsWith(",")) {
sql = sql.substring(0, sql.length() - 1); // sql = sql.substring(0, sql.length() - 1);
} // }
// 如果是对结果字段过滤,则再包裹一层sql // // 如果是对结果字段过滤,则再包裹一层sql
String[] resultFilter = yAxis.stream().filter(y -> CollectionUtils.isNotEmpty(y.getFilter()) && y.getFilter().size() > 0) // String[] resultFilter = yAxis.stream().filter(y -> CollectionUtils.isNotEmpty(y.getFilter()) && y.getFilter().size() > 0)
.map(y -> { // .map(y -> {
String[] s = y.getFilter().stream().map(f -> { // String[] s = y.getFilter().stream().map(f -> {
StringBuilder filter = new StringBuilder(); // StringBuilder filter = new StringBuilder();
// 原始类型不是时间,在de中被转成时间的字段做处理 // // 原始类型不是时间,在de中被转成时间的字段做处理
if (y.getDeType() == 1 && y.getDeExtractType() != 1) { // if (y.getDeType() == 1 && y.getDeExtractType() != 1) {
filter.append(" AND FROM_UNIXTIME(CAST(`_") // filter.append(" AND FROM_UNIXTIME(CAST(`_")
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`") // .append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`")
.append(" AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); // .append(" AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
} else { // } else {
filter.append(" AND `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`"); // filter.append(" AND `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
} // }
filter.append(transMysqlFilterTerm(f.getTerm())); // filter.append(transMysqlFilterTerm(f.getTerm()));
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { // if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
filter.append("(null,'')"); // filter.append("(null,'')");
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { // } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
filter.append(" AND `_") // filter.append(" AND `_")
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()) // .append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName())
.append("`").append(" <> ''"); // .append("`").append(" <> ''");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { // } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')"); // filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { // } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
filter.append("%").append(f.getValue()).append("%"); // filter.append("%").append(f.getValue()).append("%");
} else { // } else {
filter.append("'").append(f.getValue()).append("'"); // filter.append("'").append(f.getValue()).append("'");
} // }
return filter.toString(); // return filter.toString();
}).toArray(String[]::new); // }).toArray(String[]::new);
return StringUtils.join(s, " "); // return StringUtils.join(s, " ");
}).toArray(String[]::new); // }).toArray(String[]::new);
if (resultFilter.length == 0) { // if (resultFilter.length == 0) {
return sql; // return sql;
} else { // } else {
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1} ORDER BY {2}", // String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1} ORDER BY {2}",
"(" + sql + ") AS tmp", // "(" + sql + ") AS tmp",
StringUtils.join(resultFilter, " "), // StringUtils.join(resultFilter, " "),
ObjectUtils.isNotEmpty(yOrder) ? StringUtils.join(yOrder, ",") : "null"); // ObjectUtils.isNotEmpty(yOrder) ? StringUtils.join(yOrder, ",") : "null");
return filterSql; // return filterSql;
} // }
} // }
//
@Override // @Override
public String getSQLAsTmp(String sql, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList) { // public String getSQLAsTmp(String sql, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList) {
return getSQL(" (" + sqlFix(sql) + ") AS tmp ", xAxis, yAxis, customFilter, extFilterRequestList); // return getSQL(" (" + sqlFix(sql) + ") AS tmp ", xAxis, yAxis, customFilter, extFilterRequestList);
} // }
//
@Override // @Override
public String searchTable(String table) { // public String getSQLStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack) {
return "SELECT table_name FROM information_schema.TABLES WHERE table_name ='" + table + "'"; // return null;
} // }
//
@Override // @Override
public String getSQLSummary(String table, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList) { // public String getSQLAsTmpStack(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList, List<ChartViewFieldDTO> extStack) {
// 字段汇总 排序等 // return null;
String[] field = yAxis.stream().map(y -> { // }
StringBuilder f = new StringBuilder(); //
if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) { // @Override
f.append(y.getSummary()).append("(").append(y.getOriginName()).append(")"); // public String searchTable(String table) {
} else { // return "SELECT table_name FROM information_schema.TABLES WHERE table_name ='" + table + "'";
if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) { // }
f.append("CAST(") //
.append(y.getSummary()).append("(") // @Override
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") // public String getSQLSummary(String table, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList) {
.append(") AS DECIMAL(20,2)").append(")"); // // 字段汇总 排序等
} else { // String[] field = yAxis.stream().map(y -> {
f.append(y.getSummary()).append("(") // StringBuilder f = new StringBuilder();
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") // if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) {
.append(")"); // f.append(y.getSummary()).append("(").append(y.getOriginName()).append(")");
} // } else {
} // if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) {
f.append(" AS `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`"); // f.append("CAST(")
return f.toString(); // .append(y.getSummary()).append("(")
}).toArray(String[]::new); // .append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
// .append(") AS DECIMAL(20,2)").append(")");
String[] order = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none")) // } else {
.map(f -> "`_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + "` " + f.getSort()).toArray(String[]::new); // f.append(y.getSummary()).append("(")
// .append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
String sql = MessageFormat.format("SELECT {0} FROM {1} WHERE 1=1 {2} ORDER BY null,{3}", // .append(")");
StringUtils.join(field, ","), // }
table, // }
transCustomFilter(customFilter) + transExtFilter(extFilterRequestList),// origin field filter and panel field filter // f.append(" AS `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
StringUtils.join(order, ",")); // return f.toString();
if (sql.endsWith(",")) { // }).toArray(String[]::new);
sql = sql.substring(0, sql.length() - 1); //
} // String[] order = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
// 如果是对结果字段过滤,则再包裹一层sql // .map(f -> "`_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + "` " + f.getSort()).toArray(String[]::new);
String[] resultFilter = yAxis.stream().filter(y -> CollectionUtils.isNotEmpty(y.getFilter()) && y.getFilter().size() > 0) //
.map(y -> { // String sql = MessageFormat.format("SELECT {0} FROM {1} WHERE 1=1 {2} ORDER BY null,{3}",
String[] s = y.getFilter().stream().map(f -> { // StringUtils.join(field, ","),
StringBuilder filter = new StringBuilder(); // table,
// 原始类型不是时间,在de中被转成时间的字段做处理 // transCustomFilter(customFilter) + transExtFilter(extFilterRequestList),// origin field filter and panel field filter
if (y.getDeType() == 1 && y.getDeExtractType() != 1) { // StringUtils.join(order, ","));
filter.append(" AND FROM_UNIXTIME(CAST(`_") // if (sql.endsWith(",")) {
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`") // sql = sql.substring(0, sql.length() - 1);
.append(" AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); // }
} else { // // 如果是对结果字段过滤,则再包裹一层sql
filter.append(" AND `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`"); // String[] resultFilter = yAxis.stream().filter(y -> CollectionUtils.isNotEmpty(y.getFilter()) && y.getFilter().size() > 0)
} // .map(y -> {
filter.append(transMysqlFilterTerm(f.getTerm())); // String[] s = y.getFilter().stream().map(f -> {
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { // StringBuilder filter = new StringBuilder();
filter.append("(null,'')"); // // 原始类型不是时间,在de中被转成时间的字段做处理
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { // if (y.getDeType() == 1 && y.getDeExtractType() != 1) {
filter.append(" AND `_") // filter.append(" AND FROM_UNIXTIME(CAST(`_")
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()) // .append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`")
.append("`").append(" <> ''"); // .append(" AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { // } else {
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')"); // filter.append(" AND `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { // }
filter.append("%").append(f.getValue()).append("%"); // filter.append(transMysqlFilterTerm(f.getTerm()));
} else { // if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
filter.append("'").append(f.getValue()).append("'"); // filter.append("(null,'')");
} // } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
return filter.toString(); // filter.append(" AND `_")
}).toArray(String[]::new); // .append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName())
return StringUtils.join(s, " "); // .append("`").append(" <> ''");
}).toArray(String[]::new); // } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
if (resultFilter.length == 0) { // filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
return sql; // } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
} else { // filter.append("%").append(f.getValue()).append("%");
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1} ORDER BY {2}", // } else {
"(" + sql + ") AS tmp", // filter.append("'").append(f.getValue()).append("'");
StringUtils.join(resultFilter, " "), // }
ObjectUtils.isNotEmpty(order) ? StringUtils.join(order, ",") : "null"); // return filter.toString();
return filterSql; // }).toArray(String[]::new);
} // return StringUtils.join(s, " ");
} // }).toArray(String[]::new);
// if (resultFilter.length == 0) {
@Override // return sql;
public String getSQLSummaryAsTmp(String sql, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList) { // } else {
return getSQLSummary(" (" + sqlFix(sql) + ") AS tmp ", yAxis, customFilter, extFilterRequestList); // String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1} ORDER BY {2}",
} // "(" + sql + ") AS tmp",
// StringUtils.join(resultFilter, " "),
@Override // ObjectUtils.isNotEmpty(order) ? StringUtils.join(order, ",") : "null");
public String wrapSql(String sql) { // return filterSql;
sql = sql.trim(); // }
if (sql.lastIndexOf(";") == (sql.length() - 1)) { // }
sql = sql.substring(0, sql.length() - 1); //
} // @Override
String tmpSql = "SELECT * FROM (" + sql + ") AS tmp " + " LIMIT 0"; // public String getSQLSummaryAsTmp(String sql, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList) {
return tmpSql; // return getSQLSummary(" (" + sqlFix(sql) + ") AS tmp ", yAxis, customFilter, extFilterRequestList);
} // }
//
@Override // @Override
public String createRawQuerySQL(String table, List<DatasetTableField> fields) { // public String wrapSql(String sql) {
String[] array = fields.stream().map(f -> { // sql = sql.trim();
StringBuilder stringBuilder = new StringBuilder(); // if (sql.lastIndexOf(";") == (sql.length() - 1)) {
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName()); // sql = sql.substring(0, sql.length() - 1);
return stringBuilder.toString(); // }
}).toArray(String[]::new); // String tmpSql = "SELECT * FROM (" + sql + ") AS tmp " + " LIMIT 0";
return MessageFormat.format("SELECT {0} FROM {1} ORDER BY null", StringUtils.join(array, ","), table); // return tmpSql;
} // }
//
@Override // @Override
public String createRawQuerySQLAsTmp(String sql, List<DatasetTableField> fields) { // public String createRawQuerySQL(String table, List<DatasetTableField> fields) {
return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields); // String[] array = fields.stream().map(f -> {
} // StringBuilder stringBuilder = new StringBuilder();
// stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
public String transMysqlFilterTerm(String term) { // return stringBuilder.toString();
switch (term) { // }).toArray(String[]::new);
case "eq": // return MessageFormat.format("SELECT {0} FROM {1} ORDER BY null", StringUtils.join(array, ","), table);
return " = "; // }
case "not_eq": //
return " <> "; // @Override
case "lt": // public String createRawQuerySQLAsTmp(String sql, List<DatasetTableField> fields) {
return " < "; // return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields);
case "le": // }
return " <= "; //
case "gt": // public String transMysqlFilterTerm(String term) {
return " > "; // switch (term) {
case "ge": // case "eq":
return " >= "; // return " = ";
case "in": // case "not_eq":
return " IN "; // return " <> ";
case "not in": // case "lt":
return " NOT IN "; // return " < ";
case "like": // case "le":
return " LIKE "; // return " <= ";
case "not like": // case "gt":
return " NOT LIKE "; // return " > ";
case "null": // case "ge":
return " IN "; // return " >= ";
case "not_null": // case "in":
return " IS NOT NULL "; // return " IN ";
case "between": // case "not in":
return " BETWEEN "; // return " NOT IN ";
default: // case "like":
return ""; // return " LIKE ";
} // case "not like":
} // return " NOT LIKE ";
// case "null":
public String transCustomFilter(List<ChartCustomFilterDTO> requestList) { // return " IN ";
if (CollectionUtils.isEmpty(requestList)) { // case "not_null":
return ""; // return " IS NOT NULL ";
} // case "between":
StringBuilder filter = new StringBuilder(); // return " BETWEEN ";
for (ChartCustomFilterDTO request : requestList) { // default:
String value = request.getValue(); // return "";
DatasetTableField field = request.getField(); // }
if (ObjectUtils.isEmpty(field)) { // }
continue; //
} // public String transCustomFilter(List<ChartCustomFilterDTO> requestList) {
if (field.getDeType() == 1 && field.getDeExtractType() != 1) { // if (CollectionUtils.isEmpty(requestList)) {
filter.append(" AND FROM_UNIXTIME(CAST(`") // return "";
.append(field.getOriginName()) // }
.append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); // StringBuilder filter = new StringBuilder();
} else { // for (ChartCustomFilterDTO request : requestList) {
filter.append(" AND `").append(field.getOriginName()).append("`"); // String value = request.getValue();
} // DatasetTableField field = request.getField();
filter.append(" ") // if (ObjectUtils.isEmpty(field)) {
.append(transMysqlFilterTerm(request.getTerm())) // continue;
.append(" "); // }
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) { // if (field.getDeType() == 1 && field.getDeExtractType() != 1) {
filter.append("(null,'')"); // filter.append(" AND FROM_UNIXTIME(CAST(`")
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) { // .append(field.getOriginName())
filter.append(" AND `").append(field.getOriginName()).append("`").append(" <> ''"); // .append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) { // } else {
filter.append("('").append(StringUtils.join(value, "','")).append("')"); // filter.append(" AND `").append(field.getOriginName()).append("`");
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) { // }
filter.append("'%").append(value).append("%'"); // filter.append(" ")
} else { // .append(transMysqlFilterTerm(request.getTerm()))
filter.append("'").append(value).append("'"); // .append(" ");
} // if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
} // filter.append("(null,'')");
return filter.toString(); // } else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
} // filter.append(" AND `").append(field.getOriginName()).append("`").append(" <> ''");
// } else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
public String transExtFilter(List<ChartExtFilterRequest> requestList) { // filter.append("('").append(StringUtils.join(value, "','")).append("')");
if (CollectionUtils.isEmpty(requestList)) { // } else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
return ""; // filter.append("'%").append(value).append("%'");
} // } else {
StringBuilder filter = new StringBuilder(); // filter.append("'").append(value).append("'");
for (ChartExtFilterRequest request : requestList) { // }
List<String> value = request.getValue(); // }
if (CollectionUtils.isEmpty(value)) { // return filter.toString();
continue; // }
} //
DatasetTableField field = request.getDatasetTableField(); // public String transExtFilter(List<ChartExtFilterRequest> requestList) {
if (field.getDeType() == 1 && field.getDeExtractType() != 1) { // if (CollectionUtils.isEmpty(requestList)) {
filter.append(" AND FROM_UNIXTIME(CAST(`") // return "";
.append(field.getOriginName()) // }
.append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); // StringBuilder filter = new StringBuilder();
} else { // for (ChartExtFilterRequest request : requestList) {
filter.append(" AND `").append(field.getOriginName()).append("`"); // List<String> value = request.getValue();
} // if (CollectionUtils.isEmpty(value)) {
filter.append(" ") // continue;
.append(transMysqlFilterTerm(request.getOperator())) // }
.append(" "); // DatasetTableField field = request.getDatasetTableField();
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { // if (field.getDeType() == 1 && field.getDeExtractType() != 1) {
filter.append("('").append(StringUtils.join(value, "','")).append("')"); // filter.append(" AND FROM_UNIXTIME(CAST(`")
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { // .append(field.getOriginName())
filter.append("'%").append(value.get(0)).append("%'"); // .append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { // } else {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // filter.append(" AND `").append(field.getOriginName()).append("`");
String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0)))); // }
String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1)))); // filter.append(" ")
filter.append("'").append(startTime).append("' AND '").append(endTime).append("'"); // .append(transMysqlFilterTerm(request.getOperator()))
} else { // .append(" ");
filter.append("'").append(value.get(0)).append("'"); // if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
} // filter.append("('").append(StringUtils.join(value, "','")).append("')");
} // } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
return filter.toString(); // filter.append("'%").append(value.get(0)).append("%'");
} // } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) {
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private String sqlFix(String sql) { // String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0))));
if (sql.lastIndexOf(";") == (sql.length() - 1)) { // String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1))));
sql = sql.substring(0, sql.length() - 1); // filter.append("'").append(startTime).append("' AND '").append(endTime).append("'");
} // } else {
return sql; // filter.append("'").append(value.get(0)).append("'");
} // }
// }
private String transDateFormat(String dateStyle, String datePattern) { // return filter.toString();
String split = "-"; // }
if (StringUtils.equalsIgnoreCase(datePattern, "date_sub")) { //
split = "-"; // private String sqlFix(String sql) {
} else if (StringUtils.equalsIgnoreCase(datePattern, "date_split")) { // if (sql.lastIndexOf(";") == (sql.length() - 1)) {
split = "/"; // sql = sql.substring(0, sql.length() - 1);
} // }
// return sql;
switch (dateStyle) { // }
case "y": //
return "%Y"; // private String transDateFormat(String dateStyle, String datePattern) {
case "y_M": // String split = "-";
return "%Y" + split + "%m"; // if (StringUtils.equalsIgnoreCase(datePattern, "date_sub")) {
case "y_M_d": // split = "-";
return "%Y" + split + "%m" + split + "%d"; // } else if (StringUtils.equalsIgnoreCase(datePattern, "date_split")) {
case "H_m_s": // split = "/";
return "%H:%i:%S"; // }
case "y_M_d_H_m": //
return "%Y" + split + "%m" + split + "%d" + " %H:%i"; // switch (dateStyle) {
case "y_M_d_H_m_s": // case "y":
return "%Y" + split + "%m" + split + "%d" + " %H:%i:%S"; // return "%Y";
default: // case "y_M":
return "%Y-%m-%d %H:%i:%S"; // return "%Y" + split + "%m";
} // case "y_M_d":
} // return "%Y" + split + "%m" + split + "%d";
} // case "H_m_s":
// return "%H:%i:%S";
// case "y_M_d_H_m":
// return "%Y" + split + "%m" + split + "%d" + " %H:%i";
// case "y_M_d_H_m_s":
// return "%Y" + split + "%m" + split + "%d" + " %H:%i:%S";
// default:
// return "%Y-%m-%d %H:%i:%S";
// }
// }
//}
...@@ -329,14 +329,15 @@ public class DataSetTableService { ...@@ -329,14 +329,15 @@ public class DataSetTableService {
datasourceRequest.setDatasource(ds); datasourceRequest.setDatasource(ds);
String table = dataTableInfoDTO.getTable(); String table = dataTableInfoDTO.getTable();
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize)); datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize, false));
map.put("sql", datasourceRequest.getQuery());
try { try {
data.addAll(datasourceProvider.getData(datasourceRequest)); data.addAll(datasourceProvider.getData(datasourceRequest));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
try { try {
datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()))); datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()), false));
dataSetPreviewPage.setTotal(datasourceProvider.getData(datasourceRequest).size()); dataSetPreviewPage.setTotal(datasourceProvider.getData(datasourceRequest).size());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -352,14 +353,15 @@ public class DataSetTableService { ...@@ -352,14 +353,15 @@ public class DataSetTableService {
datasourceRequest.setDatasource(ds); datasourceRequest.setDatasource(ds);
String table = DorisTableUtils.dorisName(dataSetTableRequest.getId()); String table = DorisTableUtils.dorisName(dataSetTableRequest.getId());
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize)); datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize, false));
map.put("sql", datasourceRequest.getQuery());
try { try {
data.addAll(jdbcProvider.getData(datasourceRequest)); data.addAll(jdbcProvider.getData(datasourceRequest));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
try { try {
datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()))); datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()), false));
dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size()); dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -378,14 +380,15 @@ public class DataSetTableService { ...@@ -378,14 +380,15 @@ public class DataSetTableService {
String sql = dataTableInfoDTO.getSql(); String sql = dataTableInfoDTO.getSql();
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
datasourceRequest.setQuery(qp.createQuerySQLAsTmpWithPage(sql, fields, page, pageSize, realSize)); datasourceRequest.setQuery(qp.createQuerySQLAsTmpWithPage(sql, fields, page, pageSize, realSize, false));
map.put("sql", datasourceRequest.getQuery());
try { try {
data.addAll(datasourceProvider.getData(datasourceRequest)); data.addAll(datasourceProvider.getData(datasourceRequest));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
try { try {
datasourceRequest.setQuery(qp.createQuerySqlWithLimit(sql, fields, Integer.valueOf(dataSetTableRequest.getRow()))); datasourceRequest.setQuery(qp.createQuerySqlWithLimit(sql, fields, Integer.valueOf(dataSetTableRequest.getRow()), false));
dataSetPreviewPage.setTotal(datasourceProvider.getData(datasourceRequest).size()); dataSetPreviewPage.setTotal(datasourceProvider.getData(datasourceRequest).size());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -401,14 +404,15 @@ public class DataSetTableService { ...@@ -401,14 +404,15 @@ public class DataSetTableService {
datasourceRequest.setDatasource(ds); datasourceRequest.setDatasource(ds);
String table = DorisTableUtils.dorisName(dataSetTableRequest.getId()); String table = DorisTableUtils.dorisName(dataSetTableRequest.getId());
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize)); datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize, false));
map.put("sql", datasourceRequest.getQuery());
try { try {
data.addAll(jdbcProvider.getData(datasourceRequest)); data.addAll(jdbcProvider.getData(datasourceRequest));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
try { try {
datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()))); datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()), false));
dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size()); dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -425,14 +429,15 @@ public class DataSetTableService { ...@@ -425,14 +429,15 @@ public class DataSetTableService {
datasourceRequest.setDatasource(ds); datasourceRequest.setDatasource(ds);
String table = DorisTableUtils.dorisName(dataSetTableRequest.getId()); String table = DorisTableUtils.dorisName(dataSetTableRequest.getId());
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize)); datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize, false));
map.put("sql", datasourceRequest.getQuery());
try { try {
data.addAll(jdbcProvider.getData(datasourceRequest)); data.addAll(jdbcProvider.getData(datasourceRequest));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
try { try {
datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()))); datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()), false));
dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size()); dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -452,14 +457,15 @@ public class DataSetTableService { ...@@ -452,14 +457,15 @@ public class DataSetTableService {
String sql = getCustomSQLDatasource(dt, list, ds); String sql = getCustomSQLDatasource(dt, list, ds);
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
datasourceRequest.setQuery(qp.createQuerySQLAsTmpWithPage(sql, fields, page, pageSize, realSize)); datasourceRequest.setQuery(qp.createQuerySQLAsTmpWithPage(sql, fields, page, pageSize, realSize, false));
map.put("sql", datasourceRequest.getQuery());
try { try {
data.addAll(datasourceProvider.getData(datasourceRequest)); data.addAll(datasourceProvider.getData(datasourceRequest));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
try { try {
datasourceRequest.setQuery(qp.createQuerySqlWithLimit(sql, fields, Integer.valueOf(dataSetTableRequest.getRow()))); datasourceRequest.setQuery(qp.createQuerySqlWithLimit(sql, fields, Integer.valueOf(dataSetTableRequest.getRow()), false));
dataSetPreviewPage.setTotal(datasourceProvider.getData(datasourceRequest).size()); dataSetPreviewPage.setTotal(datasourceProvider.getData(datasourceRequest).size());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -471,7 +477,8 @@ public class DataSetTableService { ...@@ -471,7 +477,8 @@ public class DataSetTableService {
datasourceRequest.setDatasource(ds); datasourceRequest.setDatasource(ds);
String table = DorisTableUtils.dorisName(dataSetTableRequest.getId()); String table = DorisTableUtils.dorisName(dataSetTableRequest.getId());
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize)); datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize, false));
map.put("sql", datasourceRequest.getQuery());
try { try {
data.addAll(jdbcProvider.getData(datasourceRequest)); data.addAll(jdbcProvider.getData(datasourceRequest));
} catch (Exception e) { } catch (Exception e) {
...@@ -479,7 +486,7 @@ public class DataSetTableService { ...@@ -479,7 +486,7 @@ public class DataSetTableService {
} }
try { try {
datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()))); datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()), false));
dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size()); dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论