From 4991efe50c0038c2ecce42326aea91e81afac238 Mon Sep 17 00:00:00 2001 From: daikon <1059907724@qq.com> Date: Tue, 19 Sep 2023 09:11:01 +0800 Subject: [PATCH] [chat](fix) fix system default metric fetch wrong datasourceBizName (#98) --- .../supersonic/chat/utils/DictMetaHelper.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/utils/DictMetaHelper.java b/chat/core/src/main/java/com/tencent/supersonic/chat/utils/DictMetaHelper.java index 6c3436790..b685d25ff 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/utils/DictMetaHelper.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/utils/DictMetaHelper.java @@ -3,6 +3,7 @@ package com.tencent.supersonic.chat.utils; import static com.tencent.supersonic.common.pojo.Constants.DAY; import static com.tencent.supersonic.common.pojo.Constants.UNDERLINE; +import com.github.pagehelper.PageInfo; import com.tencent.supersonic.chat.api.component.SemanticLayer; import com.tencent.supersonic.chat.api.pojo.ModelSchema; import com.tencent.supersonic.chat.api.pojo.SchemaElement; @@ -26,7 +27,8 @@ import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; -import org.apache.logging.log4j.util.Strings; +import com.tencent.supersonic.semantic.api.model.request.PageDimensionReq; +import com.tencent.supersonic.semantic.api.model.response.DimensionResp; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -174,8 +176,9 @@ public class DictMetaHelper { //default cnt if (Objects.isNull(chatDefaultConfig) || CollectionUtils.isEmpty(chatDefaultConfig.getMetrics())) { - String datasourceBizName = dimensionDesc.getBizName(); - if (Strings.isNotEmpty(datasourceBizName)) { + Long dimId = dimensionDesc.getId(); + if (Objects.nonNull(dimId)) { + String datasourceBizName = queryDataSourceByDimId(dimId); String internalMetricName = datasourceBizName + UNDERLINE + internalMetricNameSuffix; defaultMetricDescList.add(new DefaultMetric(internalMetricName, @@ -215,4 +218,15 @@ public class DictMetaHelper { } } } + + private String queryDataSourceByDimId(Long id) { + PageDimensionReq pageDimensionCmd = new PageDimensionReq(); + pageDimensionCmd.setId(id.toString()); + PageInfo dimensionPage = semanticLayer.getDimensionPage(pageDimensionCmd); + if (Objects.nonNull(dimensionPage) && !CollectionUtils.isEmpty(dimensionPage.getList())) { + List list = dimensionPage.getList(); + return list.get(0).getDatasourceBizName(); + } + return ""; + } }