Merge pull request #8917 from dataease/pr@dev@revert_error_push

Revert "fix(过滤组件): 文本下拉框排序后部分选项缺失 close#8714"
This commit is contained in:
fit2cloud-chenyw 2024-04-03 13:25:26 +08:00 committed by GitHub
commit 76903a2328
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 11 additions and 88 deletions

View File

@ -40,7 +40,6 @@ import javax.annotation.Resource;
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@ -109,14 +108,13 @@ public class DorisQueryProvider extends QueryProvider {
.build();
List<SQLObj> xFields = new ArrayList<>();
List<String> fieldList = fields.stream().map(DatasetTableField::getId).collect(Collectors.toList());
AtomicInteger sortIndex = new AtomicInteger(-1);
if (CollectionUtils.isNotEmpty(sortFields)) {
sortFields.forEach(item -> {
sortIndex.set(fieldList.indexOf(item.getId()));
if (sortIndex.get() == -1) {
int indexOf = fieldList.indexOf(item.getId());
if (indexOf == -1) {
fields.add(item);
} else {
fields.set(sortIndex.get(), item);
fields.set(indexOf, item);
}
});
}
@ -220,19 +218,6 @@ public class DorisQueryProvider extends QueryProvider {
if (CollectionUtils.isNotEmpty(xOrders)) {
st.add("orders", xOrders);
}
if (CollectionUtils.isNotEmpty(xFields)) {
List<SQLObj> finallyFields = new ArrayList<>();
for (int i = 0; i < xFields.size(); i++) {
if (CollectionUtils.isNotEmpty(xOrders) && sortIndex.get() == -1 && i == xFields.size() - 1) {
continue;
}
SQLObj f = xFields.get(i);
String prefix = finallyFields.isEmpty() ? " DISTINCT " : "";
f.setFieldName(prefix + String.format(MySQLConstants.KEYWORD_FIX, tableSQL.getTableAlias(), f.getFieldAlias()));
finallyFields.add(f);
}
st.add("groups", finallyFields);
}
if (ObjectUtils.isNotEmpty(limit)) {
return st.render() + " LIMIT 0," + limit;
}

View File

@ -163,6 +163,7 @@ public class Db2QueryProvider extends QueryProvider {
.build());
}
}
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("previewSql");
st_sql.add("isGroup", isGroup);
@ -192,17 +193,6 @@ public class Db2QueryProvider extends QueryProvider {
}
if (ObjectUtils.isNotEmpty(xOrders)) {
st_sql.add("orders", xOrders);
if (needDistinct(sortFields, limit)) {
st_sql.remove("groups");
xOrders.forEach(f -> {
if (xFields.stream().noneMatch(x -> x.getFieldName().equals(f.getOrderField()))) {
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, xFields.size());
SQLObj tField = SQLObj.builder().fieldName(f.getOrderField()).fieldAlias(fieldAlias).build();
xFields.add(tField);
}
});
st_sql.add("groups", xFields);
}
}
if (ObjectUtils.isNotEmpty(limit)) {
ChartViewWithBLOBs view = new ChartViewWithBLOBs();

View File

@ -39,7 +39,6 @@ import javax.annotation.Resource;
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@ -169,14 +168,13 @@ public class MysqlQueryProvider extends QueryProvider {
.build();
List<SQLObj> xFields = new ArrayList<>();
List<String> fieldList = fields.stream().map(DatasetTableField::getId).collect(Collectors.toList());
AtomicInteger sortIndex = new AtomicInteger(-1);
if (CollectionUtils.isNotEmpty(sortFields)) {
sortFields.forEach(item -> {
sortIndex.set(fieldList.indexOf(item.getId()));
if (sortIndex.get() == -1) {
int indexOf = fieldList.indexOf(item.getId());
if (indexOf == -1) {
fields.add(item);
} else {
fields.set(sortIndex.get(), item);
fields.set(indexOf, item);
}
});
}
@ -275,19 +273,6 @@ public class MysqlQueryProvider extends QueryProvider {
if (CollectionUtils.isNotEmpty(xOrders)) {
st.add("orders", xOrders);
}
if (CollectionUtils.isNotEmpty(xFields)) {
List<SQLObj> finallyFields = new ArrayList<>();
for (int i = 0; i < xFields.size(); i++) {
if (CollectionUtils.isNotEmpty(xOrders) && sortIndex.get() == -1 && i == xFields.size() - 1) {
continue;
}
SQLObj f = xFields.get(i);
String prefix = finallyFields.isEmpty() ? " DISTINCT " : "";
f.setFieldName(prefix + String.format(MySQLConstants.KEYWORD_FIX, tableSQL.getTableAlias(), f.getFieldAlias()));
finallyFields.add(f);
}
st.add("groups", finallyFields);
}
if (ObjectUtils.isNotEmpty(limit)) {
ChartViewWithBLOBs view = new ChartViewWithBLOBs();
view.setResultMode("custom");

View File

@ -121,6 +121,8 @@ public class OracleQueryProvider extends QueryProvider {
setSchema(tableObj, ds);
List<SQLObj> xFields = xFields(table, fields);
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("previewSql");
st_sql.add("isGroup", isGroup);
@ -149,17 +151,6 @@ public class OracleQueryProvider extends QueryProvider {
}
if (ObjectUtils.isNotEmpty(xOrders)) {
st_sql.add("orders", xOrders);
if (needDistinct(sortFields, limit)) {
st_sql.remove("groups");
xOrders.forEach(f -> {
if (xFields.stream().noneMatch(x -> x.getFieldName().equals(f.getOrderField()))) {
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, xFields.size());
SQLObj tField = SQLObj.builder().fieldName(f.getOrderField()).fieldAlias(fieldAlias).build();
xFields.add(tField);
}
});
st_sql.add("groups", xFields);
}
}
if (ObjectUtils.isNotEmpty(limit)) {
ChartViewWithBLOBs view = new ChartViewWithBLOBs();

View File

@ -170,10 +170,10 @@ public class PgQueryProvider extends QueryProvider {
.fieldOriginName(originField)
.fieldName(fieldName)
.fieldAlias(fieldAlias)
.build());
}
}
STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE);
ST st_sql = stg.getInstanceOf("previewSql");
st_sql.add("isGroup", isGroup);
@ -207,17 +207,6 @@ public class PgQueryProvider extends QueryProvider {
}
if (ObjectUtils.isNotEmpty(xOrders)) {
st_sql.add("orders", xOrders);
if (needDistinct(sortFields, limit)) {
st_sql.remove("groups");
xOrders.forEach(f -> {
if (xFields.stream().noneMatch(x -> x.getFieldName().equals(f.getOrderField()))) {
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, xFields.size());
SQLObj tField = SQLObj.builder().fieldName(f.getOrderField()).fieldAlias(fieldAlias).build();
xFields.add(tField);
}
});
st_sql.add("groups", xFields);
}
}
if (ObjectUtils.isNotEmpty(limit)) {
if (ObjectUtils.isNotEmpty(limit)) {

View File

@ -250,20 +250,7 @@ public class SqlserverQueryProvider extends QueryProvider {
}
}
if (ObjectUtils.isNotEmpty(limit)) {
String topKeyWord = " top ";
if (needDistinct(sortFields, limit)) {
topKeyWord = " distinct top ";
st_sql.remove("groups");
xOrders.forEach(f -> {
if (xFields.stream().noneMatch(x -> x.getFieldName().equals(f.getOrderField()))) {
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, xFields.size());
SQLObj tField = SQLObj.builder().fieldName(f.getOrderField()).fieldAlias(fieldAlias).build();
xFields.add(tField);
}
});
st_sql.add("groups", xFields);
}
SQLObj limitFiled = SQLObj.builder().limitFiled(topKeyWord + limit + " ").build();
SQLObj limitFiled = SQLObj.builder().limitFiled(" top " + limit + " ").build();
st_sql.add("limitFiled", limitFiled);
}

View File

@ -263,8 +263,4 @@ public abstract class QueryProvider {
}
return "'%" + value + "%'";
}
public boolean needDistinct(List<DeSortField> sortFields, Long limit) {
return CollectionUtils.isNotEmpty(sortFields) && ObjectUtils.isNotEmpty(limit);
}
}