diff --git a/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java b/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java index b38e04cb59..0a6aa05649 100644 --- a/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java +++ b/core/core-backend/src/main/java/io/dataease/share/manage/XpackShareManage.java @@ -18,7 +18,9 @@ import io.dataease.exception.DEException; import io.dataease.i18n.Translator; import io.dataease.license.config.XpackInteract; import io.dataease.license.utils.LicenseUtil; +import io.dataease.share.dao.auto.entity.CoreShareTicket; import io.dataease.share.dao.auto.entity.XpackShare; +import io.dataease.share.dao.auto.mapper.CoreShareTicketMapper; import io.dataease.share.dao.auto.mapper.XpackShareMapper; import io.dataease.share.dao.ext.mapper.XpackShareExtMapper; import io.dataease.share.dao.ext.po.XpackSharePO; @@ -54,9 +56,30 @@ public class XpackShareManage { @Resource private ShareTicketManage shareTicketManage; + @Resource(name = "coreShareTicketMapper") + private CoreShareTicketMapper coreShareTicketMapper; + @Resource private SysParameterManage sysParameterManage; + public void deleteByResource(Long resourceId) { + if (resourceId == null) { + return; + } + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("resource_id", resourceId); + List shares = xpackShareMapper.selectList(wrapper); + if (CollectionUtils.isEmpty(shares)) { + return; + } + xpackShareMapper.delete(wrapper); + + List uuidList = shares.stream().map(XpackShare::getUuid).collect(Collectors.toList()); + QueryWrapper ticketQueryWrapper = new QueryWrapper<>(); + ticketQueryWrapper.in("uuid", uuidList); + coreShareTicketMapper.delete(ticketQueryWrapper); + } + public XpackShare queryByResource(Long resourceId) { Long userId = AuthUtils.getUser().getUserId(); QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -207,7 +230,7 @@ public class XpackShareManage { return pos.stream().map(po -> new XpackShareGridVO( po.getShareId(), po.getResourceId(), po.getName(), po.getCreator().toString(), - po.getTime(), po.getExp(), 9, po.getExtFlag(),po.getExtFlag1(), po.getType())).toList(); + po.getTime(), po.getExp(), 9, po.getExtFlag(), po.getExtFlag1(), po.getType())).toList(); } private XpackShareManage proxy() { diff --git a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java index 671279b2d4..210374721f 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java @@ -17,6 +17,7 @@ import io.dataease.license.config.XpackInteract; import io.dataease.model.BusiNodeRequest; import io.dataease.model.BusiNodeVO; import io.dataease.operation.manage.CoreOptRecentManage; +import io.dataease.share.manage.XpackShareManage; import io.dataease.utils.*; import io.dataease.visualization.dao.auto.entity.DataVisualizationInfo; import io.dataease.visualization.dao.auto.entity.SnapshotDataVisualizationInfo; @@ -70,6 +71,9 @@ public class CoreVisualizationManage { @Resource private ChartViewManege chartViewManege; + @Resource + private XpackShareManage xpackShareManage; + @XpackInteract(value = "visualizationResourceTree", replace = true, invalid = true) public List tree(BusiNodeRequest request) { List nodes = new ArrayList<>(); @@ -86,8 +90,8 @@ public class CoreVisualizationManage { queryWrapper.notExists(String.format(info, "data_visualization_info.id")); } // 如果是编辑界面 只展示已发布的资源 - if(CommonConstants.RESOURCE_TABLE.SNAPSHOT.equals(request.getResourceTable())){ - queryWrapper.in("status", Arrays.asList(1,2)); + if (CommonConstants.RESOURCE_TABLE.SNAPSHOT.equals(request.getResourceTable())) { + queryWrapper.in("status", Arrays.asList(1, 2)); } queryWrapper.orderByDesc("create_time"); List pos = extMapper.queryNodes(queryWrapper); @@ -119,12 +123,16 @@ public class CoreVisualizationManage { }); } } + + // 删除分享相关资源 + xpackShareManage.deleteByResource(id); + // 删除可视化资源 - extDataVisualizationMapper.deleteDataVBatch(delIds,CommonConstants.RESOURCE_TABLE.CORE); - extDataVisualizationMapper.deleteDataVBatch(delIds,CommonConstants.RESOURCE_TABLE.SNAPSHOT); + extDataVisualizationMapper.deleteDataVBatch(delIds, CommonConstants.RESOURCE_TABLE.CORE); + extDataVisualizationMapper.deleteDataVBatch(delIds, CommonConstants.RESOURCE_TABLE.SNAPSHOT); // 删除图表信息 - extDataVisualizationMapper.deleteViewsBatch(delIds,CommonConstants.RESOURCE_TABLE.CORE); - extDataVisualizationMapper.deleteViewsBatch(delIds,CommonConstants.RESOURCE_TABLE.SNAPSHOT); + extDataVisualizationMapper.deleteViewsBatch(delIds, CommonConstants.RESOURCE_TABLE.CORE); + extDataVisualizationMapper.deleteViewsBatch(delIds, CommonConstants.RESOURCE_TABLE.SNAPSHOT); coreOptRecentManage.saveOpt(id, OptConstants.OPT_RESOURCE_TYPE.VISUALIZATION, OptConstants.OPT_TYPE.DELETE); } @@ -167,7 +175,7 @@ public class CoreVisualizationManage { mapper.insert(visualizationInfo); // 镜像文件插入 SnapshotDataVisualizationInfo snapshotVisualizationInfo = new SnapshotDataVisualizationInfo(); - BeanUtils.copyBean(snapshotVisualizationInfo,visualizationInfo); + BeanUtils.copyBean(snapshotVisualizationInfo, visualizationInfo); snapshotMapper.insert(snapshotVisualizationInfo); coreOptRecentManage.saveOpt(visualizationInfo.getId(), OptConstants.OPT_RESOURCE_TYPE.VISUALIZATION, OptConstants.OPT_TYPE.NEW); return visualizationInfo.getId(); @@ -181,7 +189,7 @@ public class CoreVisualizationManage { visualizationInfo.setVersion(3); // 更新镜像 SnapshotDataVisualizationInfo snapshotVisualizationInfo = new SnapshotDataVisualizationInfo(); - BeanUtils.copyBean(snapshotVisualizationInfo,visualizationInfo); + BeanUtils.copyBean(snapshotVisualizationInfo, visualizationInfo); snapshotMapper.updateById(snapshotVisualizationInfo); // 更新主表名称 DataVisualizationInfo coreVisualizationInfo = new DataVisualizationInfo(); @@ -202,11 +210,11 @@ public class CoreVisualizationManage { } private VisualizationNodeBO rootNode() { - return new VisualizationNodeBO(0L, "root", false, 7, -1L, 0,1); + return new VisualizationNodeBO(0L, "root", false, 7, -1L, 0, 1); } private VisualizationNodeBO convert(VisualizationNodePO po) { - return new VisualizationNodeBO(po.getId(), po.getName(), StringUtils.equals(po.getNodeType(), "leaf"), 9, po.getPid(), po.getExtraFlag(),po.getExtraFlag1()); + return new VisualizationNodeBO(po.getId(), po.getName(), StringUtils.equals(po.getNodeType(), "leaf"), 9, po.getPid(), po.getExtraFlag(), po.getExtraFlag1()); } public CoreVisualizationManage proxy() { @@ -242,32 +250,33 @@ public class CoreVisualizationManage { public IPage queryVisualizationPage(int goPage, int pageSize, VisualizationWorkbranchQueryRequest request) { Long uid = AuthUtils.getUser().getUserId(); - Map params = new HashMap<>(); + Map params = new HashMap<>(); if (StringUtils.isNotBlank(request.getType())) { BusiResourceEnum busiResourceEnum = BusiResourceEnum.valueOf(request.getType().toUpperCase()); if (ObjectUtils.isEmpty(busiResourceEnum)) { DEException.throwException("type is invalid"); } - params.put("type",request.getType()); + params.put("type", request.getType()); } String info = CommunityUtils.getInfo(); if (StringUtils.isNotBlank(info)) { - params.put("info",info); + params.put("info", info); } - params.put("isAsc",request.isAsc()); + params.put("isAsc", request.isAsc()); Page page = new Page<>(goPage, pageSize); return extDataVisualizationMapper.findRecent(page, uid, request.getKeyword(), params); } + @Transactional - public void removeSnapshot(Long dvId){ - if(dvId != null){ + public void removeSnapshot(Long dvId) { + if (dvId != null) { // 清理历史数据 Set dvIds = new HashSet<>(); dvIds.add(dvId); - extDataVisualizationMapper.deleteDataVBatch(dvIds,CommonConstants.RESOURCE_TABLE.SNAPSHOT); - extCoreChartMapper.deleteViewsBySceneId(dvId,CommonConstants.RESOURCE_TABLE.SNAPSHOT); - linkageMapper.deleteViewLinkageFieldSnapshot(dvId,null); - linkageMapper.deleteViewLinkageSnapshot(dvId,null); + extDataVisualizationMapper.deleteDataVBatch(dvIds, CommonConstants.RESOURCE_TABLE.SNAPSHOT); + extCoreChartMapper.deleteViewsBySceneId(dvId, CommonConstants.RESOURCE_TABLE.SNAPSHOT); + linkageMapper.deleteViewLinkageFieldSnapshot(dvId, null); + linkageMapper.deleteViewLinkageSnapshot(dvId, null); linkJumpMapper.deleteJumpTargetViewInfoWithVisualizationSnapshot(dvId); linkJumpMapper.deleteJumpInfoWithVisualizationSnapshot(dvId); linkJumpMapper.deleteJumpWithVisualizationSnapshot(dvId); @@ -275,20 +284,21 @@ public class CoreVisualizationManage { outerParamsMapper.deleteOuterParamsInfoWithVisualizationIdSnapshot(dvId.toString()); outerParamsMapper.deleteOuterParamsWithVisualizationIdSnapshot(dvId.toString()); //xpack 阈值告警 - chartViewManege.removeThreshold(dvId,CommonConstants.RESOURCE_TABLE.SNAPSHOT); + chartViewManege.removeThreshold(dvId, CommonConstants.RESOURCE_TABLE.SNAPSHOT); } } + @Transactional - public void removeDvCore(Long dvId){ - if(dvId != null){ + public void removeDvCore(Long dvId) { + if (dvId != null) { // 清理历史数据 Set dvIds = new HashSet<>(); dvIds.add(dvId); - extDataVisualizationMapper.deleteDataVBatch(dvIds,CommonConstants.RESOURCE_TABLE.CORE); - extCoreChartMapper.deleteViewsBySceneId(dvId,CommonConstants.RESOURCE_TABLE.CORE); - linkageMapper.deleteViewLinkageField(dvId,null); - linkageMapper.deleteViewLinkage(dvId,null); + extDataVisualizationMapper.deleteDataVBatch(dvIds, CommonConstants.RESOURCE_TABLE.CORE); + extCoreChartMapper.deleteViewsBySceneId(dvId, CommonConstants.RESOURCE_TABLE.CORE); + linkageMapper.deleteViewLinkageField(dvId, null); + linkageMapper.deleteViewLinkage(dvId, null); linkJumpMapper.deleteJumpTargetViewInfoWithVisualization(dvId); linkJumpMapper.deleteJumpInfoWithVisualization(dvId); linkJumpMapper.deleteJumpWithVisualization(dvId); @@ -296,12 +306,12 @@ public class CoreVisualizationManage { outerParamsMapper.deleteOuterParamsInfoWithVisualizationId(dvId.toString()); outerParamsMapper.deleteOuterParamsWithVisualizationId(dvId.toString()); //xpack 阈值告警 - chartViewManege.removeThreshold(dvId,CommonConstants.RESOURCE_TABLE.CORE); + chartViewManege.removeThreshold(dvId, CommonConstants.RESOURCE_TABLE.CORE); } } @Transactional - public void dvSnapshotRecover(Long dvId){ + public void dvSnapshotRecover(Long dvId) { // 清理历史数据 CoreVisualizationManage proxy = CommonBeanFactory.proxy(this.getClass()); assert proxy != null; @@ -318,10 +328,11 @@ public class CoreVisualizationManage { extDataVisualizationMapper.snapshotOuterParamsInfo(dvId); extDataVisualizationMapper.snapshotOuterParams(dvId); //xpack 阈值告警 - chartViewManege.restoreThreshold(dvId,CommonConstants.RESOURCE_TABLE.SNAPSHOT); + chartViewManege.restoreThreshold(dvId, CommonConstants.RESOURCE_TABLE.SNAPSHOT); } + @Transactional - public void dvRestore(Long dvId){ + public void dvRestore(Long dvId) { extDataVisualizationMapper.restoreDataV(dvId); extDataVisualizationMapper.restoreViews(dvId); extDataVisualizationMapper.restoreLinkJumpTargetViewInfo(dvId); @@ -333,7 +344,7 @@ public class CoreVisualizationManage { extDataVisualizationMapper.restoreOuterParamsInfo(dvId); extDataVisualizationMapper.restoreOuterParams(dvId); //xpack 阈值告警 - chartViewManege.restoreThreshold(dvId,CommonConstants.RESOURCE_TABLE.CORE); + chartViewManege.restoreThreshold(dvId, CommonConstants.RESOURCE_TABLE.CORE); } }