diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/request/QueryStructReq.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/request/QueryStructReq.java index d585a39b2..20e7c0dce 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/request/QueryStructReq.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/request/QueryStructReq.java @@ -149,16 +149,20 @@ public class QueryStructReq extends SemanticQueryReq { return sb.toString(); } + public QuerySqlReq convert(QueryStructReq queryStructReq) { + return convert(queryStructReq, false); + } + /** * convert queryStructReq to QueryS2QLReq * * @param queryStructReq * @return */ - public QuerySqlReq convert(QueryStructReq queryStructReq) { + public QuerySqlReq convert(QueryStructReq queryStructReq, boolean isBizName) { String sql = null; try { - sql = buildSql(queryStructReq); + sql = buildSql(queryStructReq, isBizName); } catch (Exception e) { log.error("buildSql error", e); } @@ -170,7 +174,7 @@ public class QueryStructReq extends SemanticQueryReq { return result; } - private String buildSql(QueryStructReq queryStructReq) throws JSQLParserException { + private String buildSql(QueryStructReq queryStructReq, boolean isBizName) throws JSQLParserException { Select select = new Select(); //1.Set the select items (columns) PlainSelect plainSelect = new PlainSelect(); @@ -249,7 +253,7 @@ public class QueryStructReq extends SemanticQueryReq { //6.Set where List dimensionFilters = queryStructReq.getDimensionFilters(); SqlFilterUtils sqlFilterUtils = ContextUtils.getBean(SqlFilterUtils.class); - String whereClause = sqlFilterUtils.getWhereClause(dimensionFilters); + String whereClause = sqlFilterUtils.getWhereClause(dimensionFilters, isBizName); String sql = select.toString(); if (StringUtils.isNotBlank(whereClause)) { diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/QueryController.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/QueryController.java index 6eaf44af0..b2e0f92d7 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/QueryController.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/QueryController.java @@ -22,10 +22,6 @@ import com.tencent.supersonic.headless.api.response.SqlParserResp; import com.tencent.supersonic.headless.core.pojo.QueryStatement; import com.tencent.supersonic.headless.server.service.DownloadService; import com.tencent.supersonic.headless.server.service.QueryService; -import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -34,6 +30,11 @@ 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; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.List; + @RestController @RequestMapping("/api/semantic/query") @Slf4j @@ -58,7 +59,7 @@ public class QueryController { HttpServletRequest request, HttpServletResponse response) throws Exception { User user = UserHolder.findUser(request, response); - QuerySqlReq querySqlReq = queryStructReq.convert(queryStructReq); + QuerySqlReq querySqlReq = queryStructReq.convert(queryStructReq, true); return queryService.queryBySql(querySqlReq, user); } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DownloadServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DownloadServiceImpl.java index 649d51e04..ab39c4155 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DownloadServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DownloadServiceImpl.java @@ -73,7 +73,7 @@ public class DownloadServiceImpl implements DownloadService { String fileName = String.format("%s_%s.xlsx", "supersonic", DateUtils.format(new Date(), DateUtils.FORMAT)); File file = FileUtils.createTmpFile(fileName); try { - QuerySqlReq querySqlReq = downloadStructReq.convert(downloadStructReq); + QuerySqlReq querySqlReq = downloadStructReq.convert(downloadStructReq, true); SemanticQueryResp queryResult = (SemanticQueryResp) queryService.queryBySql(querySqlReq, user); DataDownload dataDownload = buildDataDownload(queryResult, downloadStructReq); EasyExcel.write(file).sheet("Sheet1").head(dataDownload.getHeaders()).doWrite(dataDownload.getData());