mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 19:51:00 +00:00
[opt](headless)Model update should not delete/update metrics/dimensions, use dedicated metric/dimension management.
This commit is contained in:
@@ -116,29 +116,11 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
.collect(Collectors.toMap(DimensionResp::getBizName, a -> a, (k1, k2) -> k1));
|
||||
|
||||
List<DimensionReq> dimensionToInsert = Lists.newArrayList();
|
||||
List<DimensionReq> dimensionToUpdate = Lists.newArrayList();
|
||||
List<Long> dimensionToDelete = Lists.newArrayList();
|
||||
|
||||
// look for which dimension need to insert, update, delete
|
||||
dimensionReqs.stream().forEach(dimension -> {
|
||||
dimensionReqs.forEach(dimension -> {
|
||||
if (!bizNameMap.containsKey(dimension.getBizName())) {
|
||||
dimensionToInsert.add(dimension);
|
||||
} else {
|
||||
DimensionResp dimensionRespByBizName = bizNameMap.get(dimension.getBizName());
|
||||
if (null != dimensionRespByBizName && isChange(dimension, dimensionRespByBizName)) {
|
||||
dimension.setId(dimensionRespByBizName.getId());
|
||||
dimension.updatedBy(user.getName());
|
||||
dimensionToUpdate.add(dimension);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// the bizNames from alter dimensions
|
||||
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());
|
||||
}
|
||||
});
|
||||
|
||||
@@ -147,16 +129,6 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
createDimensionBatch(dimensionToInsert, user);
|
||||
}
|
||||
|
||||
// update
|
||||
if (!CollectionUtils.isEmpty(dimensionToUpdate)) {
|
||||
updateDimensionBatch(dimensionToUpdate, user);
|
||||
}
|
||||
|
||||
// delete
|
||||
if (!CollectionUtils.isEmpty(dimensionToDelete)) {
|
||||
deleteDimensionBatch(dimensionToDelete, user);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -157,28 +157,9 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
.collect(Collectors.toMap(MetricResp::getBizName, a -> a, (k1, k2) -> k1));
|
||||
|
||||
List<MetricReq> metricToInsert = Lists.newArrayList();
|
||||
List<MetricReq> metricToUpdate = Lists.newArrayList();
|
||||
List<Long> metricToDelete = Lists.newArrayList();
|
||||
|
||||
metricReqs.stream().forEach(metric -> {
|
||||
metricReqs.forEach(metric -> {
|
||||
if (!bizNameMap.containsKey(metric.getBizName())) {
|
||||
metricToInsert.add(metric);
|
||||
} else {
|
||||
MetricResp metricRespByBizName = bizNameMap.get(metric.getBizName());
|
||||
if (null != metricRespByBizName && isChange(metric, metricRespByBizName)) {
|
||||
metric.setId(metricRespByBizName.getId());
|
||||
metric.updatedBy(user.getName());
|
||||
metricToUpdate.add(metric);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// the bizNames from alter dimensions
|
||||
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());
|
||||
}
|
||||
});
|
||||
|
||||
@@ -187,16 +168,6 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
createMetricBatch(metricToInsert, user);
|
||||
}
|
||||
|
||||
// update
|
||||
if (!CollectionUtils.isEmpty(metricToUpdate)) {
|
||||
updateMetricBatch(metricToUpdate, user);
|
||||
}
|
||||
|
||||
// delete
|
||||
if (!CollectionUtils.isEmpty(metricToDelete)) {
|
||||
deleteMetricBatch(metricToDelete, user);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user