1.9 KiB
1.9 KiB
启用Stats功能说明
在运行了 create-prompt-stats-table.sql
创建了 prompt_stats
表之后,请按以下步骤启用完整的统计功能:
1. 更新Plaza API
在 src/app/api/plaza/route.ts
中,更新include部分,恢复stats查询:
include: {
user: { /* ... */ },
tags: { /* ... */ },
versions: { /* ... */ },
stats: { // 添加这个部分
select: {
viewCount: true,
likeCount: true,
rating: true,
ratingCount: true,
}
},
_count: { /* ... */ }
}
2. 启用浏览计数API
在 src/app/api/plaza/[id]/view/route.ts
中,取消注释并启用以下代码:
// 将这些注释的代码恢复:
await prisma.promptStats.upsert({
where: { promptId: promptId },
update: { viewCount: { increment: 1 } },
create: { promptId: promptId, viewCount: 1 }
})
3. 可选:添加按浏览量排序
如果需要按浏览量排序,可以在Plaza API和前端组件中添加相关逻辑:
后端 (plaza/route.ts):
// 排序条件
const orderBy: Record<string, any> = {}
if (sortBy === 'viewCount') {
orderBy.stats = { viewCount: sortOrder }
} else if (sortBy === 'name') {
orderBy.name = sortOrder
} else {
orderBy.createdAt = sortOrder
}
前端 (PlazaFilters.tsx):
在SelectContent中添加:
<SelectItem value="viewCount">{t('sortByMostViewed')}</SelectItem>
4. 重新生成Prisma客户端
npm run db:generate
5. 重启开发服务器
npm run dev
当前状态
现在的代码已经修复了所有错误,即使没有stats表也能正常运行:
- ✅ Plaza页面可以显示提示词
- ✅ Studio页面正常工作
- ✅ 搜索和过滤功能正常
- ✅ 复制和分享功能正常
- ⏳ 浏览计数功能暂时禁用(等待数据库表创建)
一旦运行了SQL脚本创建表,就可以按上述步骤启用完整的统计功能。