diff --git a/core/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java b/core/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java index db752b8655..aaf9e57638 100644 --- a/core/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java +++ b/core/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java @@ -109,6 +109,13 @@ public class ChartViewController { return chartViewService.chartCopy(id, panelId); } + @DePermission(type = DePermissionType.PANEL, level = ResourceAuthLevel.PANEL_LEVEL_MANAGE, paramIndex = 1) + @ApiOperation("复制") + @PostMapping("chartCopyWithId/{id}/{panelId}/{newId}") + public String chartCopyWithId(@PathVariable String id, @PathVariable String panelId, @PathVariable String newId) { + return chartViewService.chartCopy(id, newId,panelId); + } + @DePermission(type = DePermissionType.PANEL, level = ResourceAuthLevel.PANEL_LEVEL_MANAGE, paramIndex = 1) @ApiOperation("批量复制") @PostMapping("chartBatchCopy/{panelId}") diff --git a/core/backend/src/main/java/io/dataease/ext/ExtChartViewMapper.xml b/core/backend/src/main/java/io/dataease/ext/ExtChartViewMapper.xml index 79c8627399..96fa2330e2 100644 --- a/core/backend/src/main/java/io/dataease/ext/ExtChartViewMapper.xml +++ b/core/backend/src/main/java/io/dataease/ext/ExtChartViewMapper.xml @@ -613,7 +613,7 @@ delete from chart_view - where scene_id = #{panelId} + where scene_id = #{panelId} and create_time < ( unix_timestamp()- 30 ) * 1000 and id not in diff --git a/core/backend/src/main/java/io/dataease/service/panel/PanelViewService.java b/core/backend/src/main/java/io/dataease/service/panel/PanelViewService.java index 8581d5930b..9095b98f96 100644 --- a/core/backend/src/main/java/io/dataease/service/panel/PanelViewService.java +++ b/core/backend/src/main/java/io/dataease/service/panel/PanelViewService.java @@ -131,8 +131,12 @@ public class PanelViewService { //将视图从cache表中更新到正式表中 viewIds = panelViewInsertDTOList.stream().map(panelView -> panelView.getChartViewId()).collect(Collectors.toList()); } - extChartViewMapper.deleteCacheWithPanel(viewIds, panelId); - extChartViewMapper.deleteNoUseView(viewIds, panelId); + // viewIds 不存在时 不执行删除缓存防止误删情况 + if(CollectionUtils.isNotEmpty(viewIds)){ + extChartViewMapper.deleteCacheWithPanel(viewIds, panelId); + extChartViewMapper.deleteNoUseView(viewIds, panelId); + } + } panelGroup.setMobileLayout(mobileLayout); return viewIds;