提交 5e9cf037 authored 作者: junjie's avatar junjie

fix: 视图过滤不能设置无限制

上级 d6bd924e
......@@ -190,7 +190,10 @@ public class MysqlQueryProvider extends QueryProvider {
filter.append(" AND `").append(x.getOriginName()).append("`");
}
filter.append(transMysqlFilterTerm(f.getTerm()));
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
filter.append("(null,'')");
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
filter.append(" AND `").append(x.getOriginName()).append("`").append(" <> ''");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
......@@ -227,7 +230,12 @@ public class MysqlQueryProvider extends QueryProvider {
filter.append(" AND `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
}
filter.append(transMysqlFilterTerm(f.getTerm()));
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
filter.append("(null,'')");
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
filter.append(" AND `_")
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName())
.append("`").append(" <> ''");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
......@@ -308,7 +316,12 @@ public class MysqlQueryProvider extends QueryProvider {
filter.append(" AND `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
}
filter.append(transMysqlFilterTerm(f.getTerm()));
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
filter.append("(null,'')");
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
filter.append(" AND `_")
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName())
.append("`").append(" <> ''");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
......@@ -347,7 +360,7 @@ public class MysqlQueryProvider extends QueryProvider {
}
@Override
public String createRawQuerySQL(String table, List<DatasetTableField> fields){
public String createRawQuerySQL(String table, List<DatasetTableField> fields) {
String[] array = fields.stream().map(f -> {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
......@@ -384,7 +397,7 @@ public class MysqlQueryProvider extends QueryProvider {
case "not like":
return " NOT LIKE ";
case "null":
return " IS NULL ";
return " IN ";
case "not_null":
return " IS NOT NULL ";
case "between":
......@@ -415,7 +428,10 @@ public class MysqlQueryProvider extends QueryProvider {
filter.append(" ")
.append(transMysqlFilterTerm(request.getTerm()))
.append(" ");
if (StringUtils.containsIgnoreCase(request.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
filter.append("(null,'')");
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
filter.append(" AND `").append(field.getOriginName()).append("`").append(" <> ''");
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
filter.append("('").append(StringUtils.join(value, "','")).append("')");
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
......
......@@ -718,7 +718,9 @@ export default {
chartName: 'New Chart',
chart_show_error: 'can not show normal',
chart_error_tips: 'Please contact admin ',
title_cannot_empty: 'Title can not be empty'
title_cannot_empty: 'Title can not be empty',
condition: 'Filter Value',
filter_value_can_null: 'Filter value can not empty'
},
dataset: {
sheet_warn: 'There are multiple sheet pages, and the first one is extracted by default',
......
......@@ -760,7 +760,9 @@ export default {
chartName: '新建視圖',
chart_show_error: '無法正常顯示',
chart_error_tips: '如有疑問請聯系管理員',
title_cannot_empty: '標題不能為空'
title_cannot_empty: '標題不能為空',
condition: '過濾值',
filter_value_can_null: '過濾值不能為空'
},
dataset: {
sheet_warn: '有多個sheet頁面,默認抽取第一個',
......
......@@ -718,7 +718,9 @@ export default {
chartName: '新建视图',
chart_show_error: '无法正常显示',
chart_error_tips: '如有疑问请联系管理员',
title_cannot_empty: '标题不能为空'
title_cannot_empty: '标题不能为空',
condition: '过滤值',
filter_value_can_null: '过滤值不能为空'
},
dataset: {
sheet_warn: '有多个 Sheet 页,默认抽取第一个',
......
......@@ -23,7 +23,7 @@
</el-select>
</el-col>
<el-col :span="6">
<el-input v-show="!f.term.includes('null')" v-model="f.value" class="value-item" :placeholder="$t('chart.no_limit')" size="mini" clearable />
<el-input v-show="!f.term.includes('null')" v-model="f.value" class="value-item" :placeholder="$t('chart.condition')" size="mini" clearable />
</el-col>
<el-col :span="6">
<el-button type="text" icon="el-icon-delete" circle style="float: right" @click="removeFilter(index)" />
......
......@@ -23,7 +23,7 @@
</el-select>
</el-col>
<el-col :span="6">
<el-input v-show="!f.term.includes('null')" v-model="f.value" class="value-item" :placeholder="$t('chart.no_limit')" size="mini" clearable />
<el-input v-show="!f.term.includes('null')" v-model="f.value" class="value-item" :placeholder="$t('chart.condition')" size="mini" clearable />
</el-col>
<el-col :span="6">
<el-button type="text" icon="el-icon-delete" circle style="float: right" @click="removeFilter(index)" />
......
......@@ -37,7 +37,7 @@
</el-select>
</el-col>
<el-col :span="6">
<el-input v-show="!f.term.includes('null')" v-model="f.value" class="value-item" :placeholder="$t('chart.no_limit')" size="mini" clearable />
<el-input v-show="!f.term.includes('null')" v-model="f.value" class="value-item" :placeholder="$t('chart.condition')" size="mini" clearable />
</el-col>
<el-col :span="6">
<el-button type="text" icon="el-icon-delete" circle style="float: right" @click="removeFilter(index)" />
......
......@@ -843,6 +843,17 @@ export default {
this.dimensionFilterEdit = false
},
saveDimensionFilter() {
for (let i = 0; i < this.dimensionItem.filter.length; i++) {
const f = this.dimensionItem.filter[i]
if (!f.term.includes('null') && (!f.value || f.value === '')) {
this.$message({
message: this.$t('chart.filter_value_can_null'),
type: 'error',
showClose: true
})
return
}
}
this.view.xaxis[this.dimensionItem.index].filter = this.dimensionItem.filter
this.save(true)
this.closeDimensionFilter()
......@@ -856,6 +867,17 @@ export default {
this.quotaFilterEdit = false
},
saveQuotaFilter() {
for (let i = 0; i < this.quotaItem.filter.length; i++) {
const f = this.quotaItem.filter[i]
if (!f.term.includes('null') && (!f.value || f.value === '')) {
this.$message({
message: this.$t('chart.filter_value_can_null'),
type: 'error',
showClose: true
})
return
}
}
this.view.yaxis[this.quotaItem.index].filter = this.quotaItem.filter
this.save(true)
this.closeQuotaFilter()
......@@ -879,6 +901,14 @@ export default {
})
return
}
if (!f.term.includes('null') && (!f.value || f.value === '')) {
this.$message({
message: this.$t('chart.filter_value_can_null'),
type: 'error',
showClose: true
})
return
}
}
this.view.customFilter = this.chartForFilter.customFilter
this.save(true)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论