diff --git a/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/SnapshotVisualizationLinkJumpInfoRepository.java b/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/SnapshotVisualizationLinkJumpInfoRepository.java index a45b376a3c..b498913f37 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/SnapshotVisualizationLinkJumpInfoRepository.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/SnapshotVisualizationLinkJumpInfoRepository.java @@ -2,9 +2,12 @@ package io.dataease.visualization.dao.auto.mapper; import io.dataease.visualization.dao.auto.entity.SnapshotVisualizationLinkJumpInfo; +import io.lettuce.core.dynamic.annotation.Param; import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -23,4 +26,14 @@ public interface SnapshotVisualizationLinkJumpInfoRepository extends JpaReposito } } + @Modifying + @Transactional + @Query("DELETE FROM SnapshotVisualizationLinkJumpInfo info " + + "WHERE info.linkJumpId IN (" + + " SELECT lj.id FROM SnapshotVisualizationLinkJump lj " + + " WHERE lj.sourceDvId = :dvId " + + " AND lj.sourceViewId = :viewId" + + ")") + void deleteBySourceDvIdAndViewId(@Param("dvId") Long dvId, @Param("viewId") Long viewId); + } diff --git a/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/SnapshotVisualizationLinkJumpRepository.java b/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/SnapshotVisualizationLinkJumpRepository.java index 298be153e6..58043d21e8 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/SnapshotVisualizationLinkJumpRepository.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/dao/auto/mapper/SnapshotVisualizationLinkJumpRepository.java @@ -5,6 +5,7 @@ import io.dataease.visualization.dao.auto.entity.SnapshotVisualizationLinkJump; import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -23,4 +24,8 @@ public interface SnapshotVisualizationLinkJumpRepository extends JpaRepository tuples = queryFactory + .select( + coreChartView.id, + coreChartView.title, + coreChartView.type, + coreChartView.sceneId, + coreDatasetTableField.id, + coreDatasetTableField.originName, + coreDatasetTableField.name, + coreDatasetTableField.type, + coreDatasetTableField.deType + ) + .from(coreChartView) .leftJoin(coreDatasetTableField).on(coreChartView.tableId.eq(coreDatasetTableField.datasetGroupId)) .innerJoin(dataVisualizationInfo).on(coreChartView.sceneId.eq(dataVisualizationInfo.id)) .where(coreChartView.sceneId.eq(dvId)) .where(coreChartView.type.ne("VQuery")) .where(coreChartView.tableId.isNotNull()) .where(dataVisualizationInfo.id.eq(dvId)) - .where(dataVisualizationInfo.componentData.contains(coreChartView.id.toString())).fetch(); + .fetch(); + Map resultMap = new LinkedHashMap<>(); + + for (Tuple tuple : tuples) { + Long viewId = tuple.get(coreChartView.id); + VisualizationViewTableVO vo = resultMap.computeIfAbsent(viewId, k -> { + VisualizationViewTableVO newVo = new VisualizationViewTableVO(); + newVo.setId(viewId); + newVo.setTitle(tuple.get(coreChartView.title)); + newVo.setType(tuple.get(coreChartView.type)); + newVo.setDvId(tuple.get(coreChartView.sceneId)); + newVo.setTableFields(new ArrayList<>()); + return newVo; + }); + + // 添加字段信息 + if (tuple.get(coreDatasetTableField.id) != null) { + DatasetTableFieldDTO fieldDto = new DatasetTableFieldDTO(); + fieldDto.setId(tuple.get(coreDatasetTableField.id)); + fieldDto.setOriginName(tuple.get(coreDatasetTableField.originName)); + fieldDto.setName(tuple.get(coreDatasetTableField.name)); + fieldDto.setType(tuple.get(coreDatasetTableField.type)); + fieldDto.setDeType(tuple.get(coreDatasetTableField.deType)); + vo.getTableFields().add(fieldDto); + } + } + result = new ArrayList<>(resultMap.values()); componentData = dvInfo.getComponentData(); QVisualizationOuterParamsInfo visualizationOuterParamsInfo = QVisualizationOuterParamsInfo.visualizationOuterParamsInfo;