diff --git a/semantic/api/src/main/java/com/tencent/supersonic/semantic/api/query/request/QueryDimValueReq.java b/semantic/api/src/main/java/com/tencent/supersonic/semantic/api/query/request/QueryDimValueReq.java index b4e4d74bc..363e8417b 100644 --- a/semantic/api/src/main/java/com/tencent/supersonic/semantic/api/query/request/QueryDimValueReq.java +++ b/semantic/api/src/main/java/com/tencent/supersonic/semantic/api/query/request/QueryDimValueReq.java @@ -1,5 +1,6 @@ package com.tencent.supersonic.semantic.api.query.request; +import com.tencent.supersonic.common.pojo.DateConf; import lombok.Data; import lombok.ToString; @@ -10,5 +11,6 @@ public class QueryDimValueReq { private Long modelId; private String dimensionBizName; private String value; + private DateConf dateInfo; } diff --git a/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/application/MetricServiceImpl.java b/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/application/MetricServiceImpl.java index a230f6228..f97b638c3 100644 --- a/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/application/MetricServiceImpl.java +++ b/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/application/MetricServiceImpl.java @@ -235,6 +235,16 @@ public class MetricServiceImpl implements MetricService { return metricResps.get(0); } + @Override + public MetricResp getMetric(Long id, User user) { + MetricResp metricResp = getMetric(id); + if (metricResp == null) { + return null; + } + fillAdminRes(Lists.newArrayList(metricResp), user); + return metricResp; + } + private MetricResp getMetric(Long id) { MetricDO metricDO = metricRepository.getMetricById(id); if (metricDO == null) { diff --git a/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/domain/MetricService.java b/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/domain/MetricService.java index 30b0ed48b..637a86f34 100644 --- a/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/domain/MetricService.java +++ b/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/domain/MetricService.java @@ -30,6 +30,8 @@ public interface MetricService { MetricResp getMetric(Long modelId, String bizName); + MetricResp getMetric(Long id, User user); + List mockAlias(MetricReq metricReq, String mockType, User user); Set getMetricTags(); diff --git a/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/rest/MetricController.java b/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/rest/MetricController.java index 276169fee..315fce2ab 100644 --- a/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/rest/MetricController.java +++ b/semantic/model/src/main/java/com/tencent/supersonic/semantic/model/rest/MetricController.java @@ -92,11 +92,18 @@ public class MetricController { return metricService.queryMetric(pageMetricReq, user); } + @Deprecated @GetMapping("getMetric/{modelId}/{bizName}") public MetricResp getMetric(@PathVariable("modelId") Long modelId, @PathVariable("bizName") String bizName) { return metricService.getMetric(modelId, bizName); } + @GetMapping("getMetric/{id}") + public MetricResp getMetric(@PathVariable("id") Long id, + HttpServletRequest request, HttpServletResponse response) { + User user = UserHolder.findUser(request, response); + return metricService.getMetric(id, user); + } @DeleteMapping("deleteMetric/{id}") public Boolean deleteMetric(@PathVariable("id") Long id, diff --git a/semantic/query/src/main/java/com/tencent/supersonic/semantic/query/service/QueryServiceImpl.java b/semantic/query/src/main/java/com/tencent/supersonic/semantic/query/service/QueryServiceImpl.java index 223cce915..77db0ea67 100644 --- a/semantic/query/src/main/java/com/tencent/supersonic/semantic/query/service/QueryServiceImpl.java +++ b/semantic/query/src/main/java/com/tencent/supersonic/semantic/query/service/QueryServiceImpl.java @@ -375,10 +375,12 @@ public class QueryServiceImpl implements QueryService { } List aggregators = new ArrayList<>(); queryStructReq.setAggregators(aggregators); - - DateConf dateInfo = new DateConf(); - dateInfo.setDateMode(DateConf.DateMode.RECENT); - dateInfo.setUnit(1); + DateConf dateInfo = queryDimValueReq.getDateInfo(); + if (dateInfo == null) { + dateInfo = new DateConf(); + dateInfo.setDateMode(DateConf.DateMode.RECENT); + dateInfo.setUnit(1); + } queryStructReq.setDateInfo(dateInfo); return queryStructReq; }