forked from github/dataease
test: 树形过滤器sql拼接
This commit is contained in:
parent
653f539c28
commit
83081b94e5
@ -848,13 +848,21 @@ public class MysqlQueryProvider extends QueryProvider {
|
||||
List<SQLObj> list = new ArrayList<>();
|
||||
for (ChartExtFilterRequest request : requestList) {
|
||||
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)) {
|
||||
continue;
|
||||
}
|
||||
String whereName = "";
|
||||
String whereTerm = transMysqlFilterTerm(request.getOperator());
|
||||
String whereValue = "";
|
||||
|
||||
|
||||
String originName;
|
||||
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
|
||||
@ -889,7 +897,17 @@ public class MysqlQueryProvider extends QueryProvider {
|
||||
} else {
|
||||
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")) {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
|
@ -829,13 +829,20 @@ public class MysqlQueryProvider extends QueryProvider {
|
||||
List<SQLObj> list = new ArrayList<>();
|
||||
for (ChartExtFilterRequest request : requestList) {
|
||||
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)) {
|
||||
continue;
|
||||
}
|
||||
String whereName = "";
|
||||
String whereTerm = transMysqlFilterTerm(request.getOperator());
|
||||
String whereValue = "";
|
||||
|
||||
String originName;
|
||||
if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 2) {
|
||||
@ -871,7 +878,17 @@ public class MysqlQueryProvider extends QueryProvider {
|
||||
} else {
|
||||
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")) {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
|
@ -542,8 +542,10 @@ public class ChartViewService {
|
||||
if (ObjectUtils.isEmpty(view)) {
|
||||
throw new RuntimeException(Translator.get("i18n_chart_delete"));
|
||||
}
|
||||
Type tokenType = new TypeToken<List<ChartViewFieldDTO>>() {}.getType();
|
||||
Type filterTokenType = new TypeToken<List<ChartFieldCustomFilterDTO>>() {}.getType();
|
||||
Type tokenType = new TypeToken<List<ChartViewFieldDTO>>() {
|
||||
}.getType();
|
||||
Type filterTokenType = new TypeToken<List<ChartFieldCustomFilterDTO>>() {
|
||||
}.getType();
|
||||
|
||||
List<ChartViewFieldDTO> viewFields = gson.fromJson(view.getViewFields(), tokenType);
|
||||
Map<String, List<ChartViewFieldDTO>> extFieldsMap = null;
|
||||
@ -640,6 +642,31 @@ public class ChartViewService {
|
||||
String fieldId = request.getFieldId();
|
||||
if (StringUtils.isNotEmpty(fieldId)) {
|
||||
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) {
|
||||
ChartExtFilterRequest filterRequest = new ChartExtFilterRequest();
|
||||
BeanUtils.copyBean(filterRequest, request);
|
||||
@ -665,6 +692,7 @@ public class ChartViewService {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<ChartExtFilterRequest> filters = new ArrayList<>();
|
||||
// 联动条件
|
||||
|
Loading…
Reference in New Issue
Block a user