Merge pull request #8917 from dataease/pr@dev@revert_error_push
Revert "fix(过滤组件): 文本下拉框排序后部分选项缺失 close#8714"
This commit is contained in:
commit
76903a2328
@ -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;
|
||||
}
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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)) {
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user