78 lines
2.9 KiB
TypeScript
78 lines
2.9 KiB
TypeScript
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");
|
|
}
|
|
}
|
|
|
|
} |