Compare commits

..

No commits in common. "87ea4e16fc58736c53f752dc606fa99eb6f6823a" and "338fbee1ff4438789bd9ec8eb7e50b1b6988a8ff" have entirely different histories.

5 changed files with 20 additions and 55 deletions

View File

@ -19,7 +19,4 @@ public interface FilesMapper extends BaseMapper<Files> {
int batchInsertFiles(List<Files> filesList);
int updateNodeIdByPathHierarchy(@Param("id") String id);
//根据节点删除文件递归子节点文件
int deleteByNodeId(@Param("nodeId")String nodeId);
}

View File

@ -18,6 +18,4 @@ public interface NodesMapper extends BaseMapper<Nodes> {
int batchInsertIgnore(List<Nodes> nodesList);
int updateParentIdByPathHierarchy();
int deleteNodesRecursively(String nodeId);
}

View File

@ -545,30 +545,26 @@ public class NodesServiceImpl extends ServiceImpl<NodesMapper, Nodes> implements
if (nodes == null) {
return false; // 节点不存在
}
// //递归获取当前节点和它下面的所有节点
// List<Nodes> nodesList = selectChildrenNodes(id, nodes.getProjectId());
// // 提取所有节点的 ID
// List<String> nodeIds = nodesList.stream()
// .map(Nodes::getId) // 获取每个节点的 ID
// .collect(Collectors.toList());
//
// // 执行批量删除节点操作
// if (!nodeIds.isEmpty()) {
// QueryWrapper<Nodes> deleteWrapper = new QueryWrapper<>();
// deleteWrapper.in("id", nodeIds); // 根据节点 ID 批量删除
// nodesMapper.delete(deleteWrapper);
// }
// //执行批量删除文件操作
// if (!nodeIds.isEmpty()) {
// QueryWrapper<Files> deleteWrapper = new QueryWrapper<>();
// deleteWrapper.in("node_id", nodeIds); // 根据节点 ID 批量删除
// deleteWrapper.eq("project_id", nodes.getProjectId());
// filesMapper.delete(deleteWrapper);
// }
//递归删除节点
nodesMapper.deleteNodesRecursively(id);
//递归删除文件
filesMapper.deleteByNodeId(id);
//递归获取当前节点和它下面的所有节点
List<Nodes> nodesList = selectChildrenNodes(id, nodes.getProjectId());
// 提取所有节点的 ID
List<String> nodeIds = nodesList.stream()
.map(Nodes::getId) // 获取每个节点的 ID
.collect(Collectors.toList());
// 执行批量删除节点操作
if (!nodeIds.isEmpty()) {
QueryWrapper<Nodes> deleteWrapper = new QueryWrapper<>();
deleteWrapper.in("id", nodeIds); // 根据节点 ID 批量删除
nodesMapper.delete(deleteWrapper);
}
//执行批量删除文件操作
if (!nodeIds.isEmpty()) {
QueryWrapper<Files> deleteWrapper = new QueryWrapper<>();
deleteWrapper.in("node_id", nodeIds); // 根据节点 ID 批量删除
deleteWrapper.eq("project_id", nodes.getProjectId());
filesMapper.delete(deleteWrapper);
}
// 删除 sdlocal 中的文件夹
List<BatchDeleteRequest.DeleteItem> deleteItemList = new ArrayList<>();

View File

@ -24,17 +24,4 @@
AND a.project_id = #{id}
</update>
<delete id="deleteByNodeId">
WITH RECURSIVE node_tree AS (
SELECT id
FROM sd_nodes
WHERE id = #{nodeId}
UNION ALL
SELECT n.id
FROM sd_nodes n
INNER JOIN node_tree t ON n.parent_id = t.id
)
DELETE FROM sd_files WHERE node_id IN (SELECT id FROM node_tree)
</delete>
</mapper>

View File

@ -24,17 +24,4 @@
b.id IS NOT NULL
</update>
<delete id="deleteNodesRecursively">
WITH RECURSIVE node_tree AS (
SELECT id
FROM sd_nodes
WHERE id = #{nodeId}
UNION ALL
SELECT n.id
FROM sd_nodes n
INNER JOIN node_tree t ON n.parent_id = t.id
)
DELETE FROM sd_nodes WHERE id IN (SELECT id FROM node_tree)
</delete>
</mapper>