管理后台
管理后台是仅英文的后台管理系统,位于 /{locale}/admin/。仅 ADMIN 角色的用户可以访问。
访问方式
- 在
.env中设置ADMIN_EMAIL和ADMIN_PASSWORD以初始化管理员账号 - 运行
npx prisma db seed(或pnpm seed:one进行单独初始化) - 使用管理员凭据登录
- 导航至
/admin
功能模块
仪表盘(/admin)
概览页面,显示关键指标和快捷链接。
应用管理(/admin/app/)
解读管理
- 查看所有解读,支持筛选(状态、访客/用户、牌阵类型)
- 检查单次解读详情:问题、牌面、AI 输出、聊天消息
- 查看 AI API 调用指标(Token 数、耗时、使用的模型)
- 访客解读筛选显示 Token/IP 信息
- 用于测试的"重置每日限制"操作
用户管理
- 用户列表,支持搜索和筛选
- 查看用户详情:资料、订阅、积分余额、解读历史
- 积分历史和交易记录
反馈管理
- 审查用户反馈提交
- 按状态筛选:待处理、已审核、已解决
- 查看附带的截图
- 添加管理员备注
- 更新反馈状态
博客 CMS(/admin/blog/)
文章
- 创建、编辑和管理博客文章
- 多语言内容的富文本编辑器
- 草稿/已发布/定时发布/已归档状态
- 精选文章开关
- 分类和标签分配
- 每种语言的 SEO 元数据(标题、描述、关键词)
分类
- 创建和管理博客分类
- 多语言分类名称
- 排序控制
标签
- 创建和管理博客标签
- 多语言标签名称
作者
- 创建和管理作者资料
- 多语言简介
- 头像上传
系统(/admin/system/)
系统配置和管理工具。
关键设计决策
- 仅英文 — 管理页面不使用
useTrans,所有 UI 文本硬编码为英文 - Sonner 作为提示 — 管理后台直接使用
sonner(而非@/lib/toast) - Server Actions 处理数据变更 — 管理后台的 CRUD 操作使用 Next.js Server Actions
- 管理员权限检查 — 路由中间件在渲染前验证
role === 'ADMIN'