mirror of
https://github.com/dataease/dataease.git
synced 2026-06-17 21:08:31 +08:00
refactor: Jpa适配 (#16883)
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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<S
|
||||
}
|
||||
}
|
||||
|
||||
@Modifying
|
||||
@Transactional
|
||||
void deleteBySourceDvIdAndSourceViewId(Long dvId, Long viewId);
|
||||
|
||||
}
|
||||
|
||||
@@ -2,9 +2,12 @@ package io.dataease.visualization.dao.auto.mapper;
|
||||
|
||||
|
||||
import io.dataease.visualization.dao.auto.entity.SnapshotVisualizationLinkJumpTargetViewInfo;
|
||||
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;
|
||||
@@ -22,4 +25,14 @@ public interface SnapshotVisualizationLinkJumpTargetViewInfoRepository extends J
|
||||
deleteAll(entities);
|
||||
}
|
||||
}
|
||||
|
||||
@Modifying
|
||||
@Query("DELETE FROM SnapshotVisualizationLinkJumpTargetViewInfo t " +
|
||||
"WHERE t.linkJumpInfoId IN (" +
|
||||
" SELECT lji.id FROM SnapshotVisualizationLinkJumpInfo lji " +
|
||||
" JOIN SnapshotVisualizationLinkJump lj ON lji.linkJumpId = lj.id " +
|
||||
" WHERE lj.sourceDvId = :dvId " +
|
||||
" AND lj.sourceViewId = :viewId" +
|
||||
")")
|
||||
void deleteBySourceDvIdAndViewId(@Param("dvId") Long dvId, @Param("viewId") Long viewId);
|
||||
}
|
||||
|
||||
@@ -16,9 +16,7 @@ import io.dataease.dao.auto.entity.QCoreDatasetTableField;
|
||||
import io.dataease.dao.auto.entity.QDataVisualizationInfo;
|
||||
import io.dataease.share.dao.auto.entity.QXpackShare;
|
||||
import io.dataease.visualization.dao.auto.entity.*;
|
||||
import io.dataease.visualization.dao.auto.mapper.VisualizationLinkJumpInfoRepository;
|
||||
import io.dataease.visualization.dao.auto.mapper.VisualizationLinkJumpRepository;
|
||||
import io.dataease.visualization.dao.auto.mapper.VisualizationLinkJumpTargetViewInfoRepository;
|
||||
import io.dataease.visualization.dao.auto.mapper.*;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -41,6 +39,13 @@ public class VisualizationLinkJumpManage {
|
||||
|
||||
@Resource
|
||||
private VisualizationLinkJumpTargetViewInfoRepository visualizationLinkJumpTargetViewInfoRepository;
|
||||
@Resource
|
||||
private SnapshotVisualizationLinkJumpTargetViewInfoRepository snapshotVisualizationLinkJumpTargetViewInfoRepository;
|
||||
@Resource
|
||||
private SnapshotVisualizationLinkJumpRepository snapshotVisualizationLinkJumpRepository;
|
||||
@Resource
|
||||
private SnapshotVisualizationLinkJumpInfoRepository snapshotVisualizationLinkJumpInfoRepository;
|
||||
|
||||
private final QXpackShare qXpackShare = QXpackShare.xpackShare;
|
||||
|
||||
public void copyLinkJump(Long copyId) {
|
||||
@@ -459,14 +464,14 @@ public class VisualizationLinkJumpManage {
|
||||
}
|
||||
|
||||
public void deleteJumpTargetViewInfoSnapshot(Long dvId, Long viewId) {
|
||||
|
||||
snapshotVisualizationLinkJumpTargetViewInfoRepository.deleteBySourceDvIdAndViewId(dvId,viewId);
|
||||
}
|
||||
|
||||
public void deleteJumpInfoSnapshot(Long dvId, Long viewId) {
|
||||
|
||||
snapshotVisualizationLinkJumpInfoRepository.deleteBySourceDvIdAndViewId(dvId,viewId);
|
||||
}
|
||||
|
||||
public void deleteJumpSnapshot(Long dvId, Long viewId) {
|
||||
|
||||
snapshotVisualizationLinkJumpRepository.deleteBySourceDvIdAndSourceViewId(dvId,viewId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package io.dataease.visualization.server;
|
||||
|
||||
import com.querydsl.core.Tuple;
|
||||
import com.querydsl.core.types.Projections;
|
||||
import com.querydsl.jpa.impl.JPAQuery;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
@@ -210,25 +211,53 @@ public class VisualizationLinkJumpService implements VisualizationLinkJumpApi {
|
||||
QCoreChartView coreChartView = QCoreChartView.coreChartView;
|
||||
QCoreDatasetTableField coreDatasetTableField = QCoreDatasetTableField.coreDatasetTableField;
|
||||
QDataVisualizationInfo dataVisualizationInfo = QDataVisualizationInfo.dataVisualizationInfo;
|
||||
result = queryFactory.select(Projections.fields(VisualizationViewTableVO.class,
|
||||
coreChartView.id.as("id"),
|
||||
coreChartView.title.as("title"),
|
||||
coreChartView.type.as("type"),
|
||||
coreChartView.sceneId.as("dvId"),
|
||||
coreDatasetTableField.id.as("fieldId"),
|
||||
coreDatasetTableField.originName.as("originName"),
|
||||
coreDatasetTableField.name.as("fieldName"),
|
||||
coreDatasetTableField.type.as("fieldType"),
|
||||
coreDatasetTableField.deType.as("deType")
|
||||
)).from(coreChartView)
|
||||
List<Tuple> 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<Long, VisualizationViewTableVO> 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;
|
||||
|
||||
Reference in New Issue
Block a user