import { CheckFolderExistsOrCreate, DeleteFolderAllFile } from "../../../define/Tools/file"; import { BookTaskService } from "../../../define/db/service/Book/bookTaskService"; import { BookTaskDetailService } from "../../../define/db/service/Book/bookTaskDetailService"; import { BookService } from "../../../define/db/service/Book/bookService"; import { BookTaskStatus, OperateBookType } from "../../../define/enum/bookEnum"; import { errorMessage, successMessage } from "../../Public/generalTools"; import { Book } from "../../../model/book"; /** * 小说批次相关的操作 */ export class BookTask { bookTaskService: BookTaskService bookTaskDetailService: BookTaskDetailService bookService: BookService constructor() { } async InitService() { if (!this.bookTaskService) { this.bookTaskService = await BookTaskService.getInstance() } if (!this.bookTaskDetailService) { this.bookTaskDetailService = await BookTaskDetailService.getInstance() } if (!this.bookService) { this.bookService = await BookService.getInstance() } } /** * 重置小说任务数据 * @param bookTaskId 小说任务ID */ async ReSetBookTask(bookTaskId: string) { try { console.log(bookTaskId) await this.InitService() let bookTask = this.bookTaskService.GetBookTaskDataById(bookTaskId); if (bookTask == null) { throw new Error('未找到对应的小说任务') } this.bookTaskService.ResetBookTask(bookTaskId); // 数据库删除完毕,看是删除对应的文件(主要是图片) let imageFolder = bookTask.imageFolder; // 整个删掉在重建 await DeleteFolderAllFile(imageFolder) await CheckFolderExistsOrCreate(imageFolder) return successMessage(null, "重置小说数据成功", "BookTask_ReSetBookTask") } catch (error) { return errorMessage('重置小说批次数据失败,错误信息如下' + error.toString(), "BookTask_ReSetBookTask"); } } /** * 删除对应的小说批次数据 * @param bookTaskId 小说批次ID */ async DeleteBookTask(bookTaskId: string) { try { await this.InitService(); let bookTask = this.bookTaskService.GetBookTaskDataById(bookTaskId); if (bookTask == null) { throw new Error('未找到对应的小说任务,无法执行删除操作') } let imageFolder = bookTask.imageFolder; // 先删除每个批次对应的数据,然后删除批次 this.bookTaskService.DeleteBookTask(bookTaskId); // 删除成功,直接把对应的出图文件夹删掉 await DeleteFolderAllFile(imageFolder, true) return successMessage(null, "删除小说批次数据成功", "BookTask_DeleteBookTask") } catch (error) { return errorMessage('删除小说批次数据失败,错误信息如下' + error.toString(), "BookTask_DeleteBookTask"); } } }