mirror of
https://github.com/tencentmusic/supersonic.git
synced 2026-04-17 03:34:18 +08:00
refactor(headless): 优化维度值映射处理逻辑并添加查询响应中的代理ID字段
- 简化了维度值映射列表的删除操作代码结构 - 移除了不必要的空行以提高代码可读性 - 在查询响应对象中添加了agentId字段 - 优化了流式处理的链式调用方式 - 调整了数据集服务查询方法的参数构建方式
This commit is contained in:
@@ -13,6 +13,7 @@ public class QueryResp {
|
||||
private Long questionId;
|
||||
private Date createTime;
|
||||
private Long chatId;
|
||||
private Integer agentId;
|
||||
private Integer score;
|
||||
private String feedback;
|
||||
private String queryText;
|
||||
|
||||
@@ -475,40 +475,39 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
if (StringUtils.isNotEmpty(dimensionDO.getDimValueMaps())) {
|
||||
dimValueMapList = JsonUtil.toList(dimensionDO.getDimValueMaps(), DimValueMap.class);
|
||||
}
|
||||
|
||||
|
||||
// 预先处理请求列表,设置默认的 techName
|
||||
for (DimValueMap dimValueMap : req.getDimValueMaps()) {
|
||||
if (StringUtils.isEmpty(dimValueMap.getTechName())) {
|
||||
dimValueMap.setTechName(dimValueMap.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 构建现有数据的 Map,用于快速查找 (value -> DimValueMap)
|
||||
Map<String, DimValueMap> existingMap = dimValueMapList.stream()
|
||||
.collect(Collectors.toMap(DimValueMap::getValue, v -> v, (v1, v2) -> v2));
|
||||
|
||||
|
||||
// 收集需要删除的 values(alias 为空的)
|
||||
Set<String> valuesToDelete = req.getDimValueMaps().stream()
|
||||
.filter(dimValueMap -> CollectionUtils.isEmpty(dimValueMap.getAlias()))
|
||||
.map(DimValueMap::getValue)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
.map(DimValueMap::getValue).collect(Collectors.toSet());
|
||||
|
||||
// 一次性删除所有需要删除的数据
|
||||
if (!valuesToDelete.isEmpty()) {
|
||||
dimValueMapList = dimValueMapList.stream()
|
||||
.filter(map -> !valuesToDelete.contains(map.getValue()))
|
||||
.collect(Collectors.toList());
|
||||
dimValueMapList =
|
||||
dimValueMapList.stream().filter(map -> !valuesToDelete.contains(map.getValue()))
|
||||
.collect(Collectors.toList());
|
||||
// 同时从 existingMap 中移除
|
||||
existingMap.keySet().removeAll(valuesToDelete);
|
||||
}
|
||||
|
||||
|
||||
// 处理新增和更新
|
||||
for (DimValueMap dimValueMap : req.getDimValueMaps()) {
|
||||
// 跳过需要删除的
|
||||
if (CollectionUtils.isEmpty(dimValueMap.getAlias())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
String value = dimValueMap.getValue();
|
||||
if (!existingMap.containsKey(value)) {
|
||||
// 新增
|
||||
@@ -520,7 +519,7 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
existing.setAlias(dimValueMap.getAlias());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dimensionDO.setDimValueMaps(JsonUtil.toString(dimValueMapList));
|
||||
updateById(dimensionDO);
|
||||
return true;
|
||||
|
||||
@@ -413,13 +413,11 @@ public class SchemaServiceImpl implements SchemaService {
|
||||
public List<ItemResp> getDomainDataSetTree() {
|
||||
List<DomainResp> domainResps = domainService.getDomainList();
|
||||
List<ItemResp> itemResps = domainResps.stream().map(domain -> new ItemResp(domain.getId(),
|
||||
domain.getParentId(), domain.getName(), TypeEnums.DOMAIN))
|
||||
.toList();
|
||||
domain.getParentId(), domain.getName(), TypeEnums.DOMAIN)).toList();
|
||||
Map<Long, ItemResp> itemRespMap =
|
||||
itemResps.stream().collect(Collectors.toMap(ItemResp::getId, item -> item));
|
||||
List<DataSetResp> dataSetResps = dataSetService.getDataSetList(MetaFilter.builder()
|
||||
.status(StatusEnum.ONLINE.getCode())
|
||||
.build());
|
||||
List<DataSetResp> dataSetResps = dataSetService
|
||||
.getDataSetList(MetaFilter.builder().status(StatusEnum.ONLINE.getCode()).build());
|
||||
for (DataSetResp dataSetResp : dataSetResps) {
|
||||
ItemResp itemResp = itemRespMap.get(dataSetResp.getDomainId());
|
||||
if (itemResp != null) {
|
||||
|
||||
Reference in New Issue
Block a user