Merge pull request #5283 from dataease/pr@dev@refactor_ds_save

refactor: 优化关联数据集保存速度
This commit is contained in:
Junjun 2023-05-23 14:59:09 +08:00 committed by GitHub
commit e4e99b9516
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -34,7 +34,6 @@ import io.dataease.plugins.common.base.mapper.*;
import io.dataease.plugins.common.constants.DatasetType;
import io.dataease.plugins.common.constants.DatasourceTypes;
import io.dataease.plugins.common.constants.DeTypeConstants;
import io.dataease.plugins.common.dto.chart.ChartViewFieldDTO;
import io.dataease.plugins.common.dto.dataset.SqlVariableDetails;
import io.dataease.plugins.common.dto.datasource.DataSourceType;
import io.dataease.plugins.common.dto.datasource.TableField;
@ -1071,7 +1070,7 @@ public class DataSetTableService {
defaultsSqlVariableDetail.getDefaultValueScope().equals(SqlVariableDetails.DefaultValueScope.ALLSCOPE) && StringUtils.isNotEmpty(defaultsSqlVariableDetail.getDefaultValue())) {
sql = sql.replace(matcher.group(), defaultsSqlVariableDetail.getDefaultValue());
}
if (isEdit && defaultsSqlVariableDetail != null && StringUtils.isNotEmpty(defaultsSqlVariableDetail.getDefaultValue())){
if (isEdit && defaultsSqlVariableDetail != null && StringUtils.isNotEmpty(defaultsSqlVariableDetail.getDefaultValue())) {
sql = sql.replace(matcher.group(), defaultsSqlVariableDetail.getDefaultValue());
}
}
@ -1171,7 +1170,7 @@ public class DataSetTableService {
if (binaryExpression != null) {
if (!(binaryExpression.getLeftExpression() instanceof BinaryExpression) && !(binaryExpression.getLeftExpression() instanceof InExpression) && hasVariable(binaryExpression.getRightExpression().toString())) {
stringBuilder.append(SubstitutedSql);
}else {
} else {
expr.accept(getExpressionDeParser(stringBuilder));
}
} else {
@ -1258,7 +1257,7 @@ public class DataSetTableService {
throw new Exception(Translator.get("i18n_invalid_ds"));
}
String tmpSql = removeVariables(sql, ds.getType());
if(!realData){
if (!realData) {
tmpSql.replaceAll(SubstitutedSql, SubstitutedSqlVirtualData);
}
if (dataSetTableRequest.getMode() == 1 && (tmpSql.contains(SubstitutedParams) || tmpSql.contains(SubstitutedSql.trim()))) {
@ -2022,7 +2021,9 @@ public class DataSetTableService {
// custom 创建doris视图
createDorisView(TableUtils.tableName(datasetTable.getId()), sql);
datasourceRequest.setQuery(sql);
// getQuerySql to get field
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
datasourceRequest.setQuery(qp.createSQLPreview(sql, null));
fields = datasourceProvider.fetchResultField(datasourceRequest);
for (DatasetTableField field : fieldList) {
for (TableField tableField : fields) {
@ -2045,8 +2046,9 @@ public class DataSetTableService {
String sql = (String) sqlMap.get("sql");
List<DatasetTableField> fieldList = (List<DatasetTableField>) sqlMap.get("field");
datasourceRequest.setQuery(sql);
// getQuerySql to get field
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
datasourceRequest.setQuery(qp.createSQLPreview(sql, null));
fields = datasourceProvider.fetchResultField(datasourceRequest);
for (DatasetTableField field : fieldList) {