提交 83081b94 authored 作者: junjun's avatar junjun

test: 树形过滤器sql拼接

上级 653f539c
...@@ -848,13 +848,21 @@ public class MysqlQueryProvider extends QueryProvider { ...@@ -848,13 +848,21 @@ public class MysqlQueryProvider extends QueryProvider {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
for (ChartExtFilterRequest request : requestList) { for (ChartExtFilterRequest request : requestList) {
List<String> value = request.getValue(); List<String> value = request.getValue();
DatasetTableField field = request.getDatasetTableField();
List<String> whereNameList = new ArrayList<>();
List<DatasetTableField> fieldList = new ArrayList<>();
if (request.getIsTree()) {
fieldList.addAll(request.getDatasetTableFieldList());
} else {
fieldList.add(request.getDatasetTableField());
}
for (DatasetTableField field : fieldList) {
if (CollectionUtils.isEmpty(value) || ObjectUtils.isEmpty(field)) { if (CollectionUtils.isEmpty(value) || ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(request.getOperator());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
...@@ -889,7 +897,17 @@ public class MysqlQueryProvider extends QueryProvider { ...@@ -889,7 +897,17 @@ public class MysqlQueryProvider extends QueryProvider {
} else { } else {
whereName = originName; whereName = originName;
} }
whereNameList.add(whereName);
}
String whereName = "";
if (request.getIsTree()) {
whereName = "CONCAT(" + StringUtils.join(whereNameList, ",',',") + ")";
} else {
whereName = whereNameList.get(0);
}
String whereTerm = transMysqlFilterTerm(request.getOperator());
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + StringUtils.join(value, "','") + "')";
......
...@@ -829,13 +829,20 @@ public class MysqlQueryProvider extends QueryProvider { ...@@ -829,13 +829,20 @@ public class MysqlQueryProvider extends QueryProvider {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();
for (ChartExtFilterRequest request : requestList) { for (ChartExtFilterRequest request : requestList) {
List<String> value = request.getValue(); List<String> value = request.getValue();
DatasetTableField field = request.getDatasetTableField();
List<String> whereNameList = new ArrayList<>();
List<DatasetTableField> fieldList = new ArrayList<>();
if (request.getIsTree()) {
fieldList.addAll(request.getDatasetTableFieldList());
} else {
fieldList.add(request.getDatasetTableField());
}
for (DatasetTableField field : fieldList) {
if (CollectionUtils.isEmpty(value) || ObjectUtils.isEmpty(field)) { if (CollectionUtils.isEmpty(value) || ObjectUtils.isEmpty(field)) {
continue; continue;
} }
String whereName = ""; String whereName = "";
String whereTerm = transMysqlFilterTerm(request.getOperator());
String whereValue = "";
String originName; String originName;
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) { if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
...@@ -871,7 +878,17 @@ public class MysqlQueryProvider extends QueryProvider { ...@@ -871,7 +878,17 @@ public class MysqlQueryProvider extends QueryProvider {
} else { } else {
whereName = originName; whereName = originName;
} }
whereNameList.add(whereName);
}
String whereName = "";
if (request.getIsTree()) {
whereName = "CONCAT(" + StringUtils.join(whereNameList, ",',',") + ")";
} else {
whereName = whereNameList.get(0);
}
String whereTerm = transMysqlFilterTerm(request.getOperator());
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + StringUtils.join(value, "','") + "')";
......
...@@ -542,8 +542,10 @@ public class ChartViewService { ...@@ -542,8 +542,10 @@ public class ChartViewService {
if (ObjectUtils.isEmpty(view)) { if (ObjectUtils.isEmpty(view)) {
throw new RuntimeException(Translator.get("i18n_chart_delete")); throw new RuntimeException(Translator.get("i18n_chart_delete"));
} }
Type tokenType = new TypeToken<List<ChartViewFieldDTO>>() {}.getType(); Type tokenType = new TypeToken<List<ChartViewFieldDTO>>() {
Type filterTokenType = new TypeToken<List<ChartFieldCustomFilterDTO>>() {}.getType(); }.getType();
Type filterTokenType = new TypeToken<List<ChartFieldCustomFilterDTO>>() {
}.getType();
List<ChartViewFieldDTO> viewFields = gson.fromJson(view.getViewFields(), tokenType); List<ChartViewFieldDTO> viewFields = gson.fromJson(view.getViewFields(), tokenType);
Map<String, List<ChartViewFieldDTO>> extFieldsMap = null; Map<String, List<ChartViewFieldDTO>> extFieldsMap = null;
...@@ -640,6 +642,31 @@ public class ChartViewService { ...@@ -640,6 +642,31 @@ public class ChartViewService {
String fieldId = request.getFieldId(); String fieldId = request.getFieldId();
if (StringUtils.isNotEmpty(fieldId)) { if (StringUtils.isNotEmpty(fieldId)) {
String[] fieldIds = fieldId.split(","); String[] fieldIds = fieldId.split(",");
if (request.getIsTree()) {
ChartExtFilterRequest filterRequest = new ChartExtFilterRequest();
BeanUtils.copyBean(filterRequest, request);
filterRequest.setDatasetTableFieldList(new ArrayList<>());
for (String fId : fieldIds) {
DatasetTableField datasetTableField = dataSetTableFieldsService.get(fId);
if (datasetTableField == null) {
continue;
}
if (!desensitizationList.contains(datasetTableField.getDataeaseName()) && dataeaseNames.contains(datasetTableField.getDataeaseName())) {
if (StringUtils.equalsIgnoreCase(datasetTableField.getTableId(), view.getTableId())) {
if (CollectionUtils.isNotEmpty(filterRequest.getViewIds())) {
if (filterRequest.getViewIds().contains(view.getId())) {
filterRequest.getDatasetTableFieldList().add(datasetTableField);
}
} else {
filterRequest.getDatasetTableFieldList().add(datasetTableField);
}
}
}
}
if (CollectionUtils.isNotEmpty(filterRequest.getDatasetTableFieldList())) {
extFilterList.add(filterRequest);
}
} else {
for (String fId : fieldIds) { for (String fId : fieldIds) {
ChartExtFilterRequest filterRequest = new ChartExtFilterRequest(); ChartExtFilterRequest filterRequest = new ChartExtFilterRequest();
BeanUtils.copyBean(filterRequest, request); BeanUtils.copyBean(filterRequest, request);
...@@ -665,6 +692,7 @@ public class ChartViewService { ...@@ -665,6 +692,7 @@ public class ChartViewService {
} }
} }
} }
}
List<ChartExtFilterRequest> filters = new ArrayList<>(); List<ChartExtFilterRequest> filters = new ArrayList<>();
// 联动条件 // 联动条件
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论