forked from github/dataease
fix: 视图过滤不能设置无限制
This commit is contained in:
parent
45e97da538
commit
8f0eeaff19
@ -193,7 +193,10 @@ public class DorisQueryProvider extends QueryProvider {
|
||||
filter.append(" AND ").append(x.getDataeaseName());
|
||||
}
|
||||
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.getDataeaseName()).append(" <> ''");
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
@ -229,7 +232,12 @@ public class DorisQueryProvider extends QueryProvider {
|
||||
filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName());
|
||||
}
|
||||
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.getDataeaseName(), "*") ? "" : y.getDataeaseName())
|
||||
.append(" <> ''");
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
@ -310,7 +318,12 @@ public class DorisQueryProvider extends QueryProvider {
|
||||
filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName());
|
||||
}
|
||||
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.getDataeaseName(), "*") ? "" : y.getDataeaseName())
|
||||
.append(" <> ''");
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
@ -349,7 +362,7 @@ public class DorisQueryProvider 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());
|
||||
@ -393,7 +406,7 @@ public class DorisQueryProvider extends QueryProvider {
|
||||
case "not like":
|
||||
return " NOT LIKE ";
|
||||
case "null":
|
||||
return " IS NULL ";
|
||||
return " IN ";
|
||||
case "not_null":
|
||||
return " IS NOT NULL ";
|
||||
case "between":
|
||||
@ -424,7 +437,10 @@ public class DorisQueryProvider 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.getDataeaseName()).append(" <> ''");
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
|
||||
filter.append("('").append(StringUtils.join(value, "','")).append("')");
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
|
||||
|
@ -198,7 +198,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")) {
|
||||
@ -235,7 +238,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")) {
|
||||
@ -316,7 +324,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")) {
|
||||
@ -355,7 +368,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());
|
||||
@ -392,7 +405,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":
|
||||
@ -423,7 +436,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")) {
|
||||
|
@ -1,12 +1,10 @@
|
||||
package io.dataease.provider.oracle;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import io.dataease.base.domain.DatasetTableField;
|
||||
import io.dataease.controller.request.chart.ChartExtFilterRequest;
|
||||
import io.dataease.dto.chart.ChartCustomFilterDTO;
|
||||
import io.dataease.dto.chart.ChartViewFieldDTO;
|
||||
import io.dataease.provider.QueryProvider;
|
||||
import io.swagger.models.auth.In;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -93,9 +91,9 @@ public class OracleQueryProvider extends QueryProvider {
|
||||
// 如果原始类型为时间
|
||||
if (f.getDeExtractType() == TIME) {
|
||||
if (f.getDeType() == INT || f.getDeType() == FLOAT) { //日期转数值
|
||||
if(f.getType().equalsIgnoreCase("DATE")){
|
||||
if (f.getType().equalsIgnoreCase("DATE")) {
|
||||
stringBuilder.append("TO_NUMBER( ").append(f.getOriginName()).append(" - TO_DATE('1970-01-01 8:0:0', 'YYYY-MM-DD HH24:MI:SS')) * 24 * 60 * 60 * 1000 AS ").append(f.getDataeaseName());
|
||||
}else {
|
||||
} else {
|
||||
stringBuilder.append("TO_NUMBER(to_date(to_char( ").append(f.getOriginName()).append(" ,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') - TO_DATE('1970-01-01 8:0:0', 'YYYY-MM-DD HH24:MI:SS')) * 24 * 60 * 60 * 1000 AS ").append(f.getDataeaseName());
|
||||
}
|
||||
} else {
|
||||
@ -123,9 +121,9 @@ public class OracleQueryProvider extends QueryProvider {
|
||||
return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), table);
|
||||
}
|
||||
|
||||
private String sqlColumn(List<DatasetTableField> fields){
|
||||
private String sqlColumn(List<DatasetTableField> fields) {
|
||||
String[] array = fields.stream().map(f -> {
|
||||
return f.getDataeaseName();
|
||||
return f.getDataeaseName();
|
||||
}).toArray(String[]::new);
|
||||
return StringUtils.join(array, ",");
|
||||
}
|
||||
@ -184,17 +182,17 @@ public class OracleQueryProvider extends QueryProvider {
|
||||
// 如果原始类型为时间
|
||||
if (x.getDeExtractType() == TIME) {
|
||||
if (x.getDeType() == INT || x.getDeType() == FLOAT) { //时间转数值
|
||||
if(x.getType().equalsIgnoreCase("DATE")){
|
||||
if (x.getType().equalsIgnoreCase("DATE")) {
|
||||
stringBuilder.append("TO_NUMBER( ").append(x.getOriginName()).append(" - TO_DATE('1970-01-01 8:0:0', 'YYYY-MM-DD HH24:MI:SS')) * 24 * 60 * 60 * 1000 AS \"_").append(x.getDataeaseName()).append("\" ");
|
||||
}else {
|
||||
} else {
|
||||
stringBuilder.append("TO_NUMBER(to_date(to_char( ").append(x.getOriginName()).append(" ,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') - TO_DATE('1970-01-01 8:0:0', 'YYYY-MM-DD HH24:MI:SS')) * 24 * 60 * 60 * 1000 AS ")
|
||||
.append(x.getDataeaseName()).append("\" ");
|
||||
}
|
||||
} else if (x.getDeType() == TIME) { //格式化显示时间
|
||||
String format = transDateFormat(x.getDateStyle(), x.getDatePattern());
|
||||
if(x.getType().equalsIgnoreCase("DATE")){
|
||||
if (x.getType().equalsIgnoreCase("DATE")) {
|
||||
stringBuilder.append("to_char( ").append(x.getOriginName()).append(" ,'").append(format).append("') AS \"_").append(x.getOriginName()).append("\" ");
|
||||
}else {
|
||||
} else {
|
||||
stringBuilder.append("to_char(to_date(to_char( ").append(x.getOriginName()).append(" ,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'), '").append(format).append("') AS \"_").append(x.getOriginName()).append("\" ");
|
||||
}
|
||||
} else {
|
||||
@ -206,7 +204,7 @@ public class OracleQueryProvider extends QueryProvider {
|
||||
if (x.getDeExtractType() == STRING) { //字符串转时间
|
||||
stringBuilder.append("to_char(to_date(").append(x.getOriginName()).append(" , 'yyyy-MM-dd hh24:mi:ss'), '").append(format).append("') AS \"_").append(x.getOriginName()).append("\" ");
|
||||
} else { //数值转时间
|
||||
stringBuilder.append("to_char(").append(x.getOriginName()) .append("/ (1000 * 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS'), '").append(format).append("') AS \"_").append(x.getOriginName()).append("\" ");
|
||||
stringBuilder.append("to_char(").append(x.getOriginName()).append("/ (1000 * 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS'), '").append(format).append("') AS \"_").append(x.getOriginName()).append("\" ");
|
||||
}
|
||||
} else {
|
||||
stringBuilder.append(" ").append(x.getOriginName()).append(" AS \"_").append(x.getOriginName()).append("\" ");
|
||||
@ -234,7 +232,10 @@ public class OracleQueryProvider 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(" <> ''");
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
@ -271,7 +272,12 @@ public class OracleQueryProvider 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(" <> ''");
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
@ -352,7 +358,12 @@ public class OracleQueryProvider 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")) {
|
||||
@ -391,7 +402,7 @@ public class OracleQueryProvider 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());
|
||||
@ -428,7 +439,7 @@ public class OracleQueryProvider extends QueryProvider {
|
||||
case "not like":
|
||||
return " NOT LIKE ";
|
||||
case "null":
|
||||
return " IS NULL ";
|
||||
return " IN ";
|
||||
case "not_null":
|
||||
return " IS NOT NULL ";
|
||||
case "between":
|
||||
@ -459,7 +470,10 @@ public class OracleQueryProvider 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")) {
|
||||
|
@ -6,31 +6,31 @@ import io.dataease.dto.chart.ChartCustomFilterDTO;
|
||||
import io.dataease.dto.chart.ChartViewFieldDTO;
|
||||
import io.dataease.provider.QueryProvider;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author gin
|
||||
* @Date 2021/5/17 2:43 下午
|
||||
*/
|
||||
@Service("sqlserverQuery")
|
||||
@Service("sqlServerQuery")
|
||||
public class SqlserverQueryProvider extends QueryProvider {
|
||||
@Override
|
||||
public Integer transFieldType(String field) {
|
||||
switch (field.toUpperCase()) {
|
||||
switch (field) {
|
||||
case "CHAR":
|
||||
case "VARCHAR":
|
||||
case "TEXT":
|
||||
case "TINYTEXT":
|
||||
case "MEDIUMTEXT":
|
||||
case "LONGTEXT":
|
||||
case "NCHAR":
|
||||
case "NVARCHAR":
|
||||
case "NTEXT":
|
||||
case "ENUM":
|
||||
return 0;// 文本
|
||||
case "DATE":
|
||||
@ -59,7 +59,7 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
|
||||
@Override
|
||||
public String createQueryCountSQL(String table) {
|
||||
return MessageFormat.format("SELECT count(*) FROM {0}", table);
|
||||
return MessageFormat.format("SELECT COUNT(*) FROM {0}", table);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -69,7 +69,7 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
|
||||
@Override
|
||||
public String createSQLPreview(String sql, String orderBy) {
|
||||
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp ORDER BY " + orderBy + " LIMIT 0,1000";
|
||||
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp ORDER BY null " + " LIMIT 0,1000";
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -79,21 +79,30 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
// 如果原始类型为时间
|
||||
if (f.getDeExtractType() == 1) {
|
||||
if (f.getDeType() == 2 || f.getDeType() == 3) {
|
||||
stringBuilder.append("unix_timestamp(").append(f.getOriginName()).append(")*1000 as ").append(f.getOriginName());
|
||||
stringBuilder.append("UNIX_TIMESTAMP(`").append(f.getOriginName()).append("`)*1000 AS ").append(f.getDataeaseName());
|
||||
} else {
|
||||
stringBuilder.append(f.getOriginName());
|
||||
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
|
||||
}
|
||||
} else if (f.getDeExtractType() == 0) {
|
||||
if (f.getDeType() == 2) {
|
||||
stringBuilder.append("CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,0)) AS ").append(f.getDataeaseName());
|
||||
} else if (f.getDeType() == 3) {
|
||||
stringBuilder.append("CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,2)) AS ").append(f.getDataeaseName());
|
||||
} else if (f.getDeType() == 1) {
|
||||
stringBuilder.append("DATE_FORMAT(`").append(f.getOriginName()).append("`,'%Y-%m-%d %H:%i:%S') AS _").append(f.getDataeaseName());
|
||||
} else {
|
||||
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
|
||||
}
|
||||
} else {
|
||||
if (f.getDeType() == 1) {
|
||||
stringBuilder.append("FROM_UNIXTIME(cast(").append(f.getOriginName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(f.getOriginName());
|
||||
stringBuilder.append("FROM_UNIXTIME(CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') AS ").append(f.getDataeaseName());
|
||||
} else {
|
||||
stringBuilder.append(f.getOriginName());
|
||||
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
|
||||
}
|
||||
}
|
||||
return stringBuilder.toString();
|
||||
}).toArray(String[]::new);
|
||||
|
||||
return MessageFormat.format("SELECT {0} FROM {1} ORDER BY " + (fields.size() > 0 ? fields.get(0).getOriginName() : "null"), StringUtils.join(array, ","), table);
|
||||
return MessageFormat.format("SELECT {0} FROM {1} ORDER BY null", StringUtils.join(array, ","), table);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -103,7 +112,7 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
|
||||
@Override
|
||||
public String createQuerySQLWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) {
|
||||
return createQuerySQL(table, fields) + " offset " + (page - 1) * pageSize + " rows fetch next " + realSize + " rows only";
|
||||
return createQuerySQL(table, fields) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -132,15 +141,15 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) {
|
||||
f.append("CAST(")
|
||||
.append(y.getSummary()).append("(")
|
||||
.append("CAST(").append(y.getOriginName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
||||
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
||||
.append(") AS DECIMAL(20,2)").append(")");
|
||||
} else {
|
||||
f.append(y.getSummary()).append("(")
|
||||
.append("CAST(").append(y.getOriginName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
||||
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
||||
.append(")");
|
||||
}
|
||||
}
|
||||
f.append(" AS _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName());
|
||||
f.append(" AS `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
|
||||
return f.toString();
|
||||
}).toArray(String[]::new);
|
||||
String[] groupField = xAxis.stream().map(x -> {
|
||||
@ -148,24 +157,32 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
// 如果原始类型为时间
|
||||
if (x.getDeExtractType() == 1) {
|
||||
if (x.getDeType() == 2 || x.getDeType() == 3) {
|
||||
stringBuilder.append("unix_timestamp(").append(x.getOriginName()).append(")*1000 as ").append(x.getOriginName());
|
||||
stringBuilder.append("UNIX_TIMESTAMP(`").append(x.getOriginName()).append("`)*1000 AS `_").append(x.getOriginName()).append("`");
|
||||
} else if (x.getDeType() == 1) {
|
||||
String format = transDateFormat(x.getDateStyle(), x.getDatePattern());
|
||||
stringBuilder.append("DATE_FORMAT(`").append(x.getOriginName()).append("`,'").append(format).append("') AS `_").append(x.getOriginName()).append("`");
|
||||
} else {
|
||||
stringBuilder.append(x.getOriginName());
|
||||
stringBuilder.append("`").append(x.getOriginName()).append("` AS `_").append(x.getOriginName()).append("`");
|
||||
}
|
||||
} else {
|
||||
if (x.getDeType() == 1) {
|
||||
stringBuilder.append("FROM_UNIXTIME(cast(").append(x.getOriginName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(x.getOriginName());
|
||||
String format = transDateFormat(x.getDateStyle(), x.getDatePattern());
|
||||
if (x.getDeExtractType() == 0) {
|
||||
stringBuilder.append("DATE_FORMAT(`").append(x.getOriginName()).append("`,'").append(format).append("') AS `_").append(x.getOriginName()).append("`");
|
||||
} else {
|
||||
stringBuilder.append("DATE_FORMAT(").append("FROM_UNIXTIME(CAST(`").append(x.getOriginName()).append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S')").append(",'").append(format).append("') AS `_").append(x.getOriginName()).append("`");
|
||||
}
|
||||
} else {
|
||||
stringBuilder.append(x.getOriginName());
|
||||
stringBuilder.append("`").append(x.getOriginName()).append("` AS `_").append(x.getOriginName()).append("`");
|
||||
}
|
||||
}
|
||||
return stringBuilder.toString();
|
||||
}).toArray(String[]::new);
|
||||
String[] group = xAxis.stream().map(ChartViewFieldDTO::getOriginName).toArray(String[]::new);
|
||||
String[] group = xAxis.stream().map(x -> "`_" + x.getOriginName() + "`").toArray(String[]::new);
|
||||
String[] xOrder = xAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
|
||||
.map(f -> f.getOriginName() + " " + f.getSort()).toArray(String[]::new);
|
||||
.map(f -> "`_" + f.getOriginName() + "` " + f.getSort()).toArray(String[]::new);
|
||||
String[] yOrder = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
|
||||
.map(f -> "_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + " " + f.getSort()).toArray(String[]::new);
|
||||
.map(f -> "`_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + "` " + f.getSort()).toArray(String[]::new);
|
||||
String[] order = Arrays.copyOf(xOrder, xOrder.length + yOrder.length);
|
||||
System.arraycopy(yOrder, 0, order, xOrder.length, yOrder.length);
|
||||
|
||||
@ -174,14 +191,17 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
String[] s = x.getFilter().stream().map(f -> {
|
||||
StringBuilder filter = new StringBuilder();
|
||||
if (x.getDeType() == 1 && x.getDeExtractType() != 1) {
|
||||
filter.append(" AND FROM_UNIXTIME(cast(")
|
||||
filter.append(" AND FROM_UNIXTIME(cast(`")
|
||||
.append(x.getOriginName())
|
||||
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||
.append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||
} else {
|
||||
filter.append(" AND ").append(x.getOriginName());
|
||||
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")) {
|
||||
@ -211,14 +231,19 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
StringBuilder filter = new StringBuilder();
|
||||
// 原始类型不是时间,在de中被转成时间的字段做处理
|
||||
if (y.getDeType() == 1 && y.getDeExtractType() != 1) {
|
||||
filter.append(" AND FROM_UNIXTIME(cast(_")
|
||||
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName())
|
||||
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||
filter.append(" AND FROM_UNIXTIME(CAST(`_")
|
||||
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`")
|
||||
.append(" AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||
} else {
|
||||
filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName());
|
||||
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")) {
|
||||
@ -233,9 +258,10 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
if (resultFilter.length == 0) {
|
||||
return sql;
|
||||
} else {
|
||||
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1}",
|
||||
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1} ORDER BY {2}",
|
||||
"(" + sql + ") AS tmp",
|
||||
StringUtils.join(resultFilter, " "));
|
||||
StringUtils.join(resultFilter, " "),
|
||||
ObjectUtils.isNotEmpty(yOrder) ? StringUtils.join(yOrder, ",") : "null");
|
||||
return filterSql;
|
||||
}
|
||||
}
|
||||
@ -252,12 +278,83 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
|
||||
@Override
|
||||
public String getSQLSummary(String table, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList) {
|
||||
return null;
|
||||
// 字段汇总 排序等
|
||||
String[] field = yAxis.stream().map(y -> {
|
||||
StringBuilder f = new StringBuilder();
|
||||
if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) {
|
||||
f.append(y.getSummary()).append("(").append(y.getOriginName()).append(")");
|
||||
} else {
|
||||
if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) {
|
||||
f.append("CAST(")
|
||||
.append(y.getSummary()).append("(")
|
||||
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
||||
.append(") AS DECIMAL(20,2)").append(")");
|
||||
} else {
|
||||
f.append(y.getSummary()).append("(")
|
||||
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
||||
.append(")");
|
||||
}
|
||||
}
|
||||
f.append(" AS `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
|
||||
return f.toString();
|
||||
}).toArray(String[]::new);
|
||||
|
||||
String[] order = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
|
||||
.map(f -> "`_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + "` " + f.getSort()).toArray(String[]::new);
|
||||
|
||||
String sql = MessageFormat.format("SELECT {0} FROM {1} WHERE 1=1 {2} ORDER BY null,{3}",
|
||||
StringUtils.join(field, ","),
|
||||
table,
|
||||
transCustomFilter(customFilter) + transExtFilter(extFilterRequestList),// origin field filter and panel field filter
|
||||
StringUtils.join(order, ","));
|
||||
if (sql.endsWith(",")) {
|
||||
sql = sql.substring(0, sql.length() - 1);
|
||||
}
|
||||
// 如果是对结果字段过滤,则再包裹一层sql
|
||||
String[] resultFilter = yAxis.stream().filter(y -> CollectionUtils.isNotEmpty(y.getFilter()) && y.getFilter().size() > 0)
|
||||
.map(y -> {
|
||||
String[] s = y.getFilter().stream().map(f -> {
|
||||
StringBuilder filter = new StringBuilder();
|
||||
// 原始类型不是时间,在de中被转成时间的字段做处理
|
||||
if (y.getDeType() == 1 && y.getDeExtractType() != 1) {
|
||||
filter.append(" AND FROM_UNIXTIME(CAST(`_")
|
||||
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`")
|
||||
.append(" AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||
} else {
|
||||
filter.append(" AND `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
|
||||
}
|
||||
filter.append(transMysqlFilterTerm(f.getTerm()));
|
||||
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")) {
|
||||
filter.append("%").append(f.getValue()).append("%");
|
||||
} else {
|
||||
filter.append("'").append(f.getValue()).append("'");
|
||||
}
|
||||
return filter.toString();
|
||||
}).toArray(String[]::new);
|
||||
return StringUtils.join(s, " ");
|
||||
}).toArray(String[]::new);
|
||||
if (resultFilter.length == 0) {
|
||||
return sql;
|
||||
} else {
|
||||
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1} ORDER BY {2}",
|
||||
"(" + sql + ") AS tmp",
|
||||
StringUtils.join(resultFilter, " "),
|
||||
ObjectUtils.isNotEmpty(order) ? StringUtils.join(order, ",") : "null");
|
||||
return filterSql;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSQLSummaryAsTmp(String table, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList) {
|
||||
return null;
|
||||
public String getSQLSummaryAsTmp(String sql, List<ChartViewFieldDTO> yAxis, List<ChartCustomFilterDTO> customFilter, List<ChartExtFilterRequest> extFilterRequestList) {
|
||||
return getSQLSummary(" (" + sqlFix(sql) + ") AS tmp ", yAxis, customFilter, extFilterRequestList);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -271,7 +368,7 @@ public class SqlserverQueryProvider 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());
|
||||
@ -308,9 +405,11 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
case "not like":
|
||||
return " NOT LIKE ";
|
||||
case "null":
|
||||
return " IS NULL ";
|
||||
return " IN ";
|
||||
case "not_null":
|
||||
return " IS NOT NULL ";
|
||||
case "between":
|
||||
return " BETWEEN ";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
@ -324,17 +423,24 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
for (ChartCustomFilterDTO request : requestList) {
|
||||
String value = request.getValue();
|
||||
DatasetTableField field = request.getField();
|
||||
if (ObjectUtils.isEmpty(field)) {
|
||||
continue;
|
||||
}
|
||||
if (field.getDeType() == 1 && field.getDeExtractType() != 1) {
|
||||
filter.append(" AND FROM_UNIXTIME(cast(")
|
||||
filter.append(" AND FROM_UNIXTIME(CAST(`")
|
||||
.append(field.getOriginName())
|
||||
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||
.append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||
} else {
|
||||
filter.append(" AND ").append(field.getOriginName());
|
||||
filter.append(" AND `").append(field.getOriginName()).append("`");
|
||||
}
|
||||
filter.append(" ")
|
||||
.append(transMysqlFilterTerm(request.getTerm()))
|
||||
.append(" ");
|
||||
if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
|
||||
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")) {
|
||||
filter.append("'%").append(value).append("%'");
|
||||
@ -357,11 +463,11 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
}
|
||||
DatasetTableField field = request.getDatasetTableField();
|
||||
if (field.getDeType() == 1 && field.getDeExtractType() != 1) {
|
||||
filter.append(" AND FROM_UNIXTIME(cast(")
|
||||
filter.append(" AND FROM_UNIXTIME(CAST(`")
|
||||
.append(field.getOriginName())
|
||||
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||
.append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||
} else {
|
||||
filter.append(" AND ").append(field.getOriginName());
|
||||
filter.append(" AND `").append(field.getOriginName()).append("`");
|
||||
}
|
||||
filter.append(" ")
|
||||
.append(transMysqlFilterTerm(request.getOperator()))
|
||||
@ -370,6 +476,11 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
filter.append("('").append(StringUtils.join(value, "','")).append("')");
|
||||
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
|
||||
filter.append("'%").append(value.get(0)).append("%'");
|
||||
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) {
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0))));
|
||||
String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1))));
|
||||
filter.append("'").append(startTime).append("' AND '").append(endTime).append("'");
|
||||
} else {
|
||||
filter.append("'").append(value.get(0)).append("'");
|
||||
}
|
||||
@ -383,4 +494,30 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
}
|
||||
return sql;
|
||||
}
|
||||
|
||||
private String transDateFormat(String dateStyle, String datePattern) {
|
||||
String split = "-";
|
||||
if (StringUtils.equalsIgnoreCase(datePattern, "date_sub")) {
|
||||
split = "-";
|
||||
} else if (StringUtils.equalsIgnoreCase(datePattern, "date_split")) {
|
||||
split = "/";
|
||||
}
|
||||
|
||||
switch (dateStyle) {
|
||||
case "y":
|
||||
return "%Y";
|
||||
case "y_M":
|
||||
return "%Y" + split + "%m";
|
||||
case "y_M_d":
|
||||
return "%Y" + split + "%m" + split + "%d";
|
||||
case "H_m_s":
|
||||
return "%H:%i:%S";
|
||||
case "y_M_d_H_m":
|
||||
return "%Y" + split + "%m" + split + "%d" + " %H:%i";
|
||||
case "y_M_d_H_m_s":
|
||||
return "%Y" + split + "%m" + split + "%d" + " %H:%i:%S";
|
||||
default:
|
||||
return "%Y-%m-%d %H:%i:%S";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -747,8 +747,8 @@ export default {
|
||||
chart_funnel: 'Funnel',
|
||||
chart_radar: 'Radar',
|
||||
chart_gauge: 'Gauge',
|
||||
dateStyle: '日期顯示',
|
||||
datePattern: '日期格式',
|
||||
dateStyle: 'Date Style',
|
||||
datePattern: 'Date Format',
|
||||
y: 'Year',
|
||||
y_M: 'Year Month',
|
||||
y_M_d: 'Year Month Day',
|
||||
@ -788,7 +788,9 @@ export default {
|
||||
label_fontsize: 'Label Fontsize',
|
||||
split_line: 'Split Line',
|
||||
split_color: 'Split Color',
|
||||
shadow: 'Shadow'
|
||||
shadow: 'Shadow',
|
||||
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',
|
||||
|
@ -788,7 +788,9 @@ export default {
|
||||
label_fontsize: '標簽大小',
|
||||
split_line: '分割線',
|
||||
split_color: '分割顏色',
|
||||
shadow: '陰影'
|
||||
shadow: '陰影',
|
||||
condition: '過濾值',
|
||||
filter_value_can_null: '過濾值不能為空'
|
||||
},
|
||||
dataset: {
|
||||
sheet_warn: '有多個sheet頁面,默認抽取第一個',
|
||||
|
@ -788,7 +788,9 @@ export default {
|
||||
label_fontsize: '标签大小',
|
||||
split_line: '分割线',
|
||||
split_color: '分割颜色',
|
||||
shadow: '阴影'
|
||||
shadow: '阴影',
|
||||
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)" />
|
||||
|
@ -878,6 +878,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()
|
||||
@ -891,6 +902,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()
|
||||
@ -914,6 +936,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)
|
||||
|
Loading…
Reference in New Issue
Block a user