## 十二、内容管理模块设计 ### 12.1 功能概述 管理员在后台创建/编辑文章内容(富文本+图片+视频),提交审核后由系统管理员审批,审批通过后发布到APP展示。 ### 12.2 角色与权限 | 角色 | 权限 | 说明 | |------|------|------| | 普通管理员 | 创建、编辑草稿,提交审核 | 可新建和修改文章,提交待审核 | | 系统管理员 | 审核通过/拒绝,发布/下架、物理删除 | 拥有最终审批权,可管理所有文章 | ### 12.3 状态流转 ``` 草稿(DRAFT) → 待审核(PENDING) → 已发布(PUBLISHED) ↓ ↓ 已拒绝(REJECTED) 已下架(OFFLINE) ↓ 物理删除(DELETED) ``` ### 12.4 数据模型 **文章表 (content_article)** | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT | 主键 | | title | VARCHAR(200) | 文章标题 | | content | LONGTEXT | 富文本内容(含HTML标签、图片) | | cover_image | VARCHAR(500) | 封面图URL | | author | VARCHAR(50) | 作者 | | summary | VARCHAR(500) | 文章摘要 | | status | VARCHAR(20) | 状态 | | reject_reason | VARCHAR(500) | 拒绝原因 | | view_count | INT | 浏览次数 | | publish_time | DATETIME | 发布时间 | | create_by | BIGINT | 创建人ID | | create_time | DATETIME | 创建时间 | | update_by | BIGINT | 更新人ID | | update_time | DATETIME | 更新时间 | | deleted | TINYINT | 逻辑删除(0正常1删除) | **文章附件表 (content_attachment)** | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT | 主键 | | article_id | BIGINT | 关联文章ID | | file_type | VARCHAR(20) | 文件类型(IMAGE/VIDEO) | | file_url | VARCHAR(500) | 文件URL | | file_size | INT | 文件大小(字节) | | file_name | VARCHAR(200) | 原文件名 | | create_time | DATETIME | 上传时间 | ### 12.5 API设计 **后台管理接口** | 方法 | 路径 | 说明 | 权限 | |------|------|------|------| | POST | /api/content/articles | 新建文章 | 普通管理员+ | | PUT | /api/content/articles/{id} | 编辑文章 | 普通管理员+ | | DELETE | /api/content/articles/{id} | 删除文章 | 系统管理员 | | GET | /api/content/articles/{id} | 获取文章详情 | 普通管理员+ | | GET | /api/content/articles | 文章列表(分页) | 普通管理员+ | | POST | /api/content/articles/{id}/submit | 提交审核 | 普通管理员+ | | POST | /api/content/articles/{id}/publish | 发布文章 | 系统管理员 | | POST | /api/content/articles/{id}/reject | 拒绝审核 | 系统管理员 | | POST | /api/content/articles/{id}/offline | 下架文章 | 系统管理员 | | POST | /api/content/articles/{id}/online | 上架文章 | 系统管理员 | **APP端接口** | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/app/articles | 文章列表(已发布的) | | GET | /api/app/articles/{id} | 文章详情 | ### 12.6 文件存储 - **当前**:本地服务器目录存储 - **上云时**:修改配置为OSS/七牛云URL,无需改代码 **文件限制** | 类型 | 格式 | 大小限制 | |------|------|----------| | 图片 | JPG, PNG, GIF | 可配置(建议5MB) | | 视频 | MP4 | 可配置(建议50MB) | ### 管理端 管理端 管理端功能都要有、app前端先不用实现 阿里云oss访问控制 AccessKey ID LTAI5t7NZAFYFAcmh68MvFLK AccessKey Secret hEs6C02BCKycfoq5AzHvFSb3KAMIyb 存储桶:ajy001 地区:华北2北京 后端在backend 管理端在frontend 文字编写用富文本组件、支持上传到oss,以及展示。不要有bug,存储逻辑都要实现好。权限管理也要实现好。 管理员都在app_user表里面。sys_user表没用