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 batchInsertFiles(List<Files> filesList);
int updateNodeIdByPathHierarchy(@Param("id") String id); 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 batchInsertIgnore(List<Nodes> nodesList);
int updateParentIdByPathHierarchy(); int updateParentIdByPathHierarchy();
int deleteNodesRecursively(String nodeId);
} }

View File

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

View File

@ -24,17 +24,4 @@
AND a.project_id = #{id} AND a.project_id = #{id}
</update> </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> </mapper>

View File

@ -24,17 +24,4 @@
b.id IS NOT NULL b.id IS NOT NULL
</update> </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> </mapper>