| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- const { PrismaClient } = require('@prisma/client');
- const prisma = new PrismaClient();
- async function checkAllBooks() {
- const books = await prisma.book.findMany({
- orderBy: { id: 'desc' },
- take: 10
- });
-
- console.log('\n📊 所有书籍生成状态检查:\n');
- console.log('=' .repeat(80));
-
- for (const book of books) {
- const chapters = await prisma.bookChapter.findMany({
- where: { bookId: book.id }
- });
-
- const chapterCount = chapters.filter(c => c.level === 1).length;
- const sectionCount = chapters.filter(c => c.level === 2).length;
- const subsectionCount = chapters.filter(c => c.level === 3).length;
-
- const completedContent = chapters.filter(c => c.level === 3 && c.contentStatus === 'completed').length;
- const generatingContent = chapters.filter(c => c.level === 3 && c.contentStatus === 'generating').length;
- const failedContent = chapters.filter(c => c.level === 3 && c.contentStatus === 'failed').length;
-
- const totalWords = chapters.reduce((sum, c) => sum + (c.wordCount || 0), 0);
-
- console.log(`\n📖 Book ID: ${book.id}`);
- console.log(` 标题: ${book.title}`);
- console.log(` 状态: ${book.status}`);
- console.log(` 进度: ${book.progress}%`);
- console.log(` 规模: ${book.bookScale}`);
- console.log(` 大纲: ${chapterCount}章 / ${sectionCount}节 / ${subsectionCount}小节`);
- console.log(` 内容: ${completedContent}完成 / ${generatingContent}生成中 / ${failedContent}失败`);
- console.log(` 总字数: ${totalWords.toLocaleString()}字`);
-
- // 检查是否有异常
- const issues = [];
- if (book.status === 'generating' && book.progress > 90) {
- issues.push('⚠️ 进度超过90%但仍在generating状态');
- }
- if (failedContent > 0) {
- issues.push(`❌ 有${failedContent}个小节生成失败`);
- }
- if (book.status === 'failed') {
- issues.push(`❌ 书籍状态为failed: ${book.error || '未知错误'}`);
- }
-
- if (issues.length > 0) {
- console.log(` 问题:`);
- issues.forEach(issue => console.log(` ${issue}`));
- } else {
- console.log(` ✅ 状态正常`);
- }
- }
-
- console.log('\n' + '='.repeat(80));
- console.log('\n检查完成!\n');
-
- await prisma.$disconnect();
- }
- checkAllBooks().catch(console.error);
|