主站资讯系统(News)发布
主站资讯系统(News)功能全览
---
一、数据架构
| 数据表 | 说明 |
|--------|------|
| news | 主站资讯独立表,与子站 articles 物理隔离 |
| news_categories | 主站资讯分类,管理员可增删改 |
news 表核心字段: title、slug(唯一)、content(Markdown)、excerpt、coverImage、categoryId、tags(JSON)、authorId/authorName、status(draft/published)、isTop、accessLevel、viewCount、seoTitle、seoDescription、publishedAt
---
二、前台展示(SSR)
| 路由 | 功能 |
|------|------|
| /news | 资讯列表页,支持分类筛选、置顶优先排序、动态渲染(Cookie 感知权限过滤) |
| /news/[slug] | 资讯详情页,含上一篇/下一篇导航、浏览量统计、JSON-LD 结构化数据 |
SEO 能力:
noindex, nofollow,sitemap 排除---
三、查看权限分级控制
6 级可见性模型,设为某层级后该层级及以上均可见:
| 层级 | 角色 | 判定逻辑 |
|------|------|----------|
| L0 | 普通访客 | 默认,无需登录 |
| L1 | 注册用户 | 持有有效 token |
| L2 | 付费用户 | planExpiresAt > NOW() 或 membershipExpiresAt > NOW() |
| L3 | 代理商 | agents 表 partnerType=agent 且 status=1 |
| L4 | 员工 | agents 表 partnerType=staff 且 status=1 |
| L5 | 管理员 | users.role=admin |
执行策略:
WHERE access_level <= viewerLevel,权限外资讯物理不返回---
四、管理端(Admin)
| 路由/接口 | 功能 |
|-----------|------|
| /admin/news | 资讯列表管理(筛选、分页、删除) |
| /admin/news/new | 新建资讯 |
| /admin/news/[id]/edit | 编辑资讯 |
| /admin/news-categories | 分类管理(增删改) |
| POST/PUT /api/admin/news | 创建/更新(含置顶、权限设置) |
| DELETE /api/admin/news/[id] | 删除资讯 |
| POST /api/admin/news/upload | 图片上传(OSS) |
---
五、员工端(Agent)
| 路由/接口 | 功能 |
|-----------|------|
| /agent/news | 员工查看自己发布的资讯列表 |
| /agent/news/new | 新建资讯(无置顶选项) |
| /agent/news/[id]/edit | 编辑自己的资讯 |
| GET/PUT/DELETE /api/agent/news/[id] | 仅能操作 authorId=自己 的资讯 |
| POST /api/agent/news/upload | 图片上传(agent-token 鉴权) |
数据隔离: 员工只能 CRUD 自己创建的资讯,管理员可管理全部。
---
六、发布页 AI 辅助能力
| 能力 | 实现 |
|------|------|
| Toast UI Editor | WYSIWYG + Markdown 双模式,暗色主题 |
| 封面在线上传 | 文件选择 → 直传 OSS |
| 粘贴图片直传 | 拦截 paste 事件 → FormData 上传 → 自动插入 Markdown 图片引用 |
| AI 生成封面 | 通义千问生成提示词 → 通义万相(wanx-v1)生成 1280×720 图 → 转存 OSS |
| AI 一键填充 | 根据标题+正文,一次性生成摘要、SEO Title/Description、标签 |
| AI 生成摘要 | 单独生成 excerpt(兜底) |
| Slug 智能生成 | 根据标题自动生成 URL-friendly 短 slug,支持手动覆盖 |
| 标签管理 | AI 推荐 + 手动添加,chip 式交互 |
AI 接口:
POST /api/news-ai/assist — 生成 slug/excerpt/seo/tags(双通道鉴权:admin + agent)POST /api/news-ai/cover — AI 生成封面图(异步轮询,60s 超时)---
七、公开 API
| 接口 | 说明 |
|------|------|
| GET /api/news | 公开资讯列表(分页、分类筛选) |
| GET /api/news/[slug] | 公开资讯详情 + 浏览量自增 |
---
八、技术要点
force-dynamic(因权限过滤依赖 Cookie,不可 ISR 缓存)dynamic import + ssr: false