v0.11.1: 权限体系重构 + AI管线优化 + 内容整理

This commit is contained in:
sgp
2026-05-22 18:36:41 +08:00
parent 7955d11c52
commit b33fe1e8e1
397 changed files with 30940 additions and 161 deletions
+74
View File
@@ -0,0 +1,74 @@
import { PrismaClient } from "@prisma/client";
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
import "dotenv/config";
const base = process.env.DATABASE_URL || "mysql://localhost:3306/zhuiguang_ai?charset=utf8mb4";
const sep = base.includes("?") ? "&" : "?";
const connectionString = `${base}${sep}connection_limit=20&pool_timeout=30`;
const adapter = new PrismaMariaDb(connectionString);
const prisma = new PrismaClient({ adapter });
async function main() {
console.log("🔧 内容整理脚本\n");
// 1. 删除 JavaGuide 的评测(非AI项目不应有评测)
const javaGuide = await prisma.skillReview.findFirst({
where: { skill: { name: { contains: "JavaGuide" } } },
include: { skill: true },
});
if (javaGuide) {
await prisma.skillReview.delete({ where: { id: javaGuide.id } });
console.log(`🗑️ 已删除 JavaGuide 评测 #${javaGuide.id}`);
}
// 2. 删除 system-prompts 评测(纯资源收集,非AI工具)
const sysPrompts = await prisma.skillReview.findFirst({
where: { skill: { name: { contains: "system-prompts" } } },
include: { skill: true },
});
if (sysPrompts) {
await prisma.skillReview.delete({ where: { id: sysPrompts.id } });
console.log(`🗑️ 已删除 system-prompts 评测 #${sysPrompts.id}`);
}
// 3. 发布所有 DRAFT 评测
const draftReviews = await prisma.skillReview.findMany({
where: { status: "DRAFT" },
include: { skill: { select: { name: true } } },
});
for (const r of draftReviews) {
await prisma.skillReview.update({
where: { id: r.id },
data: { status: "PUBLISHED" },
});
console.log(`✅ 已发布评测 #${r.id}: ${r.skill.name} (overall: ${r.overall})`);
}
// 4. 发布所有 DRAFT 技能
const draftSkills = await prisma.skill.findMany({
where: { status: "draft" },
});
for (const s of draftSkills) {
await prisma.skill.update({
where: { id: s.id },
data: { status: "published" },
});
console.log(`✅ 已发布技能 #${s.id}: ${s.name}`);
}
// 5. 统计最终状态
const [skillTotal, publishedSkills, reviewTotal, publishedReviews] = await Promise.all([
prisma.skill.count(),
prisma.skill.count({ where: { status: "published" } }),
prisma.skillReview.count(),
prisma.skillReview.count({ where: { status: "PUBLISHED" } }),
]);
console.log(`\n📊 整理后状态:`);
console.log(` 技能: ${publishedSkills}/${skillTotal} 已发布`);
console.log(` 评测: ${publishedReviews}/${reviewTotal} 已发布`);
}
main()
.catch((e) => { console.error("💥", e.message); process.exit(1); })
.finally(() => prisma.$disconnect());