perf(仪表板): 删除逻辑没有删除分享信息

This commit is contained in:
fit2cloud-chenyw
2026-01-19 10:19:35 +08:00
committed by fit2cloud-chenyw
parent 6a7aa0ff39
commit 2fd5d0442b
2 changed files with 67 additions and 33 deletions

View File

@@ -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<XpackShare> wrapper = new QueryWrapper<>();
wrapper.eq("resource_id", resourceId);
List<XpackShare> shares = xpackShareMapper.selectList(wrapper);
if (CollectionUtils.isEmpty(shares)) {
return;
}
xpackShareMapper.delete(wrapper);
List<String> uuidList = shares.stream().map(XpackShare::getUuid).collect(Collectors.toList());
QueryWrapper<CoreShareTicket> ticketQueryWrapper = new QueryWrapper<>();
ticketQueryWrapper.in("uuid", uuidList);
coreShareTicketMapper.delete(ticketQueryWrapper);
}
public XpackShare queryByResource(Long resourceId) {
Long userId = AuthUtils.getUser().getUserId();
QueryWrapper<XpackShare> 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() {

View File

@@ -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<BusiNodeVO> tree(BusiNodeRequest request) {
List<VisualizationNodeBO> 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<VisualizationNodePO> 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<VisualizationResourcePO> queryVisualizationPage(int goPage, int pageSize, VisualizationWorkbranchQueryRequest request) {
Long uid = AuthUtils.getUser().getUserId();
Map<String,Object> params = new HashMap<>();
Map<String, Object> 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<VisualizationResourcePO> 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<Long> 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<Long> 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);
}
}