From 19395f369a7528a25130bb8322aed9c39ff7dae4 Mon Sep 17 00:00:00 2001 From: beat4ocean <105700600+beat4ocean@users.noreply.github.com> Date: Fri, 14 Feb 2025 21:31:26 +0800 Subject: [PATCH] [fix][headless] Fix models cannot be deleted if related indicators/dimensions are marked as deleted. (#2056) --- .../server/service/impl/ModelServiceImpl.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java index bf398fd73..2db2977f6 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java @@ -61,15 +61,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; @@ -372,7 +364,9 @@ public class ModelServiceImpl implements ModelService { metaFilter.setModelIds(Lists.newArrayList(modelId)); List metricResps = metricService.getMetrics(metaFilter); List dimensionResps = dimensionService.getDimensions(metaFilter); - if (!CollectionUtils.isEmpty(metricResps) || !CollectionUtils.isEmpty(dimensionResps)) { + boolean validMetric = metricResps.stream().anyMatch(metricResp -> Objects.equals(metricResp.getStatus(), StatusEnum.ONLINE.getCode())); + boolean validDimension = dimensionResps.stream().anyMatch(dimensionResp -> Objects.equals(dimensionResp.getStatus(), StatusEnum.ONLINE.getCode())); + if (validMetric || validDimension) { throw new RuntimeException("存在基于该模型创建的指标和维度, 暂不能删除, 请确认"); } }