# 后台管理系统设计与开发

## 1. 系统架构设计

### 1.1 技术栈
- **前端**：Vue3 + TypeScript + Vite + Element Plus
- **后端**：Golang + Gin + MySQL
- **认证**：JWT
- **权限控制**：基于角色的访问控制（RBAC）
- **可视化**：ECharts

### 1.2 数据库设计

#### 1.2.1 现有表结构
- posts（博客文章表）
- works（作品表）
- snippets（代码片段表）
- users（用户表）
- tags（标签表）
- post_tags（文章标签关联表）
- settings（配置表）
- access_logs（访问日志表）

#### 1.2.2 新增表结构
- post_history（文章历史记录表）：用于记录文章的编辑修改轨迹

### 1.3 后端API设计

#### 1.3.1 认证模块
- POST /api/admin/login - 登录
- POST /api/admin/logout - 登出
- POST /api/admin/refresh - 刷新令牌

#### 1.3.2 用户管理
- GET /api/admin/users - 获取用户列表
- POST /api/admin/users - 创建用户
- GET /api/admin/users/:id - 获取用户详情
- PUT /api/admin/users/:id - 更新用户
- DELETE /api/admin/users/:id - 删除用户

#### 1.3.3 角色管理
- GET /api/admin/roles - 获取角色列表
- POST /api/admin/roles - 创建角色
- GET /api/admin/roles/:id - 获取角色详情
- PUT /api/admin/roles/:id - 更新角色
- DELETE /api/admin/roles/:id - 删除角色

#### 1.3.4 文章管理
- GET /api/admin/posts - 获取文章列表
- POST /api/admin/posts - 创建文章
- GET /api/admin/posts/:id - 获取文章详情
- PUT /api/admin/posts/:id - 更新文章
- DELETE /api/admin/posts/:id - 删除文章
- GET /api/admin/posts/:id/history - 获取文章历史记录
- GET /api/admin/posts/:id/history/:version - 获取文章指定版本
- POST /api/admin/posts/:id/history/:version/restore - 恢复文章到指定版本

#### 1.3.5 作品管理
- GET /api/admin/works - 获取作品列表
- POST /api/admin/works - 创建作品
- GET /api/admin/works/:id - 获取作品详情
- PUT /api/admin/works/:id - 更新作品
- DELETE /api/admin/works/:id - 删除作品

#### 1.3.6 代码片段管理
- GET /api/admin/snippets - 获取代码片段列表
- POST /api/admin/snippets - 创建代码片段
- GET /api/admin/snippets/:id - 获取代码片段详情
- PUT /api/admin/snippets/:id - 更新代码片段
- DELETE /api/admin/snippets/:id - 删除代码片段

#### 1.3.7 系统配置
- GET /api/admin/settings - 获取系统配置
- PUT /api/admin/settings - 更新系统配置

#### 1.3.8 操作日志
- GET /api/admin/logs - 获取操作日志
- GET /api/admin/logs/stats - 获取日志统计

#### 1.3.9 数据统计
- GET /api/admin/stats - 获取系统统计数据

### 1.4 前端界面设计

#### 1.4.1 页面结构
- 登录页面
- 仪表盘（首页）
- 用户管理
- 角色管理
- 文章管理
  - 文章列表
  - 文章编辑
  - 文章历史记录
- 作品管理
- 代码片段管理
- 系统配置
- 操作日志
- 数据统计

#### 1.4.2 权限控制
- 基于角色的菜单权限
- 基于权限的按钮级控制

## 2. 实施步骤

### 2.1 后端开发
1. 创建文章历史记录模型
2. 实现文章历史记录相关API
3. 实现用户认证和授权中间件
4. 实现用户管理API
5. 实现角色管理API
6. 实现文章管理API（含历史记录功能）
7. 实现作品管理API
8. 实现代码片段管理API
9. 实现系统配置API
10. 实现操作日志API
11. 实现数据统计API

### 2.2 前端开发
1. 创建管理系统前端项目
2. 实现登录页面
3. 实现仪表盘
4. 实现用户管理页面
5. 实现角色管理页面
6. 实现文章管理页面
7. 实现作品管理页面
8. 实现代码片段管理页面
9. 实现系统配置页面
10. 实现操作日志页面
11. 实现数据统计页面

### 2.3 测试与部署
1. 单元测试
2. 集成测试
3. 安全测试
4. 部署到生产环境

## 3. 安全设计

### 3.1 数据安全
- 密码加密存储（bcrypt）
- JWT令牌认证
- HTTPS传输

### 3.2 防止攻击
- SQL注入防护（使用参数化查询）
- XSS攻击防护（输入验证、输出转义）
- CSRF防护
- 接口限流

### 3.3 日志审计
- 操作日志记录
- 登录日志记录
- 异常日志记录

## 4. 性能优化

### 4.1 后端优化
- 数据库索引优化
- 缓存策略
- 连接池优化

### 4.2 前端优化
- 路由懒加载
- 组件按需加载
- 图片懒加载
- 接口请求优化

## 5. 响应式设计
- 适配桌面端、平板、移动端
- 响应式布局
- 自适应菜单