|
|
@@ -636,6 +636,25 @@ export class BookStore {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 删除书籍的所有章节(全量重新生成前清理旧数据)
|
|
|
+ */
|
|
|
+ async deleteAllChapters(bookId: string): Promise<number> {
|
|
|
+ const bookIdNum = parseInt(bookId);
|
|
|
+ // 先删子节点再删章,避免外键依赖
|
|
|
+ const { count: deletedPlaylistItems } = await prisma.playlistItem.deleteMany({
|
|
|
+ where: { chapter: { bookId: bookIdNum } },
|
|
|
+ });
|
|
|
+ const { count: deletedTtsTasks } = await prisma.ttsTask.deleteMany({
|
|
|
+ where: { chapter: { bookId: bookIdNum } },
|
|
|
+ });
|
|
|
+ const { count: deletedChapters } = await prisma.bookChapter.deleteMany({
|
|
|
+ where: { bookId: bookIdNum },
|
|
|
+ });
|
|
|
+ console.log(`[Store] 清理书籍${bookId}旧数据: ${deletedChapters}章, ${deletedTtsTasks}个TTS任务, ${deletedPlaylistItems}个播放列表项`);
|
|
|
+ return deletedChapters;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 创建章节
|
|
|
*/
|