提交 31297d73 authored 作者: junjie's avatar junjie

feat(视图): 文本类型过滤组件支持枚举

上级 b8c47998
...@@ -770,15 +770,11 @@ public class CKQueryProvider extends QueryProvider { ...@@ -770,15 +770,11 @@ public class CKQueryProvider extends QueryProvider {
for (ChartFieldCustomFilterDTO request : requestList) { for (ChartFieldCustomFilterDTO request : requestList) {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
DatasetTableField field = request.getField(); DatasetTableField field = request.getField();
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
if (ObjectUtils.isEmpty(field)) { if (ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String value = filterItemDTO.getValue();
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式 // 解析origin name中有关联的字段生成sql表达式
...@@ -802,6 +798,18 @@ public class CKQueryProvider extends QueryProvider { ...@@ -802,6 +798,18 @@ public class CKQueryProvider extends QueryProvider {
} else { } else {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getFilterType(), "enum")) {
if (CollectionUtils.isNotEmpty(request.getEnumCheckField())) {
res.add("(" + whereName + " IN ('" + String.join("','", request.getEnumCheckField()) + "'))");
}
} else {
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
String value = filterItemDTO.getValue();
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) {
whereValue = ""; whereValue = "";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) {
...@@ -844,6 +852,7 @@ public class CKQueryProvider extends QueryProvider { ...@@ -844,6 +852,7 @@ public class CKQueryProvider extends QueryProvider {
res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")");
} }
} }
}
return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null;
} }
......
...@@ -737,15 +737,11 @@ public class Db2QueryProvider extends QueryProvider { ...@@ -737,15 +737,11 @@ public class Db2QueryProvider extends QueryProvider {
for (ChartFieldCustomFilterDTO request : requestList) { for (ChartFieldCustomFilterDTO request : requestList) {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
DatasetTableField field = request.getField(); DatasetTableField field = request.getField();
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
if (ObjectUtils.isEmpty(field)) { if (ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String value = filterItemDTO.getValue();
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式 // 解析origin name中有关联的字段生成sql表达式
...@@ -770,6 +766,18 @@ public class Db2QueryProvider extends QueryProvider { ...@@ -770,6 +766,18 @@ public class Db2QueryProvider extends QueryProvider {
} else { } else {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getFilterType(), "enum")) {
if (CollectionUtils.isNotEmpty(request.getEnumCheckField())) {
res.add("(" + whereName + " IN ('" + String.join("','", request.getEnumCheckField()) + "'))");
}
} else {
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
String value = filterItemDTO.getValue();
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) {
whereValue = ""; whereValue = "";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) {
...@@ -801,6 +809,7 @@ public class Db2QueryProvider extends QueryProvider { ...@@ -801,6 +809,7 @@ public class Db2QueryProvider extends QueryProvider {
res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")");
} }
} }
}
return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null;
} }
......
...@@ -752,16 +752,11 @@ public class DorisQueryProvider extends QueryProvider { ...@@ -752,16 +752,11 @@ public class DorisQueryProvider extends QueryProvider {
for (ChartFieldCustomFilterDTO request : requestList) { for (ChartFieldCustomFilterDTO request : requestList) {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
DatasetTableField field = request.getField(); DatasetTableField field = request.getField();
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
if (ObjectUtils.isEmpty(field)) { if (ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String value = filterItemDTO.getValue();
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式 // 解析origin name中有关联的字段生成sql表达式
...@@ -785,6 +780,18 @@ public class DorisQueryProvider extends QueryProvider { ...@@ -785,6 +780,18 @@ public class DorisQueryProvider extends QueryProvider {
} else { } else {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getFilterType(), "enum")) {
if (CollectionUtils.isNotEmpty(request.getEnumCheckField())) {
res.add("(" + whereName + " IN ('" + String.join("','", request.getEnumCheckField()) + "'))");
}
} else {
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
String value = filterItemDTO.getValue();
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) {
whereValue = ""; whereValue = "";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) {
...@@ -816,6 +823,7 @@ public class DorisQueryProvider extends QueryProvider { ...@@ -816,6 +823,7 @@ public class DorisQueryProvider extends QueryProvider {
res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")");
} }
} }
}
return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null;
} }
......
...@@ -704,15 +704,11 @@ public class EsQueryProvider extends QueryProvider { ...@@ -704,15 +704,11 @@ public class EsQueryProvider extends QueryProvider {
for (ChartFieldCustomFilterDTO request : requestList) { for (ChartFieldCustomFilterDTO request : requestList) {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
DatasetTableField field = request.getField(); DatasetTableField field = request.getField();
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
if (ObjectUtils.isEmpty(field)) { if (ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String value = filterItemDTO.getValue();
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式 // 解析origin name中有关联的字段生成sql表达式
...@@ -736,6 +732,18 @@ public class EsQueryProvider extends QueryProvider { ...@@ -736,6 +732,18 @@ public class EsQueryProvider extends QueryProvider {
} else { } else {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getFilterType(), "enum")) {
if (CollectionUtils.isNotEmpty(request.getEnumCheckField())) {
res.add("(" + whereName + " IN ('" + String.join("','", request.getEnumCheckField()) + "'))");
}
} else {
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
String value = filterItemDTO.getValue();
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) {
whereValue = ""; whereValue = "";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) {
...@@ -756,13 +764,13 @@ public class EsQueryProvider extends QueryProvider { ...@@ -756,13 +764,13 @@ public class EsQueryProvider extends QueryProvider {
.whereTermAndValue(whereTerm + whereValue) .whereTermAndValue(whereTerm + whereValue)
.build()); .build());
} }
List<String> strList = new ArrayList<>(); List<String> strList = new ArrayList<>();
list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue())); list.forEach(ele -> strList.add(ele.getWhereField() + " " + ele.getWhereTermAndValue()));
if (CollectionUtils.isNotEmpty(list)) { if (CollectionUtils.isNotEmpty(list)) {
res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")");
} }
} }
}
return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null;
} }
......
...@@ -731,15 +731,11 @@ public class HiveQueryProvider extends QueryProvider { ...@@ -731,15 +731,11 @@ public class HiveQueryProvider extends QueryProvider {
for (ChartFieldCustomFilterDTO request : requestList) { for (ChartFieldCustomFilterDTO request : requestList) {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
DatasetTableField field = request.getField(); DatasetTableField field = request.getField();
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
if (ObjectUtils.isEmpty(field)) { if (ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String value = filterItemDTO.getValue();
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式 // 解析origin name中有关联的字段生成sql表达式
...@@ -763,6 +759,18 @@ public class HiveQueryProvider extends QueryProvider { ...@@ -763,6 +759,18 @@ public class HiveQueryProvider extends QueryProvider {
} else { } else {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getFilterType(), "enum")) {
if (CollectionUtils.isNotEmpty(request.getEnumCheckField())) {
res.add("(" + whereName + " IN ('" + String.join("','", request.getEnumCheckField()) + "'))");
}
} else {
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
String value = filterItemDTO.getValue();
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) {
whereValue = ""; whereValue = "";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) {
...@@ -790,6 +798,7 @@ public class HiveQueryProvider extends QueryProvider { ...@@ -790,6 +798,7 @@ public class HiveQueryProvider extends QueryProvider {
res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")");
} }
} }
}
return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null;
} }
......
...@@ -710,15 +710,11 @@ public class MongoQueryProvider extends QueryProvider { ...@@ -710,15 +710,11 @@ public class MongoQueryProvider extends QueryProvider {
for (ChartFieldCustomFilterDTO request : requestList) { for (ChartFieldCustomFilterDTO request : requestList) {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
DatasetTableField field = request.getField(); DatasetTableField field = request.getField();
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
if (ObjectUtils.isEmpty(field)) { if (ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String value = filterItemDTO.getValue();
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == DeTypeConstants.DE_INT) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == DeTypeConstants.DE_INT) {
// 解析origin name中有关联的字段生成sql表达式 // 解析origin name中有关联的字段生成sql表达式
...@@ -729,6 +725,18 @@ public class MongoQueryProvider extends QueryProvider { ...@@ -729,6 +725,18 @@ public class MongoQueryProvider extends QueryProvider {
originName = String.format(MongoConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); originName = String.format(MongoConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName());
} }
whereName = originName; whereName = originName;
if (StringUtils.equalsIgnoreCase(request.getFilterType(), "enum")) {
if (CollectionUtils.isNotEmpty(request.getEnumCheckField())) {
res.add("(" + whereName + " IN ('" + String.join("','", request.getEnumCheckField()) + "'))");
}
} else {
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
String value = filterItemDTO.getValue();
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) {
whereValue = ""; whereValue = "";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) {
...@@ -756,6 +764,7 @@ public class MongoQueryProvider extends QueryProvider { ...@@ -756,6 +764,7 @@ public class MongoQueryProvider extends QueryProvider {
res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")");
} }
} }
}
return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null;
} }
......
...@@ -771,9 +771,6 @@ public class MysqlQueryProvider extends QueryProvider { ...@@ -771,9 +771,6 @@ public class MysqlQueryProvider extends QueryProvider {
} else { } else {
List<ChartCustomFilterItemDTO> filter = request.getFilter(); List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) { for (ChartCustomFilterItemDTO filterItemDTO : filter) {
if (ObjectUtils.isEmpty(field)) {
continue;
}
String value = filterItemDTO.getValue(); String value = filterItemDTO.getValue();
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm()); String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = ""; String whereValue = "";
......
...@@ -786,16 +786,11 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -786,16 +786,11 @@ public class OracleQueryProvider extends QueryProvider {
for (ChartFieldCustomFilterDTO request : requestList) { for (ChartFieldCustomFilterDTO request : requestList) {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
DatasetTableField field = request.getField(); DatasetTableField field = request.getField();
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
if (ObjectUtils.isEmpty(field)) { if (ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String value = filterItemDTO.getValue();
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式 // 解析origin name中有关联的字段生成sql表达式
...@@ -820,6 +815,18 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -820,6 +815,18 @@ public class OracleQueryProvider extends QueryProvider {
} else { } else {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getFilterType(), "enum")) {
if (CollectionUtils.isNotEmpty(request.getEnumCheckField())) {
res.add("(" + whereName + " IN ('" + String.join("','", request.getEnumCheckField()) + "'))");
}
} else {
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
String value = filterItemDTO.getValue();
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) {
whereValue = ""; whereValue = "";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) {
...@@ -851,6 +858,7 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -851,6 +858,7 @@ public class OracleQueryProvider extends QueryProvider {
res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")");
} }
} }
}
return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null;
} }
......
...@@ -762,15 +762,11 @@ public class PgQueryProvider extends QueryProvider { ...@@ -762,15 +762,11 @@ public class PgQueryProvider extends QueryProvider {
for (ChartFieldCustomFilterDTO request : requestList) { for (ChartFieldCustomFilterDTO request : requestList) {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
DatasetTableField field = request.getField(); DatasetTableField field = request.getField();
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
if (ObjectUtils.isEmpty(field)) { if (ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String value = filterItemDTO.getValue();
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式 // 解析origin name中有关联的字段生成sql表达式
...@@ -794,6 +790,18 @@ public class PgQueryProvider extends QueryProvider { ...@@ -794,6 +790,18 @@ public class PgQueryProvider extends QueryProvider {
} else { } else {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getFilterType(), "enum")) {
if (CollectionUtils.isNotEmpty(request.getEnumCheckField())) {
res.add("(" + whereName + " IN ('" + String.join("','", request.getEnumCheckField()) + "'))");
}
} else {
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
String value = filterItemDTO.getValue();
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) {
whereValue = ""; whereValue = "";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) {
...@@ -821,6 +829,7 @@ public class PgQueryProvider extends QueryProvider { ...@@ -821,6 +829,7 @@ public class PgQueryProvider extends QueryProvider {
res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")");
} }
} }
}
return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null;
} }
......
...@@ -703,15 +703,11 @@ public class RedshiftQueryProvider extends QueryProvider { ...@@ -703,15 +703,11 @@ public class RedshiftQueryProvider extends QueryProvider {
for (ChartFieldCustomFilterDTO request : requestList) { for (ChartFieldCustomFilterDTO request : requestList) {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
DatasetTableField field = request.getField(); DatasetTableField field = request.getField();
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
if (ObjectUtils.isEmpty(field)) { if (ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String value = filterItemDTO.getValue();
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式 // 解析origin name中有关联的字段生成sql表达式
...@@ -735,6 +731,18 @@ public class RedshiftQueryProvider extends QueryProvider { ...@@ -735,6 +731,18 @@ public class RedshiftQueryProvider extends QueryProvider {
} else { } else {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getFilterType(), "enum")) {
if (CollectionUtils.isNotEmpty(request.getEnumCheckField())) {
res.add("(" + whereName + " IN ('" + String.join("','", request.getEnumCheckField()) + "'))");
}
} else {
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
String value = filterItemDTO.getValue();
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) {
whereValue = PgConstants.WHERE_VALUE_NULL; whereValue = PgConstants.WHERE_VALUE_NULL;
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) {
...@@ -758,6 +766,7 @@ public class RedshiftQueryProvider extends QueryProvider { ...@@ -758,6 +766,7 @@ public class RedshiftQueryProvider extends QueryProvider {
res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")");
} }
} }
}
return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null;
} }
......
...@@ -796,15 +796,11 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -796,15 +796,11 @@ public class SqlserverQueryProvider extends QueryProvider {
for (ChartFieldCustomFilterDTO request : requestList) { for (ChartFieldCustomFilterDTO request : requestList) {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
DatasetTableField field = request.getField(); DatasetTableField field = request.getField();
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
if (ObjectUtils.isEmpty(field)) { if (ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String value = filterItemDTO.getValue();
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式 // 解析origin name中有关联的字段生成sql表达式
...@@ -828,6 +824,18 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -828,6 +824,18 @@ public class SqlserverQueryProvider extends QueryProvider {
} else { } else {
whereName = originName; whereName = originName;
} }
if (StringUtils.equalsIgnoreCase(request.getFilterType(), "enum")) {
if (CollectionUtils.isNotEmpty(request.getEnumCheckField())) {
res.add("(" + whereName + " IN ('" + String.join("','", request.getEnumCheckField()) + "'))");
}
} else {
List<ChartCustomFilterItemDTO> filter = request.getFilter();
for (ChartCustomFilterItemDTO filterItemDTO : filter) {
String value = filterItemDTO.getValue();
String whereTerm = transMysqlFilterTerm(filterItemDTO.getTerm());
String whereValue = "";
if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) { if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "null")) {
whereValue = ""; whereValue = "";
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_null")) {
...@@ -855,6 +863,7 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -855,6 +863,7 @@ public class SqlserverQueryProvider extends QueryProvider {
res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")"); res.add("(" + String.join(" " + getLogic(request.getLogic()) + " ", strList) + ")");
} }
} }
}
return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null; return CollectionUtils.isNotEmpty(res) ? "(" + String.join(" AND ", res) + ")" : null;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论