mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 12:37:55 +00:00
(improvement)(headless) Modify the headless module structure to api, core and server (#588)
Co-authored-by: jolunoluo
This commit is contained in:
@@ -23,7 +23,7 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tencent.supersonic</groupId>
|
<groupId>com.tencent.supersonic</groupId>
|
||||||
<artifactId>headless-common</artifactId>
|
<artifactId>headless-api</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|||||||
@@ -4,20 +4,20 @@ import com.github.pagehelper.PageInfo;
|
|||||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||||
import com.tencent.supersonic.chat.api.pojo.ModelSchema;
|
import com.tencent.supersonic.chat.api.pojo.ModelSchema;
|
||||||
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
||||||
import com.tencent.supersonic.headless.common.model.request.PageDimensionReq;
|
import com.tencent.supersonic.headless.common.server.request.PageDimensionReq;
|
||||||
import com.tencent.supersonic.headless.common.model.request.PageMetricReq;
|
import com.tencent.supersonic.headless.common.server.request.PageMetricReq;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DomainResp;
|
import com.tencent.supersonic.headless.common.server.response.DomainResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DimensionResp;
|
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ExplainResp;
|
import com.tencent.supersonic.headless.common.server.response.ExplainResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.MetricResp;
|
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.query.request.ExplainSqlReq;
|
import com.tencent.supersonic.headless.common.core.request.ExplainSqlReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryDimValueReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryDimValueReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryS2SQLReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryMultiStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryMultiStructReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
@@ -77,12 +77,12 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tencent.supersonic</groupId>
|
<groupId>com.tencent.supersonic</groupId>
|
||||||
<artifactId>headless-common</artifactId>
|
<artifactId>headless-api</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tencent.supersonic</groupId>
|
<groupId>com.tencent.supersonic</groupId>
|
||||||
<artifactId>headless-query</artifactId>
|
<artifactId>headless-core</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.tencent.supersonic.chat.config;
|
package com.tencent.supersonic.chat.config;
|
||||||
|
|
||||||
|
|
||||||
import com.tencent.supersonic.headless.common.model.response.DimSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.DimSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.MetricSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.MetricSchemaResp;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|||||||
@@ -9,20 +9,20 @@ import com.tencent.supersonic.common.util.embedding.Retrieval;
|
|||||||
import com.tencent.supersonic.common.util.embedding.RetrieveQuery;
|
import com.tencent.supersonic.common.util.embedding.RetrieveQuery;
|
||||||
import com.tencent.supersonic.common.util.embedding.RetrieveQueryResult;
|
import com.tencent.supersonic.common.util.embedding.RetrieveQueryResult;
|
||||||
import com.tencent.supersonic.common.util.embedding.S2EmbeddingStore;
|
import com.tencent.supersonic.common.util.embedding.S2EmbeddingStore;
|
||||||
|
import com.tencent.supersonic.headless.server.listener.MetaEmbeddingListener;
|
||||||
import com.tencent.supersonic.knowledge.dictionary.EmbeddingResult;
|
import com.tencent.supersonic.knowledge.dictionary.EmbeddingResult;
|
||||||
import com.tencent.supersonic.headless.model.domain.listener.MetaEmbeddingListener;
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* EmbeddingMatchStrategy uses vector database to perform
|
* EmbeddingMatchStrategy uses vector database to perform
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ import com.tencent.supersonic.common.pojo.enums.DataFormatTypeEnum;
|
|||||||
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
||||||
import com.tencent.supersonic.common.util.DateUtils;
|
import com.tencent.supersonic.common.util.DateUtils;
|
||||||
import com.tencent.supersonic.knowledge.service.SchemaService;
|
import com.tencent.supersonic.knowledge.service.SchemaService;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.SchemaItem;
|
import com.tencent.supersonic.headless.common.server.pojo.SchemaItem;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import com.tencent.supersonic.common.util.embedding.Retrieval;
|
|||||||
import com.tencent.supersonic.common.util.embedding.RetrieveQuery;
|
import com.tencent.supersonic.common.util.embedding.RetrieveQuery;
|
||||||
import com.tencent.supersonic.common.util.embedding.RetrieveQueryResult;
|
import com.tencent.supersonic.common.util.embedding.RetrieveQueryResult;
|
||||||
import com.tencent.supersonic.common.util.embedding.S2EmbeddingStore;
|
import com.tencent.supersonic.common.util.embedding.S2EmbeddingStore;
|
||||||
import com.tencent.supersonic.headless.model.domain.listener.MetaEmbeddingListener;
|
import com.tencent.supersonic.headless.server.listener.MetaEmbeddingListener;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|||||||
@@ -15,11 +15,11 @@ import com.tencent.supersonic.common.pojo.Order;
|
|||||||
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
||||||
import com.tencent.supersonic.common.util.ContextUtils;
|
import com.tencent.supersonic.common.util.ContextUtils;
|
||||||
import com.tencent.supersonic.knowledge.service.SchemaService;
|
import com.tencent.supersonic.knowledge.service.SchemaService;
|
||||||
import com.tencent.supersonic.headless.common.model.enums.QueryTypeEnum;
|
import com.tencent.supersonic.headless.common.server.enums.QueryType;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ExplainResp;
|
import com.tencent.supersonic.headless.common.server.response.ExplainResp;
|
||||||
import com.tencent.supersonic.headless.common.query.request.ExplainSqlReq;
|
import com.tencent.supersonic.headless.common.core.request.ExplainSqlReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryS2SQLReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
@@ -48,7 +48,7 @@ public abstract class BaseSemanticQuery implements SemanticQuery, Serializable {
|
|||||||
if (StringUtils.isNotBlank(sqlInfo.getCorrectS2SQL())) {
|
if (StringUtils.isNotBlank(sqlInfo.getCorrectS2SQL())) {
|
||||||
//sql
|
//sql
|
||||||
explainSqlReq = ExplainSqlReq.builder()
|
explainSqlReq = ExplainSqlReq.builder()
|
||||||
.queryTypeEnum(QueryTypeEnum.SQL)
|
.queryTypeEnum(QueryType.SQL)
|
||||||
.queryReq(QueryReqBuilder.buildS2SQLReq(
|
.queryReq(QueryReqBuilder.buildS2SQLReq(
|
||||||
sqlInfo.getCorrectS2SQL(), parseInfo.getModel().getModelIds()
|
sqlInfo.getCorrectS2SQL(), parseInfo.getModel().getModelIds()
|
||||||
))
|
))
|
||||||
@@ -56,7 +56,7 @@ public abstract class BaseSemanticQuery implements SemanticQuery, Serializable {
|
|||||||
} else {
|
} else {
|
||||||
//struct
|
//struct
|
||||||
explainSqlReq = ExplainSqlReq.builder()
|
explainSqlReq = ExplainSqlReq.builder()
|
||||||
.queryTypeEnum(QueryTypeEnum.STRUCT)
|
.queryTypeEnum(QueryType.STRUCT)
|
||||||
.queryReq(QueryReqBuilder.buildStructReq(parseInfo))
|
.queryReq(QueryReqBuilder.buildStructReq(parseInfo))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ import com.tencent.supersonic.common.pojo.QueryColumn;
|
|||||||
import com.tencent.supersonic.common.pojo.enums.QueryType;
|
import com.tencent.supersonic.common.pojo.enums.QueryType;
|
||||||
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
||||||
import com.tencent.supersonic.common.util.ContextUtils;
|
import com.tencent.supersonic.common.util.ContextUtils;
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import com.tencent.supersonic.chat.query.llm.LLMSemanticQuery;
|
|||||||
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
||||||
import com.tencent.supersonic.chat.utils.QueryReqBuilder;
|
import com.tencent.supersonic.chat.utils.QueryReqBuilder;
|
||||||
import com.tencent.supersonic.common.pojo.QueryColumn;
|
import com.tencent.supersonic.common.pojo.QueryColumn;
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryS2SQLReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ import com.tencent.supersonic.common.pojo.ModelCluster;
|
|||||||
import com.tencent.supersonic.common.pojo.QueryColumn;
|
import com.tencent.supersonic.common.pojo.QueryColumn;
|
||||||
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
||||||
import com.tencent.supersonic.common.util.ContextUtils;
|
import com.tencent.supersonic.common.util.ContextUtils;
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryMultiStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryMultiStructReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import com.tencent.supersonic.chat.api.pojo.response.QueryResult;
|
|||||||
import com.tencent.supersonic.common.pojo.enums.FilterType;
|
import com.tencent.supersonic.common.pojo.enums.FilterType;
|
||||||
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
||||||
import com.tencent.supersonic.common.pojo.Filter;
|
import com.tencent.supersonic.common.pojo.Filter;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryMultiStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryMultiStructReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import com.tencent.supersonic.chat.service.ConfigService;
|
|||||||
import com.tencent.supersonic.chat.service.SemanticService;
|
import com.tencent.supersonic.chat.service.SemanticService;
|
||||||
import com.tencent.supersonic.common.pojo.DateConf;
|
import com.tencent.supersonic.common.pojo.DateConf;
|
||||||
import com.tencent.supersonic.common.util.ContextUtils;
|
import com.tencent.supersonic.common.util.ContextUtils;
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import com.tencent.supersonic.chat.api.pojo.response.QueryResult;
|
|||||||
import com.tencent.supersonic.common.pojo.Filter;
|
import com.tencent.supersonic.common.pojo.Filter;
|
||||||
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
||||||
import com.tencent.supersonic.common.pojo.enums.FilterType;
|
import com.tencent.supersonic.common.pojo.enums.FilterType;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryMultiStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryMultiStructReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -12,12 +12,12 @@ import com.tencent.supersonic.chat.api.pojo.response.ChatConfigRichResp;
|
|||||||
import com.tencent.supersonic.chat.service.ConfigService;
|
import com.tencent.supersonic.chat.service.ConfigService;
|
||||||
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
||||||
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
||||||
import com.tencent.supersonic.headless.common.model.request.PageDimensionReq;
|
import com.tencent.supersonic.headless.common.server.request.PageDimensionReq;
|
||||||
import com.tencent.supersonic.headless.common.model.request.PageMetricReq;
|
import com.tencent.supersonic.headless.common.server.request.PageMetricReq;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DimensionResp;
|
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DomainResp;
|
import com.tencent.supersonic.headless.common.server.response.DomainResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.MetricResp;
|
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ import com.tencent.supersonic.common.pojo.enums.QueryType;
|
|||||||
import com.tencent.supersonic.common.pojo.enums.RatioOverType;
|
import com.tencent.supersonic.common.pojo.enums.RatioOverType;
|
||||||
import com.tencent.supersonic.common.util.ContextUtils;
|
import com.tencent.supersonic.common.util.ContextUtils;
|
||||||
import com.tencent.supersonic.common.util.DateUtils;
|
import com.tencent.supersonic.common.util.DateUtils;
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import com.tencent.supersonic.knowledge.service.SchemaService;
|
import com.tencent.supersonic.knowledge.service.SchemaService;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.time.DayOfWeek;
|
import java.time.DayOfWeek;
|
||||||
|
|||||||
@@ -31,12 +31,12 @@ import com.tencent.supersonic.chat.utils.ChatConfigHelper;
|
|||||||
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
||||||
import com.tencent.supersonic.chat.utils.VisibilityEvent;
|
import com.tencent.supersonic.chat.utils.VisibilityEvent;
|
||||||
import com.tencent.supersonic.common.util.JsonUtil;
|
import com.tencent.supersonic.common.util.JsonUtil;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.SchemaItem;
|
import com.tencent.supersonic.headless.common.server.pojo.SchemaItem;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DimensionResp;
|
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.MetricResp;
|
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.model.domain.DimensionService;
|
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.model.domain.MetricService;
|
import com.tencent.supersonic.headless.server.service.DimensionService;
|
||||||
import com.tencent.supersonic.headless.model.domain.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.server.service.MetricService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import com.tencent.supersonic.chat.service.PluginService;
|
|||||||
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
||||||
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
||||||
import com.tencent.supersonic.common.util.JsonUtil;
|
import com.tencent.supersonic.common.util.JsonUtil;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ import com.tencent.supersonic.knowledge.dictionary.MultiCustomDictionary;
|
|||||||
import com.tencent.supersonic.knowledge.service.SearchService;
|
import com.tencent.supersonic.knowledge.service.SearchService;
|
||||||
import com.tencent.supersonic.knowledge.utils.HanlpHelper;
|
import com.tencent.supersonic.knowledge.utils.HanlpHelper;
|
||||||
import com.tencent.supersonic.knowledge.utils.NatureHelper;
|
import com.tencent.supersonic.knowledge.utils.NatureHelper;
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.sf.jsqlparser.expression.Expression;
|
import net.sf.jsqlparser.expression.Expression;
|
||||||
import net.sf.jsqlparser.expression.LongValue;
|
import net.sf.jsqlparser.expression.LongValue;
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import com.tencent.supersonic.chat.persistence.dataobject.DimValueDO;
|
|||||||
import com.tencent.supersonic.chat.service.ConfigService;
|
import com.tencent.supersonic.chat.service.ConfigService;
|
||||||
import com.tencent.supersonic.knowledge.dictionary.DictUpdateMode;
|
import com.tencent.supersonic.knowledge.dictionary.DictUpdateMode;
|
||||||
import com.tencent.supersonic.knowledge.dictionary.DimValue2DictCommand;
|
import com.tencent.supersonic.knowledge.dictionary.DimValue2DictCommand;
|
||||||
import com.tencent.supersonic.headless.common.model.request.PageDimensionReq;
|
import com.tencent.supersonic.headless.common.server.request.PageDimensionReq;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DimensionResp;
|
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ import com.tencent.supersonic.common.pojo.Order;
|
|||||||
import com.tencent.supersonic.common.pojo.QueryColumn;
|
import com.tencent.supersonic.common.pojo.QueryColumn;
|
||||||
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
||||||
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ import com.tencent.supersonic.common.pojo.enums.QueryType;
|
|||||||
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
||||||
import com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum;
|
import com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum;
|
||||||
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryMultiStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryMultiStructReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryS2SQLReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.logging.log4j.util.Strings;
|
import org.apache.logging.log4j.util.Strings;
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
package com.tencent.supersonic.chat.test.context;
|
package com.tencent.supersonic.chat.test.context;
|
||||||
|
|
||||||
import com.tencent.supersonic.chat.persistence.repository.impl.ChatContextRepositoryImpl;
|
|
||||||
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
|
||||||
import com.tencent.supersonic.chat.persistence.mapper.ChatContextMapper;
|
import com.tencent.supersonic.chat.persistence.mapper.ChatContextMapper;
|
||||||
import com.tencent.supersonic.knowledge.semantic.RemoteSemanticInterpreter;
|
import com.tencent.supersonic.chat.persistence.repository.impl.ChatContextRepositoryImpl;
|
||||||
import com.tencent.supersonic.chat.test.ChatBizLauncher;
|
import com.tencent.supersonic.chat.test.ChatBizLauncher;
|
||||||
import com.tencent.supersonic.headless.model.domain.DimensionService;
|
import com.tencent.supersonic.chat.utils.ComponentFactory;
|
||||||
import com.tencent.supersonic.headless.model.domain.MetricService;
|
import com.tencent.supersonic.headless.core.service.QueryService;
|
||||||
import com.tencent.supersonic.headless.model.domain.ModelService;
|
import com.tencent.supersonic.headless.server.service.DimensionService;
|
||||||
import com.tencent.supersonic.headless.query.service.QueryService;
|
import com.tencent.supersonic.headless.server.service.MetricService;
|
||||||
|
import com.tencent.supersonic.headless.server.service.ModelService;
|
||||||
|
import com.tencent.supersonic.knowledge.semantic.RemoteSemanticInterpreter;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
package com.tencent.supersonic.chat.test.context;
|
package com.tencent.supersonic.chat.test.context;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
|
||||||
import static org.mockito.ArgumentMatchers.anyLong;
|
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
import com.tencent.supersonic.chat.api.pojo.ChatContext;
|
import com.tencent.supersonic.chat.api.pojo.ChatContext;
|
||||||
import com.tencent.supersonic.chat.api.pojo.response.ChatConfigResp;
|
import com.tencent.supersonic.chat.api.pojo.response.ChatConfigResp;
|
||||||
import com.tencent.supersonic.chat.config.DefaultMetric;
|
import com.tencent.supersonic.chat.config.DefaultMetric;
|
||||||
@@ -15,24 +11,29 @@ import com.tencent.supersonic.chat.service.ChatService;
|
|||||||
import com.tencent.supersonic.chat.service.QueryService;
|
import com.tencent.supersonic.chat.service.QueryService;
|
||||||
import com.tencent.supersonic.chat.service.impl.ConfigServiceImpl;
|
import com.tencent.supersonic.chat.service.impl.ConfigServiceImpl;
|
||||||
import com.tencent.supersonic.common.pojo.Constants;
|
import com.tencent.supersonic.common.pojo.Constants;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DimSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.DimSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DimensionResp;
|
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.MetricResp;
|
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.MetricSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.MetricSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||||
import com.tencent.supersonic.headless.model.domain.DimensionService;
|
import com.tencent.supersonic.headless.server.pojo.DimensionFilter;
|
||||||
import com.tencent.supersonic.headless.model.domain.MetricService;
|
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.model.domain.ModelService;
|
import com.tencent.supersonic.headless.server.service.DimensionService;
|
||||||
import com.tencent.supersonic.headless.model.domain.pojo.DimensionFilter;
|
import com.tencent.supersonic.headless.server.service.MetricService;
|
||||||
import com.tencent.supersonic.headless.model.domain.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.server.service.ModelService;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyLong;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class MockBeansConfiguration {
|
public class MockBeansConfiguration {
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
|||||||
import com.tencent.supersonic.common.util.ContextUtils;
|
import com.tencent.supersonic.common.util.ContextUtils;
|
||||||
import com.tencent.supersonic.common.util.DateModeUtils;
|
import com.tencent.supersonic.common.util.DateModeUtils;
|
||||||
import com.tencent.supersonic.common.util.SqlFilterUtils;
|
import com.tencent.supersonic.common.util.SqlFilterUtils;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryS2SQLReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -100,7 +100,7 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tencent.supersonic</groupId>
|
<groupId>com.tencent.supersonic</groupId>
|
||||||
<artifactId>headless-query</artifactId>
|
<artifactId>headless-core</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import com.google.common.cache.Cache;
|
|||||||
import com.google.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
import com.tencent.supersonic.chat.api.component.SemanticInterpreter;
|
import com.tencent.supersonic.chat.api.component.SemanticInterpreter;
|
||||||
import com.tencent.supersonic.chat.api.pojo.ModelSchema;
|
import com.tencent.supersonic.chat.api.pojo.ModelSchema;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|||||||
@@ -5,25 +5,25 @@ import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
|||||||
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
||||||
import com.tencent.supersonic.common.util.ContextUtils;
|
import com.tencent.supersonic.common.util.ContextUtils;
|
||||||
import com.tencent.supersonic.common.util.JsonUtil;
|
import com.tencent.supersonic.common.util.JsonUtil;
|
||||||
import com.tencent.supersonic.headless.common.model.request.ModelSchemaFilterReq;
|
import com.tencent.supersonic.headless.common.server.request.ModelSchemaFilterReq;
|
||||||
import com.tencent.supersonic.headless.common.model.request.PageDimensionReq;
|
import com.tencent.supersonic.headless.common.server.request.PageDimensionReq;
|
||||||
import com.tencent.supersonic.headless.common.model.request.PageMetricReq;
|
import com.tencent.supersonic.headless.common.server.request.PageMetricReq;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DimensionResp;
|
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DomainResp;
|
import com.tencent.supersonic.headless.common.server.response.DomainResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ExplainResp;
|
import com.tencent.supersonic.headless.common.server.response.ExplainResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.MetricResp;
|
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.query.request.ExplainSqlReq;
|
import com.tencent.supersonic.headless.common.core.request.ExplainSqlReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryDimValueReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryDimValueReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryMultiStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryMultiStructReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryS2SQLReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import com.tencent.supersonic.headless.model.domain.DimensionService;
|
import com.tencent.supersonic.headless.core.service.QueryService;
|
||||||
import com.tencent.supersonic.headless.model.domain.MetricService;
|
import com.tencent.supersonic.headless.core.service.SchemaService;
|
||||||
import com.tencent.supersonic.headless.query.service.QueryService;
|
import com.tencent.supersonic.headless.server.service.DimensionService;
|
||||||
import com.tencent.supersonic.headless.query.service.SchemaService;
|
import com.tencent.supersonic.headless.server.service.MetricService;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|||||||
@@ -6,12 +6,12 @@ import com.tencent.supersonic.chat.api.pojo.RelatedSchemaElement;
|
|||||||
import com.tencent.supersonic.chat.api.pojo.SchemaElement;
|
import com.tencent.supersonic.chat.api.pojo.SchemaElement;
|
||||||
import com.tencent.supersonic.chat.api.pojo.SchemaElementType;
|
import com.tencent.supersonic.chat.api.pojo.SchemaElementType;
|
||||||
import com.tencent.supersonic.chat.api.pojo.SchemaValueMap;
|
import com.tencent.supersonic.chat.api.pojo.SchemaValueMap;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.DimValueMap;
|
import com.tencent.supersonic.headless.common.server.pojo.DimValueMap;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.RelateDimension;
|
import com.tencent.supersonic.headless.common.server.pojo.RelateDimension;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.SchemaItem;
|
import com.tencent.supersonic.headless.common.server.pojo.SchemaItem;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DimSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.DimSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.MetricSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.MetricSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||||
import org.apache.logging.log4j.util.Strings;
|
import org.apache.logging.log4j.util.Strings;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|||||||
@@ -19,21 +19,21 @@ import com.tencent.supersonic.common.util.ContextUtils;
|
|||||||
import com.tencent.supersonic.common.util.JsonUtil;
|
import com.tencent.supersonic.common.util.JsonUtil;
|
||||||
import com.tencent.supersonic.common.util.S2ThreadContext;
|
import com.tencent.supersonic.common.util.S2ThreadContext;
|
||||||
import com.tencent.supersonic.common.util.ThreadContext;
|
import com.tencent.supersonic.common.util.ThreadContext;
|
||||||
import com.tencent.supersonic.headless.common.model.request.ModelSchemaFilterReq;
|
import com.tencent.supersonic.headless.common.server.request.ModelSchemaFilterReq;
|
||||||
import com.tencent.supersonic.headless.common.model.request.PageDimensionReq;
|
import com.tencent.supersonic.headless.common.server.request.PageDimensionReq;
|
||||||
import com.tencent.supersonic.headless.common.model.request.PageMetricReq;
|
import com.tencent.supersonic.headless.common.server.request.PageMetricReq;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DimensionResp;
|
import com.tencent.supersonic.headless.common.server.response.DimensionResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.DomainResp;
|
import com.tencent.supersonic.headless.common.server.response.DomainResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ExplainResp;
|
import com.tencent.supersonic.headless.common.server.response.ExplainResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.MetricResp;
|
import com.tencent.supersonic.headless.common.server.response.MetricResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.ModelSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.ModelSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||||
import com.tencent.supersonic.headless.common.query.request.ExplainSqlReq;
|
import com.tencent.supersonic.headless.common.core.request.ExplainSqlReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryDimValueReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryDimValueReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryMultiStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryMultiStructReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryS2SQLReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryS2SQLReq;
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
import com.tencent.supersonic.headless.common.core.request.QueryStructReq;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|||||||
@@ -2,27 +2,68 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tencent.supersonic</groupId>
|
<groupId>com.tencent.supersonic</groupId>
|
||||||
<artifactId>headless</artifactId>
|
<artifactId>headless</artifactId>
|
||||||
<version>${revision}</version>
|
<version>${revision}</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>headless-api</artifactId>
|
<artifactId>headless-api</artifactId>
|
||||||
|
|
||||||
<properties>
|
|
||||||
<maven.compiler.source>8</maven.compiler.source>
|
|
||||||
<maven.compiler.target>8</maven.compiler.target>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>ru.yandex.clickhouse</groupId>-->
|
||||||
|
<!-- <artifactId>clickhouse-jdbc</artifactId>-->
|
||||||
|
<!-- <version>${clickhouse.jdbc.version}</version>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.clickhouse</groupId>
|
||||||
|
<artifactId>clickhouse-jdbc</artifactId>
|
||||||
|
<version>${clickhouse.jdbc.version}</version>
|
||||||
|
<!-- use uber jar with all dependencies included, change classifier to http for smaller jar -->
|
||||||
|
<classifier>all</classifier>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tencent.supersonic</groupId>
|
<groupId>com.tencent.supersonic</groupId>
|
||||||
<artifactId>headless-query</artifactId>
|
<artifactId>common</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>${lombok.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>jakarta.validation</groupId>
|
||||||
|
<artifactId>jakarta.validation-api</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-core</artifactId>
|
||||||
|
<version>${spring.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>fastjson</artifactId>
|
||||||
|
<version>${fastjson.version}</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-codec</groupId>
|
||||||
|
<artifactId>commons-codec</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
<version>${spring.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.tencent.supersonic</groupId>
|
||||||
|
<artifactId>auth-api</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
package com.tencent.supersonic.headless.api.rest;
|
|
||||||
|
|
||||||
import com.tencent.supersonic.headless.api.service.ApiQueryService;
|
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
|
||||||
import com.tencent.supersonic.headless.common.query.request.MetaQueryApiReq;
|
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryApiReq;
|
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
|
||||||
import com.tencent.supersonic.headless.common.query.response.ApiQueryResultResp;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/api/semantic/apiQuery")
|
|
||||||
@Slf4j
|
|
||||||
public class ApiQueryController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ApiQueryService apiQueryService;
|
|
||||||
|
|
||||||
@PostMapping("/metricDataQueryById")
|
|
||||||
public ApiQueryResultResp metricDataQueryById(@RequestBody QueryApiReq queryApiReq,
|
|
||||||
HttpServletRequest request) throws Exception {
|
|
||||||
return apiQueryService.metricDataQueryById(queryApiReq, request);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/metaQuery")
|
|
||||||
public Object metaQuery(@RequestBody MetaQueryApiReq metaQueryApiReq, HttpServletRequest request) {
|
|
||||||
return apiQueryService.metaQuery(metaQueryApiReq, request);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/dataQueryByStruct")
|
|
||||||
public QueryResultWithSchemaResp dataQueryByStruct(QueryStructReq queryStructReq,
|
|
||||||
HttpServletRequest request) throws Exception {
|
|
||||||
return apiQueryService.dataQueryByStruct(queryStructReq, request);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
package com.tencent.supersonic.headless.api.service;
|
|
||||||
|
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
|
||||||
import com.tencent.supersonic.headless.common.query.request.MetaQueryApiReq;
|
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryApiReq;
|
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
|
||||||
import com.tencent.supersonic.headless.common.query.response.ApiQueryResultResp;
|
|
||||||
import com.tencent.supersonic.headless.api.annotation.ApiHeaderCheck;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
/**
|
|
||||||
* Api service for other apps to query meta info and data
|
|
||||||
*/
|
|
||||||
public interface ApiQueryService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Query the metric data based on the metric id.
|
|
||||||
* The data will be drilled down based on the information configured when applying for the APP.
|
|
||||||
* @param queryApiReq
|
|
||||||
* @param request
|
|
||||||
* @return
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
@ApiHeaderCheck
|
|
||||||
ApiQueryResultResp metricDataQueryById(QueryApiReq queryApiReq, HttpServletRequest request) throws Exception;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Query data based on structure
|
|
||||||
* @param queryStructReq
|
|
||||||
* @param request
|
|
||||||
* @return
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
@ApiHeaderCheck
|
|
||||||
QueryResultWithSchemaResp dataQueryByStruct(QueryStructReq queryStructReq,
|
|
||||||
HttpServletRequest request) throws Exception;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Query the meta information of the metric, dimension and tag
|
|
||||||
* @param metaQueryApiReq
|
|
||||||
* @param request
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@ApiHeaderCheck
|
|
||||||
Object metaQuery(MetaQueryApiReq metaQueryApiReq, HttpServletRequest request);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,177 +0,0 @@
|
|||||||
package com.tencent.supersonic.headless.api.service.impl;
|
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
|
||||||
import com.tencent.supersonic.common.pojo.Aggregator;
|
|
||||||
import com.tencent.supersonic.common.pojo.Constants;
|
|
||||||
import com.tencent.supersonic.common.pojo.DateConf;
|
|
||||||
import com.tencent.supersonic.common.pojo.enums.ApiItemType;
|
|
||||||
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
|
||||||
import com.tencent.supersonic.common.pojo.exception.InvalidArgumentException;
|
|
||||||
import com.tencent.supersonic.headless.api.aspect.ApiHeaderCheckAspect;
|
|
||||||
import com.tencent.supersonic.headless.api.service.ApiQueryService;
|
|
||||||
import com.tencent.supersonic.headless.api.service.AppService;
|
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.Item;
|
|
||||||
import com.tencent.supersonic.headless.common.model.response.AppDetailResp;
|
|
||||||
import com.tencent.supersonic.headless.common.model.response.DimensionResp;
|
|
||||||
import com.tencent.supersonic.headless.common.model.response.MetricResp;
|
|
||||||
import com.tencent.supersonic.headless.common.model.response.QueryResultWithSchemaResp;
|
|
||||||
import com.tencent.supersonic.headless.common.query.pojo.ApiQuerySingleResult;
|
|
||||||
import com.tencent.supersonic.headless.common.query.request.MetaQueryApiReq;
|
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryApiReq;
|
|
||||||
import com.tencent.supersonic.headless.common.query.request.QueryStructReq;
|
|
||||||
import com.tencent.supersonic.headless.common.query.response.ApiQueryResultResp;
|
|
||||||
import com.tencent.supersonic.headless.model.domain.DimensionService;
|
|
||||||
import com.tencent.supersonic.headless.model.domain.MetricService;
|
|
||||||
import com.tencent.supersonic.headless.model.domain.pojo.DimensionFilter;
|
|
||||||
import com.tencent.supersonic.headless.model.domain.pojo.MetaFilter;
|
|
||||||
import com.tencent.supersonic.headless.api.annotation.ApiHeaderCheck;
|
|
||||||
import com.tencent.supersonic.headless.query.service.QueryService;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class ApiQueryServiceImpl implements ApiQueryService {
|
|
||||||
|
|
||||||
private static final long result_size = 10000;
|
|
||||||
|
|
||||||
private AppService appService;
|
|
||||||
|
|
||||||
private MetricService metricService;
|
|
||||||
|
|
||||||
private DimensionService dimensionService;
|
|
||||||
|
|
||||||
private QueryService queryService;
|
|
||||||
|
|
||||||
public ApiQueryServiceImpl(AppService appService,
|
|
||||||
MetricService metricService,
|
|
||||||
DimensionService dimensionService,
|
|
||||||
QueryService queryService) {
|
|
||||||
this.appService = appService;
|
|
||||||
this.metricService = metricService;
|
|
||||||
this.dimensionService = dimensionService;
|
|
||||||
this.queryService = queryService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@ApiHeaderCheck
|
|
||||||
public ApiQueryResultResp metricDataQueryById(QueryApiReq queryApiReq,
|
|
||||||
HttpServletRequest request) throws Exception {
|
|
||||||
AppDetailResp appDetailResp = getAppDetailResp(request);
|
|
||||||
authCheck(appDetailResp, queryApiReq.getIds(), ApiItemType.METRIC);
|
|
||||||
List<ApiQuerySingleResult> results = Lists.newArrayList();
|
|
||||||
Map<Long, Item> map = appDetailResp.getConfig().getItems().stream()
|
|
||||||
.collect(Collectors.toMap(Item::getId, i -> i));
|
|
||||||
for (Long id : queryApiReq.getIds()) {
|
|
||||||
Item item = map.get(id);
|
|
||||||
ApiQuerySingleResult apiQuerySingleResult = dataQuery(appDetailResp.getId(),
|
|
||||||
item, queryApiReq.getDateConf());
|
|
||||||
results.add(apiQuerySingleResult);
|
|
||||||
}
|
|
||||||
return ApiQueryResultResp.builder().results(results).build();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@ApiHeaderCheck
|
|
||||||
public QueryResultWithSchemaResp dataQueryByStruct(QueryStructReq queryStructReq,
|
|
||||||
HttpServletRequest request) throws Exception {
|
|
||||||
AppDetailResp appDetailResp = getAppDetailResp(request);
|
|
||||||
structAuthCheck(appDetailResp, queryStructReq);
|
|
||||||
return queryService.queryByStruct(queryStructReq, User.getAppUser(appDetailResp.getId()));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@ApiHeaderCheck
|
|
||||||
public Object metaQuery(MetaQueryApiReq metaQueryApiReq, HttpServletRequest request) {
|
|
||||||
AppDetailResp appDetailResp = getAppDetailResp(request);
|
|
||||||
MetaFilter metaFilter = new MetaFilter();
|
|
||||||
metaFilter.setIds(metaQueryApiReq.getIds());
|
|
||||||
if (ApiItemType.METRIC.equals(metaQueryApiReq.getType())) {
|
|
||||||
authCheck(appDetailResp, metaQueryApiReq.getIds(), ApiItemType.METRIC);
|
|
||||||
return metricService.getMetrics(metaFilter);
|
|
||||||
} else if (ApiItemType.DIMENSION.equals(metaQueryApiReq.getType())) {
|
|
||||||
authCheck(appDetailResp, metaQueryApiReq.getIds(), ApiItemType.DIMENSION);
|
|
||||||
return dimensionService.getDimensions(metaFilter);
|
|
||||||
} else if (ApiItemType.TAG.equals(metaQueryApiReq.getType())) {
|
|
||||||
throw new InvalidArgumentException("标签元数据类型正在支持中");
|
|
||||||
}
|
|
||||||
throw new InvalidArgumentException("不支持的元数据类型:" + metaQueryApiReq.getType());
|
|
||||||
}
|
|
||||||
|
|
||||||
private ApiQuerySingleResult dataQuery(Integer appId, Item item, DateConf dateConf) throws Exception {
|
|
||||||
MetricResp metricResp = metricService.getMetric(item.getId());
|
|
||||||
List<Item> items = item.getRelateItems();
|
|
||||||
List<DimensionResp> dimensionResps = Lists.newArrayList();
|
|
||||||
if (!CollectionUtils.isEmpty(items)) {
|
|
||||||
List<Long> ids = items.stream().map(Item::getId).collect(Collectors.toList());
|
|
||||||
DimensionFilter dimensionFilter = new DimensionFilter();
|
|
||||||
dimensionFilter.setIds(ids);
|
|
||||||
dimensionResps = dimensionService.getDimensions(dimensionFilter);
|
|
||||||
}
|
|
||||||
QueryStructReq queryStructReq = buildQueryStructReq(dimensionResps, metricResp, dateConf);
|
|
||||||
QueryResultWithSchemaResp queryResultWithSchemaResp =
|
|
||||||
queryService.queryByStruct(queryStructReq, User.getAppUser(appId));
|
|
||||||
ApiQuerySingleResult apiQuerySingleResult = new ApiQuerySingleResult();
|
|
||||||
apiQuerySingleResult.setItem(item);
|
|
||||||
apiQuerySingleResult.setResult(queryResultWithSchemaResp);
|
|
||||||
return apiQuerySingleResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
private AppDetailResp getAppDetailResp(HttpServletRequest request) {
|
|
||||||
int appId = Integer.parseInt(request.getHeader(ApiHeaderCheckAspect.APPID));
|
|
||||||
return appService.getApp(appId);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void authCheck(AppDetailResp appDetailResp, List<Long> ids, ApiItemType type) {
|
|
||||||
Set<Long> idsInApp = appDetailResp.getConfig().getAllItems().stream()
|
|
||||||
.filter(item -> type.equals(item.getType())).map(Item::getId).collect(Collectors.toSet());
|
|
||||||
if (!idsInApp.containsAll(ids)) {
|
|
||||||
throw new InvalidArgumentException("查询范围超过应用申请范围, 请检查");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void structAuthCheck(AppDetailResp appDetailResp, QueryStructReq queryStructReq) {
|
|
||||||
List<Long> metricIdsToQuery = metricService.getMetrics(new MetaFilter(queryStructReq.getModelIds()))
|
|
||||||
.stream().filter(metricResp -> queryStructReq.getMetrics().contains(metricResp.getBizName()))
|
|
||||||
.map(MetricResp::getId).collect(Collectors.toList());
|
|
||||||
List<Long> dimensionIdsToQuery = dimensionService.getDimensions(new MetaFilter(queryStructReq.getModelIds()))
|
|
||||||
.stream().filter(dimensionResp -> queryStructReq.getGroups().contains(dimensionResp.getBizName()))
|
|
||||||
.map(DimensionResp::getId).collect(Collectors.toList());
|
|
||||||
authCheck(appDetailResp, metricIdsToQuery, ApiItemType.METRIC);
|
|
||||||
authCheck(appDetailResp, dimensionIdsToQuery, ApiItemType.DIMENSION);
|
|
||||||
}
|
|
||||||
|
|
||||||
private QueryStructReq buildQueryStructReq(List<DimensionResp> dimensionResps,
|
|
||||||
MetricResp metricResp, DateConf dateConf) {
|
|
||||||
Set<Long> modelIds = dimensionResps.stream().map(DimensionResp::getModelId).collect(Collectors.toSet());
|
|
||||||
modelIds.add(metricResp.getModelId());
|
|
||||||
QueryStructReq queryStructReq = new QueryStructReq();
|
|
||||||
queryStructReq.setGroups(dimensionResps.stream()
|
|
||||||
.map(DimensionResp::getBizName).collect(Collectors.toList()));
|
|
||||||
queryStructReq.getGroups().add(0, getTimeDimension(dateConf));
|
|
||||||
Aggregator aggregator = new Aggregator();
|
|
||||||
aggregator.setColumn(metricResp.getBizName());
|
|
||||||
queryStructReq.setAggregators(Lists.newArrayList(aggregator));
|
|
||||||
queryStructReq.setDateInfo(dateConf);
|
|
||||||
queryStructReq.setModelIds(modelIds);
|
|
||||||
queryStructReq.setLimit(result_size);
|
|
||||||
return queryStructReq;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getTimeDimension(DateConf dateConf) {
|
|
||||||
if (Constants.MONTH.equals(dateConf.getPeriod())) {
|
|
||||||
return TimeDimensionEnum.MONTH.getName();
|
|
||||||
} else if (Constants.WEEK.equals(dateConf.getPeriod())) {
|
|
||||||
return TimeDimensionEnum.WEEK.getName();
|
|
||||||
} else {
|
|
||||||
return TimeDimensionEnum.DAY.getName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.enums;
|
package com.tencent.supersonic.headless.common.core.enums;
|
||||||
|
|
||||||
public enum AggOption {
|
public enum AggOption {
|
||||||
NATIVE,
|
NATIVE,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.enums;
|
package com.tencent.supersonic.headless.common.core.enums;
|
||||||
|
|
||||||
public enum QueryOptMode {
|
public enum QueryOptMode {
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.enums;
|
package com.tencent.supersonic.headless.common.core.enums;
|
||||||
|
|
||||||
|
|
||||||
public enum QueryTypeBackEnum {
|
public enum QueryTypeBack {
|
||||||
NORMAL("NORMAL", 0),
|
NORMAL("NORMAL", 0),
|
||||||
|
|
||||||
PRE_FLUSH("PRE_FLUSH", 1);
|
PRE_FLUSH("PRE_FLUSH", 1);
|
||||||
@@ -9,13 +9,13 @@ public enum QueryTypeBackEnum {
|
|||||||
private String value;
|
private String value;
|
||||||
private Integer state;
|
private Integer state;
|
||||||
|
|
||||||
QueryTypeBackEnum(String value, Integer state) {
|
QueryTypeBack(String value, Integer state) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
this.state = state;
|
this.state = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static QueryTypeBackEnum of(String src) {
|
public static QueryTypeBack of(String src) {
|
||||||
for (QueryTypeBackEnum operatorEnum : QueryTypeBackEnum.values()) {
|
for (QueryTypeBack operatorEnum : QueryTypeBack.values()) {
|
||||||
if (src.toUpperCase().contains(operatorEnum.value)) {
|
if (src.toUpperCase().contains(operatorEnum.value)) {
|
||||||
return operatorEnum;
|
return operatorEnum;
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.pojo;
|
package com.tencent.supersonic.headless.common.core.pojo;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.pojo;
|
package com.tencent.supersonic.headless.common.core.pojo;
|
||||||
|
|
||||||
import com.tencent.supersonic.headless.common.query.enums.AggOption;
|
import com.tencent.supersonic.headless.common.core.enums.AggOption;
|
||||||
import java.util.List;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class MetricTable {
|
public class MetricTable {
|
||||||
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.pojo;
|
package com.tencent.supersonic.headless.common.core.pojo;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class Param {
|
public class Param {
|
||||||
|
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.tencent.supersonic.headless.common.core.pojo;
|
||||||
|
|
||||||
|
|
||||||
|
import com.tencent.supersonic.headless.common.server.pojo.Item;
|
||||||
|
import com.tencent.supersonic.headless.common.server.response.QueryResultWithSchemaResp;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SingleItemQueryResult {
|
||||||
|
|
||||||
|
private Item item;
|
||||||
|
|
||||||
|
private QueryResultWithSchemaResp result;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import com.tencent.supersonic.common.pojo.DateConf;
|
import com.tencent.supersonic.common.pojo.DateConf;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import com.tencent.supersonic.headless.common.model.enums.QueryTypeEnum;
|
import com.tencent.supersonic.headless.common.server.enums.QueryType;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -14,7 +14,7 @@ import lombok.ToString;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class ExplainSqlReq<T> {
|
public class ExplainSqlReq<T> {
|
||||||
|
|
||||||
private QueryTypeEnum queryTypeEnum;
|
private QueryType queryTypeEnum;
|
||||||
|
|
||||||
private T queryReq;
|
private T queryReq;
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import com.tencent.supersonic.common.pojo.enums.ApiItemType;
|
import com.tencent.supersonic.common.pojo.enums.ApiItemType;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import com.tencent.supersonic.common.pojo.ColumnOrder;
|
import com.tencent.supersonic.common.pojo.ColumnOrder;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import com.tencent.supersonic.headless.common.query.pojo.MetricTable;
|
import com.tencent.supersonic.headless.common.core.pojo.MetricTable;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import com.tencent.supersonic.common.pojo.DateConf;
|
import com.tencent.supersonic.common.pojo.DateConf;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import com.tencent.supersonic.common.pojo.DateConf;
|
import com.tencent.supersonic.common.pojo.DateConf;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -7,11 +7,14 @@ import javax.validation.constraints.NotEmpty;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class QueryApiReq {
|
public class QueryItemReq {
|
||||||
|
|
||||||
@NotEmpty(message = "ids不可为空")
|
@NotEmpty(message = "ids不可为空")
|
||||||
private List<Long> ids;
|
private List<Long> ids;
|
||||||
|
|
||||||
private DateConf dateConf = new DateConf();
|
private DateConf dateConf = new DateConf();
|
||||||
|
|
||||||
|
//result size of single id
|
||||||
|
private Long limit;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.request;
|
package com.tencent.supersonic.headless.common.core.request;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.tencent.supersonic.common.pojo.Aggregator;
|
import com.tencent.supersonic.common.pojo.Aggregator;
|
||||||
@@ -12,8 +12,8 @@ import com.tencent.supersonic.common.util.ContextUtils;
|
|||||||
import com.tencent.supersonic.common.util.DateModeUtils;
|
import com.tencent.supersonic.common.util.DateModeUtils;
|
||||||
import com.tencent.supersonic.common.util.SqlFilterUtils;
|
import com.tencent.supersonic.common.util.SqlFilterUtils;
|
||||||
import com.tencent.supersonic.common.util.jsqlparser.SqlParserAddHelper;
|
import com.tencent.supersonic.common.util.jsqlparser.SqlParserAddHelper;
|
||||||
import com.tencent.supersonic.headless.common.query.pojo.Cache;
|
import com.tencent.supersonic.headless.common.core.pojo.Cache;
|
||||||
import com.tencent.supersonic.headless.common.query.pojo.Param;
|
import com.tencent.supersonic.headless.common.core.pojo.Param;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.sf.jsqlparser.JSQLParserException;
|
import net.sf.jsqlparser.JSQLParserException;
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.tencent.supersonic.headless.common.core.response;
|
||||||
|
|
||||||
|
import com.tencent.supersonic.headless.common.core.pojo.SingleItemQueryResult;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
public class ItemQueryResultResp {
|
||||||
|
|
||||||
|
private List<SingleItemQueryResult> results;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.query.response;
|
package com.tencent.supersonic.headless.common.core.response;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.response;
|
package com.tencent.supersonic.headless.common.core.response;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.enums;
|
package com.tencent.supersonic.headless.common.server.enums;
|
||||||
|
|
||||||
public enum AppStatusEnum {
|
public enum AppStatus {
|
||||||
|
|
||||||
INIT(0),
|
INIT(0),
|
||||||
ONLINE(1),
|
ONLINE(1),
|
||||||
@@ -10,7 +10,7 @@ public enum AppStatusEnum {
|
|||||||
|
|
||||||
private Integer code;
|
private Integer code;
|
||||||
|
|
||||||
AppStatusEnum(Integer code) {
|
AppStatus(Integer code) {
|
||||||
this.code = code;
|
this.code = code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -18,12 +18,12 @@ public enum AppStatusEnum {
|
|||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AppStatusEnum fromCode(Integer code) {
|
public static AppStatus fromCode(Integer code) {
|
||||||
for (AppStatusEnum appStatusEnum : AppStatusEnum.values()) {
|
for (AppStatus appStatusEnum : AppStatus.values()) {
|
||||||
if (appStatusEnum.getCode().equals(code)) {
|
if (appStatusEnum.getCode().equals(code)) {
|
||||||
return appStatusEnum;
|
return appStatusEnum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return AppStatusEnum.UNKNOWN;
|
return AppStatus.UNKNOWN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.enums;
|
package com.tencent.supersonic.headless.common.server.enums;
|
||||||
|
|
||||||
|
|
||||||
import com.tencent.supersonic.common.pojo.Constants;
|
import com.tencent.supersonic.common.pojo.Constants;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public enum DataTypeEnum {
|
public enum DataType {
|
||||||
|
|
||||||
MYSQL("mysql", "mysql", "com.mysql.cj.jdbc.Driver", "`", "`", "'", "'"),
|
MYSQL("mysql", "mysql", "com.mysql.cj.jdbc.Driver", "`", "`", "'", "'"),
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ public enum DataTypeEnum {
|
|||||||
private String aliasPrefix;
|
private String aliasPrefix;
|
||||||
private String aliasSuffix;
|
private String aliasSuffix;
|
||||||
|
|
||||||
DataTypeEnum(String feature, String desc, String driver, String keywordPrefix, String keywordSuffix,
|
DataType(String feature, String desc, String driver, String keywordPrefix, String keywordSuffix,
|
||||||
String aliasPrefix, String aliasSuffix) {
|
String aliasPrefix, String aliasSuffix) {
|
||||||
this.feature = feature;
|
this.feature = feature;
|
||||||
this.desc = desc;
|
this.desc = desc;
|
||||||
@@ -61,9 +61,9 @@ public enum DataTypeEnum {
|
|||||||
this.aliasSuffix = aliasSuffix;
|
this.aliasSuffix = aliasSuffix;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DataTypeEnum urlOf(String jdbcUrl) throws RuntimeException {
|
public static DataType urlOf(String jdbcUrl) throws RuntimeException {
|
||||||
String url = jdbcUrl.toLowerCase().trim();
|
String url = jdbcUrl.toLowerCase().trim();
|
||||||
for (DataTypeEnum dataTypeEnum : values()) {
|
for (DataType dataTypeEnum : values()) {
|
||||||
if (url.startsWith(String.format(Constants.JDBC_PREFIX_FORMATTER, dataTypeEnum.feature))) {
|
if (url.startsWith(String.format(Constants.JDBC_PREFIX_FORMATTER, dataTypeEnum.feature))) {
|
||||||
return dataTypeEnum;
|
return dataTypeEnum;
|
||||||
}
|
}
|
||||||
@@ -73,7 +73,7 @@ public enum DataTypeEnum {
|
|||||||
|
|
||||||
public static Set<String> getAllSupportedDatasourceNameSet() {
|
public static Set<String> getAllSupportedDatasourceNameSet() {
|
||||||
Set<String> datasourceSet = new HashSet<>();
|
Set<String> datasourceSet = new HashSet<>();
|
||||||
for (DataTypeEnum datasource : values()) {
|
for (DataType datasource : values()) {
|
||||||
datasourceSet.add(datasource.getFeature());
|
datasourceSet.add(datasource.getFeature());
|
||||||
}
|
}
|
||||||
return datasourceSet;
|
return datasourceSet;
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.tencent.supersonic.headless.common.server.enums;
|
||||||
|
|
||||||
|
|
||||||
|
public enum DimensionType {
|
||||||
|
|
||||||
|
categorical,
|
||||||
|
time
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.tencent.supersonic.headless.common.server.enums;
|
||||||
|
|
||||||
|
public enum IdentifyType {
|
||||||
|
|
||||||
|
primary,
|
||||||
|
foreign,
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.tencent.supersonic.headless.common.server.enums;
|
||||||
|
|
||||||
|
|
||||||
|
public enum MetricType {
|
||||||
|
|
||||||
|
ATOMIC,
|
||||||
|
DERIVED
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.enums;
|
package com.tencent.supersonic.headless.common.server.enums;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public enum ModelSourceTypeEnum {
|
public enum ModelSourceType {
|
||||||
FULL,
|
FULL,
|
||||||
PARTITION,
|
PARTITION,
|
||||||
ZIPPER;
|
ZIPPER;
|
||||||
|
|
||||||
public static ModelSourceTypeEnum of(String src) {
|
public static ModelSourceType of(String src) {
|
||||||
for (ModelSourceTypeEnum modelSourceTypeEnum : ModelSourceTypeEnum.values()) {
|
for (ModelSourceType modelSourceTypeEnum : ModelSourceType.values()) {
|
||||||
if (Objects.nonNull(src) && src.equalsIgnoreCase(modelSourceTypeEnum.name())) {
|
if (Objects.nonNull(src) && src.equalsIgnoreCase(modelSourceTypeEnum.name())) {
|
||||||
return modelSourceTypeEnum;
|
return modelSourceTypeEnum;
|
||||||
}
|
}
|
||||||
@@ -16,12 +16,12 @@ public enum ModelSourceTypeEnum {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isZipper(ModelSourceTypeEnum modelSourceTypeEnum) {
|
public static boolean isZipper(ModelSourceType modelSourceTypeEnum) {
|
||||||
return Objects.nonNull(modelSourceTypeEnum) && ZIPPER.equals(modelSourceTypeEnum);
|
return Objects.nonNull(modelSourceTypeEnum) && ZIPPER.equals(modelSourceTypeEnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isZipper(String str) {
|
public static boolean isZipper(String str) {
|
||||||
ModelSourceTypeEnum modelSourceTypeEnum = of(str);
|
ModelSourceType modelSourceTypeEnum = of(str);
|
||||||
return Objects.nonNull(modelSourceTypeEnum) && isZipper(modelSourceTypeEnum);
|
return Objects.nonNull(modelSourceTypeEnum) && isZipper(modelSourceTypeEnum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.enums;
|
package com.tencent.supersonic.headless.common.server.enums;
|
||||||
|
|
||||||
|
|
||||||
public enum QueryTypeEnum {
|
public enum QueryType {
|
||||||
SQL("SQL"),
|
SQL("SQL"),
|
||||||
|
|
||||||
STRUCT("STRUCT");
|
STRUCT("STRUCT");
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
QueryTypeEnum(String value) {
|
QueryType(String value) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static QueryTypeEnum of(String src) {
|
public static QueryType of(String src) {
|
||||||
for (QueryTypeEnum operatorEnum : QueryTypeEnum.values()) {
|
for (QueryType operatorEnum : QueryType.values()) {
|
||||||
if (src.toUpperCase().contains(operatorEnum.value)) {
|
if (src.toUpperCase().contains(operatorEnum.value)) {
|
||||||
return operatorEnum;
|
return operatorEnum;
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.tencent.supersonic.headless.common.server.enums;
|
||||||
|
|
||||||
|
public enum SemanticType {
|
||||||
|
|
||||||
|
CATEGORY,
|
||||||
|
ID,
|
||||||
|
DATE,
|
||||||
|
NUMBER
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import com.tencent.supersonic.common.pojo.Constants;
|
import com.tencent.supersonic.common.pojo.Constants;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.tencent.supersonic.common.pojo.enums.ApiItemType;
|
import com.tencent.supersonic.common.pojo.enums.ApiItemType;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import com.tencent.supersonic.common.pojo.RecordInfo;
|
import com.tencent.supersonic.common.pojo.RecordInfo;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.tencent.supersonic.headless.common.model.enums.DimensionTypeEnum;
|
import com.tencent.supersonic.headless.common.server.enums.DimensionType;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
@@ -37,7 +37,7 @@ public class ModelDetail {
|
|||||||
return Lists.newArrayList();
|
return Lists.newArrayList();
|
||||||
}
|
}
|
||||||
return dimensions.stream()
|
return dimensions.stream()
|
||||||
.filter(dim -> DimensionTypeEnum.time.name().equalsIgnoreCase(dim.getType()))
|
.filter(dim -> DimensionType.time.name().equalsIgnoreCase(dim.getType()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import lombok.Data;
|
|
||||||
import lombok.ToString;
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ToString
|
@ToString
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.pojo;
|
package com.tencent.supersonic.headless.common.server.pojo;
|
||||||
|
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
import com.tencent.supersonic.common.pojo.RecordInfo;
|
import com.tencent.supersonic.common.pojo.RecordInfo;
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.tencent.supersonic.common.pojo.PageBaseReq;
|
import com.tencent.supersonic.common.pojo.PageBaseReq;
|
||||||
import com.tencent.supersonic.headless.common.model.enums.AppStatusEnum;
|
import com.tencent.supersonic.headless.common.server.enums.AppStatus;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ public class AppQueryReq extends PageBaseReq {
|
|||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
private List<AppStatusEnum> appStatus;
|
private List<AppStatus> appStatus;
|
||||||
|
|
||||||
private String createdBy;
|
private String createdBy;
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ public class AppQueryReq extends PageBaseReq {
|
|||||||
if (CollectionUtils.isEmpty(appStatus)) {
|
if (CollectionUtils.isEmpty(appStatus)) {
|
||||||
return Lists.newArrayList();
|
return Lists.newArrayList();
|
||||||
}
|
}
|
||||||
return appStatus.stream().map(AppStatusEnum::getCode).collect(Collectors.toList());
|
return appStatus.stream().map(AppStatus::getCode).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
import com.tencent.supersonic.common.pojo.RecordInfo;
|
import com.tencent.supersonic.common.pojo.RecordInfo;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.AppConfig;
|
import com.tencent.supersonic.headless.common.server.pojo.AppConfig;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.tencent.supersonic.headless.common.model.enums.DataTypeEnum;
|
import com.tencent.supersonic.headless.common.server.enums.DataType;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -46,7 +46,7 @@ public class DatabaseReq {
|
|||||||
} else {
|
} else {
|
||||||
databaseUrl = "/" + database;
|
databaseUrl = "/" + database;
|
||||||
}
|
}
|
||||||
if (type.equalsIgnoreCase(DataTypeEnum.MYSQL.getFeature())) {
|
if (type.equalsIgnoreCase(DataType.MYSQL.getFeature())) {
|
||||||
return String.format("jdbc:%s://%s:%s%s?sessionVariables=sql_mode='IGNORE_SPACE'&allowMultiQueries=true",
|
return String.format("jdbc:%s://%s:%s%s?sessionVariables=sql_mode='IGNORE_SPACE'&allowMultiQueries=true",
|
||||||
type, host, port, databaseUrl);
|
type, host, port, databaseUrl);
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
import com.tencent.supersonic.common.pojo.enums.DataTypeEnums;
|
import com.tencent.supersonic.common.pojo.enums.DataTypeEnums;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.DimValueMap;
|
import com.tencent.supersonic.headless.common.server.pojo.DimValueMap;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.SchemaItem;
|
import com.tencent.supersonic.headless.common.server.pojo.SchemaItem;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
|
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.SchemaItem;
|
import com.tencent.supersonic.headless.common.server.pojo.SchemaItem;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
import com.tencent.supersonic.common.pojo.DataFormat;
|
import com.tencent.supersonic.common.pojo.DataFormat;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.RelateDimension;
|
import com.tencent.supersonic.headless.common.server.pojo.RelateDimension;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.SchemaItem;
|
import com.tencent.supersonic.headless.common.server.pojo.SchemaItem;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
@@ -1,28 +1,28 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
|
|
||||||
import com.tencent.supersonic.headless.common.model.enums.MetricTypeEnum;
|
import com.tencent.supersonic.headless.common.server.enums.MetricType;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.Measure;
|
import com.tencent.supersonic.headless.common.server.pojo.Measure;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.MetricTypeParams;
|
import com.tencent.supersonic.headless.common.server.pojo.MetricTypeParams;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class MetricReq extends MetricBaseReq {
|
public class MetricReq extends MetricBaseReq {
|
||||||
|
|
||||||
private MetricTypeEnum metricType;
|
private MetricType metricType;
|
||||||
|
|
||||||
private MetricTypeParams typeParams;
|
private MetricTypeParams typeParams;
|
||||||
|
|
||||||
public MetricTypeEnum getMetricType() {
|
public MetricType getMetricType() {
|
||||||
if (metricType != null) {
|
if (metricType != null) {
|
||||||
return metricType;
|
return metricType;
|
||||||
}
|
}
|
||||||
List<Measure> measureList = typeParams.getMeasures();
|
List<Measure> measureList = typeParams.getMeasures();
|
||||||
if (measureList.size() == 1 && typeParams.getExpr().trim().equalsIgnoreCase(measureList.get(0).getBizName())) {
|
if (measureList.size() == 1 && typeParams.getExpr().trim().equalsIgnoreCase(measureList.get(0).getBizName())) {
|
||||||
return MetricTypeEnum.ATOMIC;
|
return MetricType.ATOMIC;
|
||||||
} else if (measureList.size() >= 1) {
|
} else if (measureList.size() >= 1) {
|
||||||
return MetricTypeEnum.DERIVED;
|
return MetricType.DERIVED;
|
||||||
}
|
}
|
||||||
throw new RuntimeException("measure can not be none");
|
throw new RuntimeException("measure can not be none");
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.Dim;
|
import com.tencent.supersonic.headless.common.server.pojo.Dim;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.DrillDownDimension;
|
import com.tencent.supersonic.headless.common.server.pojo.DrillDownDimension;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.ModelDetail;
|
import com.tencent.supersonic.headless.common.server.pojo.ModelDetail;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.SchemaItem;
|
import com.tencent.supersonic.headless.common.server.pojo.SchemaItem;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.tencent.supersonic.common.pojo.PageBaseReq;
|
import com.tencent.supersonic.common.pojo.PageBaseReq;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.request;
|
package com.tencent.supersonic.headless.common.server.request;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.response;
|
package com.tencent.supersonic.headless.common.server.response;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.tencent.supersonic.headless.common.model.response;
|
package com.tencent.supersonic.headless.common.server.response;
|
||||||
|
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.tencent.supersonic.common.pojo.RecordInfo;
|
import com.tencent.supersonic.common.pojo.RecordInfo;
|
||||||
import com.tencent.supersonic.headless.common.model.enums.AppStatusEnum;
|
import com.tencent.supersonic.headless.common.server.enums.AppStatus;
|
||||||
import com.tencent.supersonic.headless.common.model.pojo.AppConfig;
|
import com.tencent.supersonic.headless.common.server.pojo.AppConfig;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ public class AppResp extends RecordInfo {
|
|||||||
|
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
private AppStatusEnum appStatus;
|
private AppStatus appStatus;
|
||||||
|
|
||||||
private AppConfig config;
|
private AppConfig config;
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user