[chat](fix) fix system default metric fetch wrong datasourceBizName (#98)

This commit is contained in:
daikon
2023-09-19 09:11:01 +08:00
committed by GitHub
parent a87304b22b
commit 4991efe50c

View File

@@ -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.DAY;
import static com.tencent.supersonic.common.pojo.Constants.UNDERLINE; 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.component.SemanticLayer;
import com.tencent.supersonic.chat.api.pojo.ModelSchema; import com.tencent.supersonic.chat.api.pojo.ModelSchema;
import com.tencent.supersonic.chat.api.pojo.SchemaElement; import com.tencent.supersonic.chat.api.pojo.SchemaElement;
@@ -26,7 +27,8 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; 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.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@@ -174,8 +176,9 @@ public class DictMetaHelper {
//default cnt //default cnt
if (Objects.isNull(chatDefaultConfig) if (Objects.isNull(chatDefaultConfig)
|| CollectionUtils.isEmpty(chatDefaultConfig.getMetrics())) { || CollectionUtils.isEmpty(chatDefaultConfig.getMetrics())) {
String datasourceBizName = dimensionDesc.getBizName(); Long dimId = dimensionDesc.getId();
if (Strings.isNotEmpty(datasourceBizName)) { if (Objects.nonNull(dimId)) {
String datasourceBizName = queryDataSourceByDimId(dimId);
String internalMetricName = String internalMetricName =
datasourceBizName + UNDERLINE + internalMetricNameSuffix; datasourceBizName + UNDERLINE + internalMetricNameSuffix;
defaultMetricDescList.add(new DefaultMetric(internalMetricName, 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<DimensionResp> dimensionPage = semanticLayer.getDimensionPage(pageDimensionCmd);
if (Objects.nonNull(dimensionPage) && !CollectionUtils.isEmpty(dimensionPage.getList())) {
List<DimensionResp> list = dimensionPage.getList();
return list.get(0).getDatasourceBizName();
}
return "";
}
} }