(improvement)(chat) Rules and large model queries should be queried using s2sql (#334)

This commit is contained in:
lexluo09
2023-11-07 16:23:31 +08:00
committed by GitHub
parent aa6c658a9a
commit 0365886270
37 changed files with 340 additions and 153 deletions

View File

@@ -0,0 +1,40 @@
package com.tencent.supersonic.common.pojo.enums;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public enum TimeDimensionEnum {
DAY("sys_imp_date", "数据日期"),
WEEK("sys_imp_week", "数据日期_周"),
MONTH("sys_imp_month", "数据日期_月");
private String name;
private String chName;
TimeDimensionEnum(String name, String chName) {
this.name = name;
this.chName = chName;
}
public static List<String> getNameList() {
return Arrays.stream(TimeDimensionEnum.values()).map(TimeDimensionEnum::getName).collect(Collectors.toList());
}
public static Set<String> getChNameSet() {
return Arrays.stream(TimeDimensionEnum.values()).map(TimeDimensionEnum::getChName).collect(Collectors.toSet());
}
public String getName() {
return name;
}
public String getChName() {
return chName;
}
}

View File

@@ -15,8 +15,6 @@ import lombok.extern.slf4j.Slf4j;
public class DateUtils {
public static final String DATE_FORMAT = "yyyy-MM-dd";
public static final String DATE_FIELD = "数据日期";
public static final String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static final String FORMAT = "yyyyMMddHHmmss";

View File

@@ -55,15 +55,14 @@ public class SqlFilterUtils {
return filterCols;
}
public String getWhereClause(List<Filter> filters) {
public String getWhereClause(List<Filter> filters, boolean isBizName) {
StringJoiner joiner = new StringJoiner(Constants.AND_UPPER);
if (!CollectionUtils.isEmpty(filters)) {
filters.stream()
.forEach(filter -> {
if (Strings.isNotEmpty(dealFilter(filter))) {
joiner.add(SPACE + dealFilter(filter) + SPACE);
if (Strings.isNotEmpty(dealFilter(filter, isBizName))) {
joiner.add(SPACE + dealFilter(filter, isBizName) + SPACE);
}
});
log.info("getWhereClause, where sql : {}", joiner.toString());
@@ -73,7 +72,12 @@ public class SqlFilterUtils {
return "";
}
public String dealFilter(Filter filter) {
public String getWhereClause(List<Filter> filters) {
return getWhereClause(filters, true);
}
public String dealFilter(Filter filter, boolean isBizName) {
if (Objects.isNull(filter)) {
return "";
}
@@ -82,14 +86,14 @@ public class SqlFilterUtils {
}
StringBuilder condition = new StringBuilder();
if (Filter.Relation.FILTER.equals(filter.getRelation())) {
return dealSingleFilter(filter);
return dealSingleFilter(filter, isBizName);
}
List<Filter> children = filter.getChildren();
condition.append(PARENTHESES_START);
StringJoiner joiner = new StringJoiner(SPACE + filter.getRelation().name() + SPACE);
for (Filter child : children) {
joiner.add(dealFilter(child));
joiner.add(dealFilter(child, isBizName));
}
condition.append(joiner.toString());
condition.append(PARENTHESES_END);
@@ -97,8 +101,11 @@ public class SqlFilterUtils {
}
// todo deal metric filter
private String dealSingleFilter(Filter filter) {
private String dealSingleFilter(Filter filter, boolean isBizName) {
String name = filter.getBizName();
if (!isBizName) {
name = filter.getName();
}
Object value = filter.getValue();
FilterOperatorEnum operator = filter.getOperator();