172 lines
4.3 KiB
Markdown
172 lines
4.3 KiB
Markdown
# 后台管理系统设计与开发
|
||
|
||
## 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. 响应式设计
|
||
- 适配桌面端、平板、移动端
|
||
- 响应式布局
|
||
- 自适应菜单 |