mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-14 22:25:19 +00:00
opt queryDictValue (#1787)
This commit is contained in:
@@ -59,8 +59,8 @@ public class DictTaskServiceImpl implements DictTaskService {
|
||||
private final DimensionService dimensionService;
|
||||
|
||||
public DictTaskServiceImpl(DictRepository dictRepository, DictUtils dictConverter,
|
||||
DictUtils dictUtils, FileHandler fileHandler, DictWordService dictWordService,
|
||||
DimensionService dimensionService) {
|
||||
DictUtils dictUtils, FileHandler fileHandler, DictWordService dictWordService,
|
||||
DimensionService dimensionService) {
|
||||
this.dictRepository = dictRepository;
|
||||
this.dictConverter = dictConverter;
|
||||
this.dictUtils = dictUtils;
|
||||
@@ -178,9 +178,28 @@ public class DictTaskServiceImpl implements DictTaskService {
|
||||
PageInfo<DictValueResp> dictValueRespList =
|
||||
fileHandler.queryDictValue(fileName, dictValueReq);
|
||||
PageInfo<DictValueDimResp> result = convert2DictValueDimRespPage(dictValueRespList);
|
||||
fillDimMapInfo(result.getList(), dictValueReq.getItemId());
|
||||
return result;
|
||||
}
|
||||
|
||||
private void fillDimMapInfo(List<DictValueDimResp> list, Long dimId) {
|
||||
DimensionResp dimResp = dimensionService.getDimension(dimId);
|
||||
if (CollectionUtils.isEmpty(dimResp.getDimValueMaps())) {
|
||||
return;
|
||||
}
|
||||
Map<String, DimValueMap> valueAndMap = dimResp.getDimValueMaps().stream()
|
||||
.collect(Collectors.toMap(dim -> dim.getValue(), v -> v, (v1, v2) -> v2));
|
||||
if (CollectionUtils.isEmpty(valueAndMap)) {
|
||||
return;
|
||||
}
|
||||
list.stream().forEach(dictValueDimResp -> {
|
||||
String dimValue = dictValueDimResp.getValue();
|
||||
if (valueAndMap.containsKey(dimValue) && Objects.nonNull(valueAndMap.get(dimValue))) {
|
||||
dictValueDimResp.setAlias(valueAndMap.get(dimValue).getAlias());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private PageInfo<DictValueDimResp> convert2DictValueDimRespPage(
|
||||
PageInfo<DictValueResp> dictValueRespPage) {
|
||||
PageInfo<DictValueDimResp> result = new PageInfo<>();
|
||||
|
||||
@@ -34,6 +34,11 @@ public class DimensionConverter {
|
||||
dimensionDO.setDefaultValues(JSONObject.toJSONString(dimensionReq.getDefaultValues()));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(dimensionReq.getDimValueMaps())) {
|
||||
List<DimValueMap> dimValueMaps = dimensionReq.getDimValueMaps();
|
||||
dimValueMaps.stream().forEach(dimValueMap -> {
|
||||
dimValueMap.setTechName(dimValueMap.getValue());
|
||||
});
|
||||
|
||||
dimensionDO.setDimValueMaps(JSONObject.toJSONString(dimensionReq.getDimValueMaps()));
|
||||
} else {
|
||||
dimensionDO.setDimValueMaps(JSONObject.toJSONString(new ArrayList<>()));
|
||||
@@ -70,7 +75,7 @@ public class DimensionConverter {
|
||||
}
|
||||
|
||||
public static DimensionResp convert2DimensionResp(DimensionDO dimensionDO,
|
||||
Map<Long, ModelResp> modelRespMap) {
|
||||
Map<Long, ModelResp> modelRespMap) {
|
||||
DimensionResp dimensionResp = new DimensionResp();
|
||||
BeanUtils.copyProperties(dimensionDO, dimensionResp);
|
||||
dimensionResp.setModelName(
|
||||
@@ -118,11 +123,11 @@ public class DimensionConverter {
|
||||
}
|
||||
|
||||
public static List<DimensionResp> filterByDataSet(List<DimensionResp> dimensionResps,
|
||||
DataSetResp dataSetResp) {
|
||||
DataSetResp dataSetResp) {
|
||||
return dimensionResps.stream()
|
||||
.filter(dimensionResp -> dataSetResp.dimensionIds().contains(dimensionResp.getId())
|
||||
|| dataSetResp.getAllIncludeAllModels()
|
||||
.contains(dimensionResp.getModelId()))
|
||||
.contains(dimensionResp.getModelId()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user