refactor(headless): 优化维度值映射处理逻辑并添加查询响应中的代理ID字段
Some checks failed
supersonic CentOS CI / build (21) (push) Has been cancelled
supersonic mac CI / build (21) (push) Has been cancelled
supersonic ubuntu CI / build (21) (push) Has been cancelled
supersonic windows CI / build (21) (push) Has been cancelled

- 简化了维度值映射列表的删除操作代码结构
- 移除了不必要的空行以提高代码可读性
- 在查询响应对象中添加了agentId字段
- 优化了流式处理的链式调用方式
- 调整了数据集服务查询方法的参数构建方式
This commit is contained in:
jerryjzhang
2026-04-01 14:24:31 +08:00
parent 507af43b73
commit 8a4bccab10
3 changed files with 15 additions and 17 deletions

View File

@@ -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;

View File

@@ -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));
// 收集需要删除的 valuesalias 为空的)
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;

View File

@@ -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) {