From e983283c0eede6fe0fd77c6463e085cf18724de8 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Wed, 20 Nov 2024 17:32:26 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E4=BB=AA=E8=A1=A8=E6=9D=BF=E3=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F):=20=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExtVisualizationOuterParamsMapper.java | 3 + .../VisualizationOuterParamsService.java | 20 +- .../ExtVisualizationOuterParamsMapper.xml | 11 + .../components/visualization/LinkJumpSet.vue | 269 +++++++++++------- .../src/views/common/DeResourceTree.vue | 1 - 5 files changed, 194 insertions(+), 110 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtVisualizationOuterParamsMapper.java b/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtVisualizationOuterParamsMapper.java index abe21e2657..32b85f99eb 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtVisualizationOuterParamsMapper.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtVisualizationOuterParamsMapper.java @@ -4,6 +4,7 @@ package io.dataease.visualization.dao.ext.mapper; import io.dataease.api.dataset.vo.CoreDatasetGroupVO; import io.dataease.api.visualization.dto.VisualizationOuterParamsDTO; import io.dataease.api.visualization.dto.VisualizationOuterParamsInfoDTO; +import io.dataease.visualization.dao.auto.entity.VisualizationOuterParamsInfo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,5 +23,7 @@ public interface ExtVisualizationOuterParamsMapper { List getVisualizationOuterParamsInfo(@Param("visualizationId") String visualizationId); + List getVisualizationOuterParamsInfoBase(@Param("visualizationId") String visualizationId); + List queryDsWithVisualizationId(@Param("visualizationId") String visualizationId); } diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java b/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java index b3f4bdf018..46794b0402 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationOuterParamsService.java @@ -29,10 +29,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; /** @@ -72,6 +69,12 @@ public class VisualizationOuterParamsService implements VisualizationOuterParams public void updateOuterParamsSet(VisualizationOuterParamsDTO outerParamsDTO) { String visualizationId = outerParamsDTO.getVisualizationId(); Assert.notNull(visualizationId, "visualizationId cannot be null"); + Map paramsInfoNameIdMap = new HashMap<>(); + List paramsInfoNameIdList = extOuterParamsMapper.getVisualizationOuterParamsInfoBase(visualizationId); + if(!CollectionUtils.isEmpty(paramsInfoNameIdList)){ + paramsInfoNameIdMap = paramsInfoNameIdList.stream() + .collect(Collectors.toMap(VisualizationOuterParamsInfo::getParamName, VisualizationOuterParamsInfo::getParamsId)); + } //清理原有数据 extOuterParamsMapper.deleteOuterParamsTargetWithVisualizationId(visualizationId); extOuterParamsMapper.deleteOuterParamsInfoWithVisualizationId(visualizationId); @@ -82,17 +85,22 @@ public class VisualizationOuterParamsService implements VisualizationOuterParams VisualizationOuterParams newOuterParams = new VisualizationOuterParams(); BeanUtils.copyBean(newOuterParams, outerParamsDTO); outerParamsMapper.insert(newOuterParams); + Map finalParamsInfoNameIdMap = paramsInfoNameIdMap; Optional.ofNullable(outerParamsDTO.getOuterParamsInfoArray()).orElse(new ArrayList<>()).forEach(outerParamsInfo -> { - String paramsInfoId = UUID.randomUUID().toString(); + String paramsInfoId = finalParamsInfoNameIdMap.get(outerParamsInfo.getParamName()); + if(StringUtils.isEmpty(paramsInfoId)){ + paramsInfoId = UUID.randomUUID().toString(); + } outerParamsInfo.setParamsInfoId(paramsInfoId); outerParamsInfo.setParamsId(paramsId); VisualizationOuterParamsInfo newOuterParamsInfo = new VisualizationOuterParamsInfo(); BeanUtils.copyBean(newOuterParamsInfo, outerParamsInfo); outerParamsInfoMapper.insert(newOuterParamsInfo); + String finalParamsInfoId = paramsInfoId; Optional.ofNullable(outerParamsInfo.getTargetViewInfoList()).orElse(new ArrayList<>()).forEach(targetViewInfo -> { String targetViewInfoId = UUID.randomUUID().toString(); targetViewInfo.setTargetId(targetViewInfoId); - targetViewInfo.setParamsInfoId(paramsInfoId); + targetViewInfo.setParamsInfoId(finalParamsInfoId); VisualizationOuterParamsTargetViewInfo newOuterParamsTargetViewInfo = new VisualizationOuterParamsTargetViewInfo(); BeanUtils.copyBean(newOuterParamsTargetViewInfo, targetViewInfo); outerParamsTargetViewInfoMapper.insert(newOuterParamsTargetViewInfo); diff --git a/core/core-backend/src/main/resources/mybatis/ExtVisualizationOuterParamsMapper.xml b/core/core-backend/src/main/resources/mybatis/ExtVisualizationOuterParamsMapper.xml index 9e8361b763..210fc0616b 100644 --- a/core/core-backend/src/main/resources/mybatis/ExtVisualizationOuterParamsMapper.xml +++ b/core/core-backend/src/main/resources/mybatis/ExtVisualizationOuterParamsMapper.xml @@ -139,6 +139,17 @@ and popi.checked=1 + +