mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 04:27:39 +00:00
[fix]Fix unit test cases.
This commit is contained in:
@@ -124,7 +124,7 @@ public class DimValueAspect {
|
||||
sql = SqlReplaceHelper.replaceValue(sql, filedNameToValueMap);
|
||||
log.debug("correctorSql after replacing:{}", sql);
|
||||
querySqlReq.setSql(sql);
|
||||
querySqlReq.getSqlInfo().setQuerySQL(sql);
|
||||
// querySqlReq.getSqlInfo().setQuerySQL(sql);
|
||||
Map<String, Map<String, String>> techNameToBizName = getTechNameToBizName(dimensions);
|
||||
|
||||
SemanticQueryResp queryResultWithColumns = (SemanticQueryResp) joinPoint.proceed();
|
||||
|
||||
@@ -88,7 +88,7 @@ public class DimensionRepositoryImpl implements DimensionRepository {
|
||||
}
|
||||
if (StringUtils.isNotBlank(dimensionFilter.getKey())) {
|
||||
String key = dimensionFilter.getKey();
|
||||
queryWrapper.and(qw->qw.lambda().like(DimensionDO::getName, key).or()
|
||||
queryWrapper.and(qw -> qw.lambda().like(DimensionDO::getName, key).or()
|
||||
.like(DimensionDO::getBizName, key).or().like(DimensionDO::getDescription, key)
|
||||
.or().like(DimensionDO::getAlias, key).or()
|
||||
.like(DimensionDO::getCreatedBy, key));
|
||||
|
||||
@@ -114,14 +114,9 @@ public class MetricRepositoryImpl implements MetricRepository {
|
||||
}
|
||||
if (StringUtils.isNotBlank(metricFilter.getKey())) {
|
||||
String key = metricFilter.getKey();
|
||||
queryWrapper.lambda()
|
||||
.and(wrapper -> wrapper
|
||||
.like(MetricDO::getName, key)
|
||||
.or().like(MetricDO::getBizName, key)
|
||||
.or().like(MetricDO::getDescription, key)
|
||||
.or().like(MetricDO::getAlias, key)
|
||||
.or().like(MetricDO::getCreatedBy, key)
|
||||
);
|
||||
queryWrapper.lambda().and(wrapper -> wrapper.like(MetricDO::getName, key).or()
|
||||
.like(MetricDO::getBizName, key).or().like(MetricDO::getDescription, key).or()
|
||||
.like(MetricDO::getAlias, key).or().like(MetricDO::getCreatedBy, key));
|
||||
}
|
||||
|
||||
return metricDOMapper.selectList(queryWrapper);
|
||||
|
||||
@@ -51,8 +51,9 @@ public class DataSetController {
|
||||
|
||||
@GetMapping("/getDataSetList")
|
||||
public List<DataSetResp> getDataSetList(@RequestParam("domainId") Long domainId) {
|
||||
List<Integer> statuCodeList = Arrays.asList(StatusEnum.ONLINE.getCode(),StatusEnum.OFFLINE.getCode());
|
||||
return dataSetService.getDataSetList(domainId,statuCodeList);
|
||||
List<Integer> statuCodeList =
|
||||
Arrays.asList(StatusEnum.ONLINE.getCode(), StatusEnum.OFFLINE.getCode());
|
||||
return dataSetService.getDataSetList(domainId, statuCodeList);
|
||||
}
|
||||
|
||||
@DeleteMapping("/{id}")
|
||||
|
||||
@@ -20,7 +20,7 @@ public interface DataSetService {
|
||||
|
||||
List<DataSetResp> getDataSetList(MetaFilter metaFilter);
|
||||
|
||||
List<DataSetResp> getDataSetList(Long domainId ,List<Integer> statuCodesList);
|
||||
List<DataSetResp> getDataSetList(Long domainId, List<Integer> statuCodesList);
|
||||
|
||||
void delete(Long id, User user);
|
||||
|
||||
|
||||
@@ -27,7 +27,8 @@ public interface DimensionService {
|
||||
|
||||
DimensionResp createDimension(DimensionReq dimensionReq, User user) throws Exception;
|
||||
|
||||
void alterDimensionBatch(List<DimensionReq> dimensionReqs, Long modelId, User user) throws Exception;
|
||||
void alterDimensionBatch(List<DimensionReq> dimensionReqs, Long modelId, User user)
|
||||
throws Exception;
|
||||
|
||||
void createDimensionBatch(List<DimensionReq> dimensionReqs, User user) throws Exception;
|
||||
|
||||
|
||||
@@ -55,7 +55,9 @@ public interface ModelService {
|
||||
|
||||
void batchUpdateStatus(MetaBatchReq metaBatchReq, User user);
|
||||
|
||||
void updateModelByDimAndMetric(Long modelId, List<DimensionReq> dimensionReqList, List<MetricReq> metricReqList, User user);
|
||||
void updateModelByDimAndMetric(Long modelId, List<DimensionReq> dimensionReqList,
|
||||
List<MetricReq> metricReqList, User user);
|
||||
|
||||
void deleteModelDetailByDimAndMetric(Long modelId, List<DimensionDO> dimensionReqList, List<MetricDO> metricReqList);
|
||||
void deleteModelDetailByDimAndMetric(Long modelId, List<DimensionDO> dimensionReqList,
|
||||
List<MetricDO> metricReqList);
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ public class DataSetServiceImpl extends ServiceImpl<DataSetDOMapper, DataSetDO>
|
||||
|
||||
@Override
|
||||
public List<DataSetResp> getDataSetList(Long domainId, List<Integer> statuCodesList) {
|
||||
if(domainId==null || CollectionUtils.isEmpty(statuCodesList)){
|
||||
if (domainId == null || CollectionUtils.isEmpty(statuCodesList)) {
|
||||
return List.of();
|
||||
}
|
||||
QueryWrapper<DataSetDO> wrapper = new QueryWrapper<>();
|
||||
|
||||
@@ -67,8 +67,8 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
private ApplicationEventPublisher eventPublisher;
|
||||
|
||||
public DimensionServiceImpl(DimensionRepository dimensionRepository, ModelService modelService,
|
||||
AliasGenerateHelper aliasGenerateHelper, DatabaseService databaseService,
|
||||
ModelRelaService modelRelaService, DataSetService dataSetService) {
|
||||
AliasGenerateHelper aliasGenerateHelper, DatabaseService databaseService,
|
||||
ModelRelaService modelRelaService, DataSetService dataSetService) {
|
||||
this.modelService = modelService;
|
||||
this.dimensionRepository = dimensionRepository;
|
||||
this.aliasGenerateHelper = aliasGenerateHelper;
|
||||
@@ -86,13 +86,15 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
sendEventBatch(Lists.newArrayList(dimensionDO), EventType.ADD);
|
||||
|
||||
// should update modelDetail
|
||||
modelService.updateModelByDimAndMetric(dimensionReq.getModelId(), Lists.newArrayList(dimensionReq), null, user);
|
||||
modelService.updateModelByDimAndMetric(dimensionReq.getModelId(),
|
||||
Lists.newArrayList(dimensionReq), null, user);
|
||||
|
||||
return DimensionConverter.convert2DimensionResp(dimensionDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void alterDimensionBatch(List<DimensionReq> dimensionReqs, Long modelId, User user) throws Exception {
|
||||
public void alterDimensionBatch(List<DimensionReq> dimensionReqs, Long modelId, User user)
|
||||
throws Exception {
|
||||
List<DimensionResp> dimensionResps = getDimensions(modelId);
|
||||
// get all dimension in model, only use bizname, because name can be changed to everything
|
||||
Map<String, DimensionResp> bizNameMap = dimensionResps.stream()
|
||||
@@ -117,7 +119,8 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
});
|
||||
|
||||
// the bizNames from alter dimensions
|
||||
List<String> bizNames = dimensionReqs.stream().map(DimensionReq::getBizName).collect(Collectors.toList());
|
||||
List<String> bizNames =
|
||||
dimensionReqs.stream().map(DimensionReq::getBizName).collect(Collectors.toList());
|
||||
bizNameMap.keySet().forEach(bizNameInDb -> {
|
||||
if (!bizNames.contains(bizNameInDb)) {
|
||||
dimensionToDelete.add(bizNameMap.get(bizNameInDb).getId());
|
||||
@@ -148,7 +151,8 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
.map(DimensionConverter::convert2DimensionDO).collect(Collectors.toList());
|
||||
dimensionRepository.createDimensionBatch(dimensionDOS);
|
||||
// should update modelDetail as well
|
||||
modelService.updateModelByDimAndMetric(dimensionReqs.get(0).getModelId(), dimensionReqs, null, user);
|
||||
modelService.updateModelByDimAndMetric(dimensionReqs.get(0).getModelId(), dimensionReqs,
|
||||
null, user);
|
||||
|
||||
sendEventBatch(dimensionDOS, EventType.ADD);
|
||||
}
|
||||
@@ -162,7 +166,8 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
DimensionConverter.convert(dimensionDO, dimensionReq);
|
||||
dimensionRepository.updateDimension(dimensionDO);
|
||||
// should update modelDetail as well
|
||||
modelService.updateModelByDimAndMetric(dimensionReq.getModelId(), Lists.newArrayList(dimensionReq), null, user);
|
||||
modelService.updateModelByDimAndMetric(dimensionReq.getModelId(),
|
||||
Lists.newArrayList(dimensionReq), null, user);
|
||||
|
||||
if (!oldName.equals(dimensionDO.getName())) {
|
||||
sendEvent(getDataItem(dimensionDO), EventType.UPDATE);
|
||||
@@ -172,10 +177,12 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
@Override
|
||||
public void updateDimensionBatch(List<DimensionReq> dimensionReqList, User user) {
|
||||
checkExist(dimensionReqList);
|
||||
List<DimensionDO> dimensionDOS = dimensionReqList.stream().map(DimensionConverter::convert2DimensionDO).collect(Collectors.toList());
|
||||
List<DimensionDO> dimensionDOS = dimensionReqList.stream()
|
||||
.map(DimensionConverter::convert2DimensionDO).collect(Collectors.toList());
|
||||
dimensionRepository.batchUpdate(dimensionDOS);
|
||||
// should update modelDetail as well
|
||||
modelService.updateModelByDimAndMetric(dimensionReqList.get(0).getModelId(),dimensionReqList, null, user);
|
||||
modelService.updateModelByDimAndMetric(dimensionReqList.get(0).getModelId(),
|
||||
dimensionReqList, null, user);
|
||||
sendEventBatch(dimensionDOS, EventType.UPDATE);
|
||||
}
|
||||
|
||||
@@ -231,7 +238,8 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
dimensionDO.setUpdatedBy(user.getName());
|
||||
dimensionRepository.updateDimension(dimensionDO);
|
||||
// should update modelDetail
|
||||
modelService.deleteModelDetailByDimAndMetric(dimensionDO.getModelId(), Lists.newArrayList(dimensionDO), null);
|
||||
modelService.deleteModelDetailByDimAndMetric(dimensionDO.getModelId(),
|
||||
Lists.newArrayList(dimensionDO), null);
|
||||
sendEventBatch(Lists.newArrayList(dimensionDO), EventType.DELETE);
|
||||
}
|
||||
|
||||
@@ -241,7 +249,8 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
dimensionFilter.setDimensionIds(idList);
|
||||
List<DimensionDO> dimensionDOList = dimensionRepository.getDimensions(dimensionFilter);
|
||||
if (CollectionUtils.isEmpty(dimensionDOList)) {
|
||||
throw new RuntimeException(String.format("the dimension %s not exist", StringUtils.join(",",idList)));
|
||||
throw new RuntimeException(
|
||||
String.format("the dimension %s not exist", StringUtils.join(",", idList)));
|
||||
}
|
||||
dimensionDOList.forEach(dimensionDO -> {
|
||||
dimensionDO.setStatus(StatusEnum.DELETED.getCode());
|
||||
@@ -250,7 +259,8 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
});
|
||||
dimensionRepository.batchUpdateStatus(dimensionDOList);
|
||||
// should update modelDetail
|
||||
modelService.deleteModelDetailByDimAndMetric(dimensionDOList.get(0).getModelId(), dimensionDOList, null);
|
||||
modelService.deleteModelDetailByDimAndMetric(dimensionDOList.get(0).getModelId(),
|
||||
dimensionDOList, null);
|
||||
sendEventBatch(dimensionDOList, EventType.DELETE);
|
||||
}
|
||||
|
||||
@@ -323,7 +333,7 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
}
|
||||
|
||||
private List<DimensionResp> filterByField(List<DimensionResp> dimensionResps,
|
||||
List<String> fields) {
|
||||
List<String> fields) {
|
||||
List<DimensionResp> dimensionFiltered = Lists.newArrayList();
|
||||
for (DimensionResp dimensionResp : dimensionResps) {
|
||||
for (String field : fields) {
|
||||
@@ -358,7 +368,7 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
List<DimensionResp> dimensionResps = Lists.newArrayList();
|
||||
if (!CollectionUtils.isEmpty(dimensionDOS)) {
|
||||
dimensionResps = dimensionDOS.stream().map(
|
||||
dimensionDO -> DimensionConverter.convert2DimensionResp(dimensionDO, modelMap))
|
||||
dimensionDO -> DimensionConverter.convert2DimensionResp(dimensionDO, modelMap))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
return dimensionResps;
|
||||
|
||||
@@ -58,9 +58,9 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
private ChatLayerService chatLayerService;
|
||||
|
||||
public MetricServiceImpl(MetricRepository metricRepository, ModelService modelService,
|
||||
AliasGenerateHelper aliasGenerateHelper, CollectService collectService,
|
||||
DataSetService dataSetService, ApplicationEventPublisher eventPublisher,
|
||||
DimensionService dimensionService, @Lazy ChatLayerService chatLayerService) {
|
||||
AliasGenerateHelper aliasGenerateHelper, CollectService collectService,
|
||||
DataSetService dataSetService, ApplicationEventPublisher eventPublisher,
|
||||
DimensionService dimensionService, @Lazy ChatLayerService chatLayerService) {
|
||||
this.metricRepository = metricRepository;
|
||||
this.modelService = modelService;
|
||||
this.aliasGenerateHelper = aliasGenerateHelper;
|
||||
@@ -80,7 +80,8 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
metricRepository.createMetric(metricDO);
|
||||
sendEventBatch(Lists.newArrayList(metricDO), EventType.ADD);
|
||||
// should update modelDetail as well
|
||||
modelService.updateModelByDimAndMetric(metricReq.getModelId(),null, Lists.newArrayList(metricReq), user);
|
||||
modelService.updateModelByDimAndMetric(metricReq.getModelId(), null,
|
||||
Lists.newArrayList(metricReq), user);
|
||||
|
||||
|
||||
return MetricConverter.convert2MetricResp(metricDO);
|
||||
@@ -93,7 +94,8 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
.map(MetricConverter::convert2MetricDO).collect(Collectors.toList());
|
||||
metricRepository.createMetricBatch(metricDOS);
|
||||
// should update modelDetail as well
|
||||
modelService.updateModelByDimAndMetric(metricReqs.get(0).getModelId(), null, metricReqs, user);
|
||||
modelService.updateModelByDimAndMetric(metricReqs.get(0).getModelId(), null, metricReqs,
|
||||
user);
|
||||
|
||||
sendEventBatch(metricDOS, EventType.ADD);
|
||||
}
|
||||
@@ -123,7 +125,8 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
});
|
||||
|
||||
// the bizNames from alter dimensions
|
||||
List<String> bizNames = metricReqs.stream().map(MetricReq::getBizName).collect(Collectors.toList());
|
||||
List<String> bizNames =
|
||||
metricReqs.stream().map(MetricReq::getBizName).collect(Collectors.toList());
|
||||
bizNameMap.keySet().forEach(bizNameInDb -> {
|
||||
if (!bizNames.contains(bizNameInDb)) {
|
||||
metricToDelete.add(bizNameMap.get(bizNameInDb).getId());
|
||||
@@ -163,7 +166,8 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
sendEvent(dataItem, EventType.UPDATE);
|
||||
}
|
||||
// should update modelDetail as well
|
||||
modelService.updateModelByDimAndMetric(metricReq.getModelId(), null, Lists.newArrayList(metricReq), user);
|
||||
modelService.updateModelByDimAndMetric(metricReq.getModelId(), null,
|
||||
Lists.newArrayList(metricReq), user);
|
||||
return MetricConverter.convert2MetricResp(metricDO);
|
||||
}
|
||||
|
||||
@@ -171,10 +175,12 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
public void updateMetricBatch(List<MetricReq> metricReqs, User user) {
|
||||
MetricCheckUtils.checkParam(metricReqs);
|
||||
checkExist(metricReqs);
|
||||
List<MetricDO> metricDOS = metricReqs.stream().map(MetricConverter::convert2MetricDO).collect(Collectors.toList());
|
||||
List<MetricDO> metricDOS = metricReqs.stream().map(MetricConverter::convert2MetricDO)
|
||||
.collect(Collectors.toList());
|
||||
metricRepository.batchUpdateMetric(metricDOS);
|
||||
// should update modelDetail as well
|
||||
modelService.updateModelByDimAndMetric(metricReqs.get(0).getModelId(), null, metricReqs, user);
|
||||
modelService.updateModelByDimAndMetric(metricReqs.get(0).getModelId(), null, metricReqs,
|
||||
user);
|
||||
sendEventBatch(metricDOS, EventType.UPDATE);
|
||||
}
|
||||
|
||||
@@ -277,7 +283,8 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
metricDO.setUpdatedBy(user.getName());
|
||||
metricRepository.updateMetric(metricDO);
|
||||
// should update modelDetail
|
||||
modelService.deleteModelDetailByDimAndMetric(metricDO.getModelId(), null, Lists.newArrayList(metricDO));
|
||||
modelService.deleteModelDetailByDimAndMetric(metricDO.getModelId(), null,
|
||||
Lists.newArrayList(metricDO));
|
||||
sendEventBatch(Lists.newArrayList(metricDO), EventType.DELETE);
|
||||
}
|
||||
|
||||
@@ -287,7 +294,8 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
metricsFilter.setMetricIds(idList);
|
||||
List<MetricDO> metricDOList = metricRepository.getMetrics(metricsFilter);
|
||||
if (CollectionUtils.isEmpty(metricDOList)) {
|
||||
throw new RuntimeException(String.format("the metrics %s not exist", StringUtils.join(",",idList)));
|
||||
throw new RuntimeException(
|
||||
String.format("the metrics %s not exist", StringUtils.join(",", idList)));
|
||||
}
|
||||
metricDOList.forEach(metricDO -> {
|
||||
metricDO.setStatus(StatusEnum.DELETED.getCode());
|
||||
@@ -296,7 +304,8 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
});
|
||||
metricRepository.batchUpdateStatus(metricDOList);
|
||||
// should update modelDetail
|
||||
modelService.deleteModelDetailByDimAndMetric(metricDOList.get(0).getModelId(), null, metricDOList);
|
||||
modelService.deleteModelDetailByDimAndMetric(metricDOList.get(0).getModelId(), null,
|
||||
metricDOList);
|
||||
sendEventBatch(metricDOList, EventType.DELETE);
|
||||
}
|
||||
|
||||
@@ -433,7 +442,7 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
}
|
||||
|
||||
private boolean filterByField(List<MetricResp> metricResps, MetricResp metricResp,
|
||||
List<String> fields, Set<MetricResp> metricRespFiltered) {
|
||||
List<String> fields, Set<MetricResp> metricRespFiltered) {
|
||||
if (MetricDefineType.METRIC.equals(metricResp.getMetricDefineType())) {
|
||||
List<Long> ids = metricResp.getMetricDefineByMetricParams().getMetrics().stream()
|
||||
.map(MetricParam::getId).collect(Collectors.toList());
|
||||
@@ -470,8 +479,8 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
metricFilter.setModelIds(Lists.newArrayList(modelId));
|
||||
List<MetricResp> metricResps = getMetrics(metricFilter);
|
||||
return metricResps.stream().filter(
|
||||
metricResp -> MetricDefineType.FIELD.equals(metricResp.getMetricDefineType())
|
||||
|| MetricDefineType.MEASURE.equals(metricResp.getMetricDefineType()))
|
||||
metricResp -> MetricDefineType.FIELD.equals(metricResp.getMetricDefineType())
|
||||
|| MetricDefineType.MEASURE.equals(metricResp.getMetricDefineType()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@@ -645,7 +654,7 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
Map<Long, ModelResp> modelMap = modelService.getModelMap(modelFilter);
|
||||
if (!CollectionUtils.isEmpty(metricDOS)) {
|
||||
metricResps = metricDOS.stream().map(
|
||||
metricDO -> MetricConverter.convert2MetricResp(metricDO, modelMap, collect))
|
||||
metricDO -> MetricConverter.convert2MetricResp(metricDO, modelMap, collect))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
return metricResps;
|
||||
@@ -703,7 +712,7 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
|
||||
@Override
|
||||
public void batchFillMetricDefaultAgg(List<MetricResp> metricResps,
|
||||
List<ModelResp> modelResps) {
|
||||
List<ModelResp> modelResps) {
|
||||
Map<Long, ModelResp> modelRespMap =
|
||||
modelResps.stream().collect(Collectors.toMap(ModelResp::getId, m -> m));
|
||||
for (MetricResp metricResp : metricResps) {
|
||||
@@ -852,7 +861,7 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
}
|
||||
|
||||
private Set<Long> getModelIds(Set<Long> modelIdsByDomainId, List<MetricResp> metricResps,
|
||||
List<DimensionResp> dimensionResps) {
|
||||
List<DimensionResp> dimensionResps) {
|
||||
Set<Long> result = new HashSet<>();
|
||||
if (org.apache.commons.collections.CollectionUtils.isNotEmpty(modelIdsByDomainId)) {
|
||||
result.addAll(modelIdsByDomainId);
|
||||
@@ -889,7 +898,8 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
|
||||
private boolean isChange(MetricReq metricReq, MetricResp metricResp) {
|
||||
boolean isNameChange = !metricReq.getName().equals(metricResp.getName());
|
||||
boolean isBizNameChange = !Objects.equals(metricReq.getMetricDefineByMeasureParams(),metricResp.getMetricDefineByMeasureParams());
|
||||
boolean isBizNameChange = !Objects.equals(metricReq.getMetricDefineByMeasureParams(),
|
||||
metricResp.getMetricDefineByMeasureParams());
|
||||
return isNameChange || isBizNameChange;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,10 +67,10 @@ public class ModelServiceImpl implements ModelService {
|
||||
new ThreadPoolExecutor(0, 5, 5L, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
|
||||
|
||||
public ModelServiceImpl(ModelRepository modelRepository, DatabaseService databaseService,
|
||||
@Lazy DimensionService dimensionService, @Lazy MetricService metricService,
|
||||
DomainService domainService, UserService userService, DataSetService dataSetService,
|
||||
DateInfoRepository dateInfoRepository, ModelRelaService modelRelaService,
|
||||
ApplicationEventPublisher eventPublisher) {
|
||||
@Lazy DimensionService dimensionService, @Lazy MetricService metricService,
|
||||
DomainService domainService, UserService userService, DataSetService dataSetService,
|
||||
DateInfoRepository dateInfoRepository, ModelRelaService modelRelaService,
|
||||
ApplicationEventPublisher eventPublisher) {
|
||||
this.modelRepository = modelRepository;
|
||||
this.databaseService = databaseService;
|
||||
this.dimensionService = dimensionService;
|
||||
@@ -216,7 +216,7 @@ public class ModelServiceImpl implements ModelService {
|
||||
}
|
||||
|
||||
private void doBuild(ModelBuildReq modelBuildReq, DbSchema curSchema, List<DbSchema> dbSchemas,
|
||||
Map<String, ModelSchema> modelSchemaMap) {
|
||||
Map<String, ModelSchema> modelSchemaMap) {
|
||||
ModelSchema modelSchema = new ModelSchema();
|
||||
List<SemanticModeller> semanticModellers = CoreComponentFactory.getSemanticModellers();
|
||||
for (SemanticModeller semanticModeller : semanticModellers) {
|
||||
@@ -234,7 +234,7 @@ public class ModelServiceImpl implements ModelService {
|
||||
}
|
||||
|
||||
private List<DbSchema> convert(Map<String, List<DBColumn>> dbColumnMap,
|
||||
ModelBuildReq modelBuildReq) {
|
||||
ModelBuildReq modelBuildReq) {
|
||||
return dbColumnMap.keySet().stream()
|
||||
.map(key -> convert(modelBuildReq, key, dbColumnMap.get(key)))
|
||||
.collect(Collectors.toList());
|
||||
@@ -383,7 +383,7 @@ public class ModelServiceImpl implements ModelService {
|
||||
}
|
||||
|
||||
public List<ModelResp> getModelRespAuthInheritDomain(User user, Long domainId,
|
||||
AuthType authType) {
|
||||
AuthType authType) {
|
||||
List<Long> domainIds =
|
||||
domainService.getDomainAuthSet(user, authType).stream().filter(domainResp -> {
|
||||
if (domainId == null) {
|
||||
@@ -521,13 +521,14 @@ public class ModelServiceImpl implements ModelService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateModelByDimAndMetric(Long modelId, List<DimensionReq> dimensionReqList, List<MetricReq> metricReqList, User user) {
|
||||
public void updateModelByDimAndMetric(Long modelId, List<DimensionReq> dimensionReqList,
|
||||
List<MetricReq> metricReqList, User user) {
|
||||
ModelDO modelDO = getModelDO(modelId);
|
||||
ModelDetail modelDetail = JsonUtil.toObject(modelDO.getModelDetail(), ModelDetail.class);
|
||||
if (!CollectionUtils.isEmpty(dimensionReqList)) {
|
||||
dimensionReqList.forEach(dimensionReq -> {
|
||||
Optional<Dimension> dimOptional = modelDetail.getDimensions().stream()
|
||||
.filter(dimension -> dimension.getBizName().equals(dimensionReq.getBizName()))
|
||||
Optional<Dimension> dimOptional = modelDetail.getDimensions().stream().filter(
|
||||
dimension -> dimension.getBizName().equals(dimensionReq.getBizName()))
|
||||
.findFirst();
|
||||
if (dimOptional.isPresent()) {
|
||||
Dimension dimension = dimOptional.get();
|
||||
@@ -547,10 +548,13 @@ public class ModelServiceImpl implements ModelService {
|
||||
|
||||
if (!CollectionUtils.isEmpty(metricReqList)) {
|
||||
// 目前modeltail中的measure
|
||||
Map<String, Measure> mesureMap = modelDetail.getMeasures().stream().collect(Collectors.toMap(Measure::getBizName, a -> a, (k1, k2) -> k1));
|
||||
Map<String, Measure> mesureMap = modelDetail.getMeasures().stream()
|
||||
.collect(Collectors.toMap(Measure::getBizName, a -> a, (k1, k2) -> k1));
|
||||
metricReqList.forEach(metricReq -> {
|
||||
if (null != metricReq.getMetricDefineByMeasureParams() && !CollectionUtils.isEmpty(metricReq.getMetricDefineByMeasureParams().getMeasures())) {
|
||||
for(Measure alterMeasure : metricReq.getMetricDefineByMeasureParams().getMeasures()) {
|
||||
if (null != metricReq.getMetricDefineByMeasureParams() && !CollectionUtils
|
||||
.isEmpty(metricReq.getMetricDefineByMeasureParams().getMeasures())) {
|
||||
for (Measure alterMeasure : metricReq.getMetricDefineByMeasureParams()
|
||||
.getMeasures()) {
|
||||
if (mesureMap.containsKey(alterMeasure.getBizName())) {
|
||||
Measure measure = mesureMap.get(alterMeasure.getBizName());
|
||||
BeanUtils.copyProperties(alterMeasure, measure);
|
||||
@@ -569,13 +573,14 @@ public class ModelServiceImpl implements ModelService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteModelDetailByDimAndMetric(Long modelId, List<DimensionDO> dimensionList, List<MetricDO> metricReqList) {
|
||||
public void deleteModelDetailByDimAndMetric(Long modelId, List<DimensionDO> dimensionList,
|
||||
List<MetricDO> metricReqList) {
|
||||
ModelDO modelDO = getModelDO(modelId);
|
||||
ModelDetail modelDetail = JsonUtil.toObject(modelDO.getModelDetail(), ModelDetail.class);
|
||||
if (!CollectionUtils.isEmpty(dimensionList)) {
|
||||
dimensionList.forEach(dimensionReq -> {
|
||||
Optional<Dimension> dimOptional = modelDetail.getDimensions().stream()
|
||||
.filter(dimension -> dimension.getBizName().equals(dimensionReq.getBizName()))
|
||||
Optional<Dimension> dimOptional = modelDetail.getDimensions().stream().filter(
|
||||
dimension -> dimension.getBizName().equals(dimensionReq.getBizName()))
|
||||
.findFirst();
|
||||
if (dimOptional.isPresent()) {
|
||||
Dimension dimension = dimOptional.get();
|
||||
@@ -638,7 +643,7 @@ public class ModelServiceImpl implements ModelService {
|
||||
}
|
||||
|
||||
public static boolean checkDataSetPermission(Set<String> orgIds, User user,
|
||||
ModelResp modelResp) {
|
||||
ModelResp modelResp) {
|
||||
if (checkAdminPermission(orgIds, user, modelResp)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -198,8 +198,7 @@ public class DataSetSchemaBuilder {
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private static void setDefaultTimeFormat(SchemaElement dimToAdd,
|
||||
String timeFormat) {
|
||||
private static void setDefaultTimeFormat(SchemaElement dimToAdd, String timeFormat) {
|
||||
dimToAdd.getExtInfo().put(DimensionConstants.DIMENSION_TIME_FORMAT, timeFormat);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +56,8 @@ public class MetricCheckUtils {
|
||||
if (StringUtils.isBlank(expr)) {
|
||||
throw new InvalidArgumentException("表达式不可为空");
|
||||
}
|
||||
String forbiddenCharacters = NameCheckUtils.findForbiddenCharacters(metricReq.getName());
|
||||
String forbiddenCharacters =
|
||||
NameCheckUtils.findForbiddenCharacters(metricReq.getName());
|
||||
if (StringUtils.isNotBlank(forbiddenCharacters)) {
|
||||
throw new InvalidArgumentException(
|
||||
String.format("名称包含特殊字符%s, 请修改", forbiddenCharacters));
|
||||
|
||||
@@ -143,7 +143,7 @@ public class ModelConverter {
|
||||
}
|
||||
|
||||
public static ModelReq convert(ModelSchema modelSchema, ModelBuildReq modelBuildReq,
|
||||
String tableName) {
|
||||
String tableName) {
|
||||
ModelReq modelReq = new ModelReq();
|
||||
modelReq.setName(modelBuildReq.getName() != null ? modelBuildReq.getName() : tableName);
|
||||
modelReq.setBizName(
|
||||
@@ -169,7 +169,7 @@ public class ModelConverter {
|
||||
|
||||
if (getIdentifyType(fieldType) != null) {
|
||||
Optional<Identify> optional = modelDetail.getIdentifiers().stream().filter(
|
||||
identify -> identify.getBizName().equals(semanticColumn.getColumnName()))
|
||||
identify -> identify.getBizName().equals(semanticColumn.getColumnName()))
|
||||
.findAny();
|
||||
if (optional.isEmpty()) {
|
||||
Identify identify = new Identify(semanticColumn.getName(),
|
||||
@@ -178,7 +178,7 @@ public class ModelConverter {
|
||||
}
|
||||
} else if (FieldType.measure.equals(fieldType)) {
|
||||
Optional<Measure> optional = modelDetail.getMeasures().stream().filter(
|
||||
measure -> measure.getBizName().equals(semanticColumn.getColumnName()))
|
||||
measure -> measure.getBizName().equals(semanticColumn.getColumnName()))
|
||||
.findAny();
|
||||
if (optional.isEmpty()) {
|
||||
Measure measure = new Measure(semanticColumn.getName(),
|
||||
@@ -188,7 +188,7 @@ public class ModelConverter {
|
||||
}
|
||||
} else {
|
||||
Optional<Dimension> optional = modelDetail.getDimensions().stream().filter(
|
||||
dimension -> dimension.getBizName().equals(semanticColumn.getColumnName()))
|
||||
dimension -> dimension.getBizName().equals(semanticColumn.getColumnName()))
|
||||
.findAny();
|
||||
if (optional.isEmpty()) {
|
||||
Dimension dim = new Dimension(semanticColumn.getName(),
|
||||
@@ -294,7 +294,8 @@ public class ModelConverter {
|
||||
List<Dimension> dimensions = modelReq.getModelDetail().getDimensions();
|
||||
List<Identify> identifiers = modelReq.getModelDetail().getIdentifiers();
|
||||
List<Field> fields = modelReq.getModelDetail().getFields();
|
||||
List<String> fieldNames = fields.stream().map(Field::getFieldName).collect(Collectors.toList());
|
||||
List<String> fieldNames =
|
||||
fields.stream().map(Field::getFieldName).collect(Collectors.toList());
|
||||
|
||||
if (measures != null) {
|
||||
for (Measure measure : measures) {
|
||||
@@ -302,7 +303,8 @@ public class ModelConverter {
|
||||
&& StringUtils.isBlank(measure.getExpr())) {
|
||||
measure.setExpr(measure.getBizName());
|
||||
}
|
||||
if (StringUtils.isNotBlank(measure.getBizName()) && !fieldNames.contains(measure.getBizName())) {
|
||||
if (StringUtils.isNotBlank(measure.getBizName())
|
||||
&& !fieldNames.contains(measure.getBizName())) {
|
||||
fields.add(new Field(measure.getBizName(), ""));
|
||||
}
|
||||
}
|
||||
@@ -313,18 +315,21 @@ public class ModelConverter {
|
||||
&& StringUtils.isBlank(dimension.getExpr())) {
|
||||
dimension.setExpr(dimension.getBizName());
|
||||
}
|
||||
if (StringUtils.isNotBlank(dimension.getBizName()) && !fieldNames.contains(dimension.getBizName())) {
|
||||
if (StringUtils.isNotBlank(dimension.getBizName())
|
||||
&& !fieldNames.contains(dimension.getBizName())) {
|
||||
fields.add(new Field(dimension.getBizName(), ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (identifiers != null) {
|
||||
for (Identify identify : identifiers) {
|
||||
if (StringUtils.isNotBlank(identify.getBizName()) && StringUtils.isBlank(identify.getName())) {
|
||||
if (StringUtils.isNotBlank(identify.getBizName())
|
||||
&& StringUtils.isBlank(identify.getName())) {
|
||||
identify.setName(identify.getBizName());
|
||||
}
|
||||
identify.setIsCreateDimension(1);
|
||||
if (StringUtils.isNotBlank(identify.getBizName()) && !fieldNames.contains(identify.getBizName())) {
|
||||
if (StringUtils.isNotBlank(identify.getBizName())
|
||||
&& !fieldNames.contains(identify.getBizName())) {
|
||||
fields.add(new Field(identify.getBizName(), ""));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user