refactor(数据大屏、仪表板): 资源发布时,清理无用数据 #16749 (#16781)

This commit is contained in:
王嘉豪
2025-08-21 10:54:17 +08:00
committed by GitHub
parent 4a28c26ff4
commit 1073a395c6
5 changed files with 30 additions and 6 deletions

View File

@@ -57,6 +57,8 @@ public interface ExtDataVisualizationMapper {
void deleteViewsBatch(@Param("ids") Set<Long> ids,@Param("resourceTable") String resourceTable);
void deleteUselessViewsBatchSnapshot(@Param("ids") List<Long> ids,@Param("dvId") Long dvId);
UserFormVO queryInnerUserInfo(@Param("id") Long id);
void snapshotDataV(@Param("dvId") Long dvId);

View File

@@ -594,6 +594,8 @@ public class DataVisualizationServer implements DataVisualizationApi {
visualizationInfo.setStatus(request.getStatus());
coreVisualizationManage.innerEdit(visualizationInfo);
if (CommonConstants.DV_STATUS.PUBLISHED == request.getStatus()) {
List<Long> viewIds = this.getEnabledViewIds(dvId,CommonConstants.RESOURCE_TABLE.SNAPSHOT);
extDataVisualizationMapper.deleteUselessViewsBatchSnapshot(viewIds,dvId);
coreVisualizationManage.removeDvCore(dvId);
coreVisualizationManage.dvRestore(dvId);
chartViewManege.publishThreshold(dvId, request.getActiveViewIds());

View File

@@ -498,6 +498,20 @@
</foreach>
</delete>
<delete id="deleteUselessViewsBatchSnapshot">
DELETE
FROM
snapshot_core_chart_view ccv
WHERE
ccv.scene_id = #{dvId}
<if test="ids != null and ids.size() > 0">
and ccv.id not in
<foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
</delete>
<select id="queryInnerUserInfo" resultType="io.dataease.api.permissions.user.vo.UserFormVO">
select id,account,name from per_user where id = #{id}
</select>

View File

@@ -203,9 +203,12 @@ const publishStatusChange = status => {
type: 'dashboard'
}).then(() => {
dvMainStore.updateDvInfoCall(status)
status
? ElMessage.success(t('visualization.published_success'))
: ElMessage.success(t('visualization.cancel_publish_tips'))
if (status) {
ElMessage.success(t('visualization.published_success'))
snapshotStore.initSnapShot()
} else {
ElMessage.success(t('visualization.cancel_publish_tips'))
}
})
}

View File

@@ -331,9 +331,12 @@ const publishStatusChange = status => {
type: 'dataV'
}).then(() => {
dvMainStore.updateDvInfoCall(status)
status
? ElMessage.success(t('visualization.published_success'))
: ElMessage.success(t('visualization.cancel_publish_tips'))
if (status) {
ElMessage.success(t('visualization.published_success'))
snapshotStore.initSnapShot()
} else {
ElMessage.success(t('visualization.cancel_publish_tips'))
}
})
}