From 59bb3e130b56d2d8381b475273fcab1e50692481 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B8=85?= <2944435683> Date: Fri, 3 Apr 2026 17:58:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=A0=E9=99=A4=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=EF=BC=8C=E5=88=A0=E9=99=A4=E8=B5=84=E4=BA=A7=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=88=A0=E9=99=A4=E4=B8=8D=E5=85=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/assets/delAssets.ts | 1 + src/routes/production/workbench/delVideo.ts | 3 ++ src/routes/project/delProject.ts | 42 ++++++++++++--------- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/routes/assets/delAssets.ts b/src/routes/assets/delAssets.ts index 162e55b..d5195df 100644 --- a/src/routes/assets/delAssets.ts +++ b/src/routes/assets/delAssets.ts @@ -14,6 +14,7 @@ export default router.post( const { id } = req.body; const assetsData = await u.db("o_image").where("assetsId", id); await Promise.all(assetsData.map((i) => i.filePath && u.oss.deleteFile(i.filePath))); + await u.db("o_image").where({ assetsId: id }).delete(); await u.db("o_assets").where({ id }).delete(); res.status(200).send(success({ message: "删除资产成功" })); }, diff --git a/src/routes/production/workbench/delVideo.ts b/src/routes/production/workbench/delVideo.ts index 4b87855..dd1c300 100644 --- a/src/routes/production/workbench/delVideo.ts +++ b/src/routes/production/workbench/delVideo.ts @@ -13,6 +13,9 @@ export default router.post( async (req, res) => { const { id } = req.body; await u.db("o_video").where("id", id).delete(); + await u.db("o_videoTrack").where("videoId", id).update({ + videoId: null, + }); res.status(200).send(success({ message: "视频删除成功" })); }, ); diff --git a/src/routes/project/delProject.ts b/src/routes/project/delProject.ts index 4ceed7c..68ec155 100644 --- a/src/routes/project/delProject.ts +++ b/src/routes/project/delProject.ts @@ -13,27 +13,35 @@ export default router.post( }), async (req, res) => { const { id } = req.body; - - const scriptData = await u.db("o_script").where("projectId", id).select("id"); - const scriptIds = scriptData.map((item: any) => item.id); - + //删除项目 + await u.db("o_project").where("id", id).delete(); + //删除项目下的原文 + await u.db("o_novel").where("projectId", id).delete(); + // 删除项目下的剧本信息 + await u.db("o_script").where("projectId", id).delete(); + await u.db("o_outline").where("projectId", id).delete(); + // 删除项目下的任务 + await u.db("o_tasks").where("projectId", id).delete(); + // 删除项目下的分镜 + await u.db("o_storyboard").where("projectId", id).delete(); + // 删除项目下的资产 + await u.db("o_assets").where("projectId", id).delete(); + //删除需要删除资产的归属图片 const assetsData = await u.db("o_assets").where("projectId", id).select("id"); const assetsIds = assetsData.map((item: any) => item.id); - - await u.db("o_project").where("id", id).delete(); - await u.db("o_novel").where("projectId", id).delete(); - await u.db("o_outline").where("projectId", id).delete(); - await u.db("o_tasks").where("projectId", id).delete(); - - await u.db("o_script").where("projectId", id).delete(); - await u.db("o_assets").where("projectId", id).delete(); - if (assetsIds.length > 0) { - await u.db("o_image").where("projectId", id).orWhereIn("assetsId", assetsIds).delete(); + await u.db("o_image").orWhereIn("assetsId", assetsIds).delete(); } - - await u.db("o_video").whereIn("scriptId", scriptIds).delete(); - + //删除项目下的视频 + const videoData = await u.db("o_video").where("projectId", id).select("id"); + const videoIds = videoData.map((item: any) => item.id); + if (videoIds.length > 0) { + await u.db("o_videoTrack").whereIn("videoId", videoIds).update({ + videoId: null, + }); + } + await u.db("o_video").where("projectId", id).delete(); + //删除项目下的资源 try { await u.oss.deleteDirectory(`${id}/`); console.log(`项目 ${id} 的OSS文件夹删除成功`);