Merge branch 'develop' of https://github.com/HBAI-Ltd/Toonflow-app into develop

# Conflicts:
#	src/types/database.d.ts
This commit is contained in:
zhishi 2026-04-10 18:34:06 +08:00
commit f8c90c5b48
3 changed files with 59 additions and 18 deletions

View File

@ -18,8 +18,7 @@ export default router.post(
.db("o_assets") .db("o_assets")
.leftJoin("o_image", "o_assets.id", "=", "o_image.assetsId") .leftJoin("o_image", "o_assets.id", "=", "o_image.assetsId")
.where("o_assets.type", "clip") .where("o_assets.type", "clip")
.andWhere("projectId", projectId) .andWhere("o_assets.projectId", projectId)
.andWhere("scriptId", scriptId)
.select("*"); .select("*");
const data = await Promise.all( const data = await Promise.all(
list.map(async (item) => ({ list.map(async (item) => ({
@ -35,16 +34,30 @@ export default router.post(
filePath: ending, filePath: ending,
type: "clip", type: "clip",
}); });
// 查询o_video表 // 查询视频轨道
const videoRows = await u.db("o_video").where("state", "生成成功").andWhere("scriptId", scriptId).andWhere("projectId", projectId).select("*"); const trackRows = await u
// 处理并返回结果 .db("o_videoTrack")
.where("o_videoTrack.scriptId", scriptId)
.andWhere("o_videoTrack.projectId", projectId)
.select("o_videoTrack.id as trackId","o_videoTrack.videoId");
// 按轨道分组处理视频
const video = await Promise.all( const video = await Promise.all(
videoRows.map(async (row) => ({ trackRows.map(async (track) => {
id: row.id, const videoItems = await u.db("o_video").where("o_video.videoTrackId", track.trackId).andWhere("o_video.state", "生成成功").select("*");
filePath: row.filePath ? await u.oss.getFileUrl(row.filePath) : "", const videoList = await Promise.all(
videoTrackId: row.videoTrackId, videoItems.map(async (v) => ({
})), id: v.id,
); filePath: v.filePath ? await u.oss.getFileUrl(v.filePath) : "",
videoTrackId: v.videoTrackId,
})),
);
return {
id: track.trackId,
videoId: track.videoId,
video: videoList,
};
}),
).then((tracks) => tracks.filter((track) => track.video.length > 0));
res.status(200).send(success({ data, video })); res.status(200).send(success({ data, video }));
}, },

View File

@ -13,7 +13,6 @@ export default router.post(
async (req, res) => { async (req, res) => {
const { id } = req.body; const { id } = req.body;
await u.db("o_videoTrack").where("id", id).delete(); await u.db("o_videoTrack").where("id", id).delete();
await u.db("o_storyboard").where("trackId", id).delete();
res.status(200).send(success({ message: "视频段删除成功" })); res.status(200).send(success({ message: "视频段删除成功" }));
}, },
); );

View File

@ -1,6 +1,37 @@
// @db-hash 71e339c0a728c10bedb294a93976dcd8 // @db-hash 6cd709d9bdfe00c4dc87961a8ebba149
//该文件由脚本自动生成,请勿手动修改 //该文件由脚本自动生成,请勿手动修改
export interface _o_project_old_20260404 {
'artStyle'?: string | null;
'createTime'?: number | null;
'directorManual'?: string | null;
'id'?: number | null;
'imageModel'?: string | null;
'imageQuality'?: string | null;
'intro'?: string | null;
'mode'?: string | null;
'name'?: string | null;
'projectType'?: string | null;
'type'?: string | null;
'userId'?: number | null;
'videoModel'?: string | null;
'videoRatio'?: string | null;
}
export interface _o_prompt_old_20260406 {
'data'?: string | null;
'id'?: number;
'name'?: string | null;
'type'?: string | null;
'useData'?: string | null;
}
export interface _o_prompt_old_20260406_1 {
'data'?: string | null;
'id'?: number;
'name'?: string | null;
'TEXT'?: any | null;
'type'?: string | null;
'useData'?: string | null;
}
export interface memories { export interface memories {
'content': string; 'content': string;
'createTime': number; 'createTime': number;
@ -59,10 +90,6 @@ export interface o_assets2Storyboard {
'assetId'?: number; 'assetId'?: number;
'storyboardId'?: number; 'storyboardId'?: number;
} }
export interface o_assetsRole2Audio {
'assetsAudioId'?: number;
'assetsRoleId'?: number;
}
export interface o_event { export interface o_event {
'createTime'?: number | null; 'createTime'?: number | null;
'detail'?: string | null; 'detail'?: string | null;
@ -236,13 +263,15 @@ export interface o_videoTrack {
} }
export interface DB { export interface DB {
"_o_project_old_20260404": _o_project_old_20260404;
"_o_prompt_old_20260406": _o_prompt_old_20260406;
"_o_prompt_old_20260406_1": _o_prompt_old_20260406_1;
"memories": memories; "memories": memories;
"o_agentDeploy": o_agentDeploy; "o_agentDeploy": o_agentDeploy;
"o_agentWorkData": o_agentWorkData; "o_agentWorkData": o_agentWorkData;
"o_artStyle": o_artStyle; "o_artStyle": o_artStyle;
"o_assets": o_assets; "o_assets": o_assets;
"o_assets2Storyboard": o_assets2Storyboard; "o_assets2Storyboard": o_assets2Storyboard;
"o_assetsRole2Audio": o_assetsRole2Audio;
"o_event": o_event; "o_event": o_event;
"o_eventChapter": o_eventChapter; "o_eventChapter": o_eventChapter;
"o_image": o_image; "o_image": o_image;