12 KiB
12 KiB
结伴客系统后台管理设计文档
1. 概述
1.1 设计目标
为结伴客系统提供功能完善、安全可靠的后台管理系统,支持系统管理员对用户、内容、商家、数据等进行全面管理。
1.2 设计原则
- 安全性: 采用RBAC权限控制,操作日志记录,敏感操作二次确认
- 易用性: 界面简洁直观,操作流程清晰
- 扩展性: 模块化设计,支持功能扩展
- 性能: 支持大数据量操作,响应快速
2. 系统架构
2.1 技术栈
- 前端: Vue 3 + TypeScript + Ant Design Vue
- 后端: Node.js + Express + MySQL + Redis
- 认证: JWT + RBAC权限控制
- 部署: Docker + Nginx
2.2 模块划分
后台管理系统
├── 认证模块
├── 用户管理模块
├── 内容管理模块
├── 商家管理模块
├── 数据统计模块
├── 权限管理模块
├── 系统配置模块
└── 操作日志模块
3. 功能模块设计
3.1 认证模块
3.1.1 登录功能
- 管理员账号密码登录
- JWT Token认证
- 登录状态保持
- 安全退出
3.1.2 权限验证
- 接口级别权限控制
- 页面级别权限控制
- 按钮级别权限控制
3.2 用户管理模块
3.2.1 用户列表
- 分页显示用户信息
- 搜索过滤功能
- 用户状态管理
- 用户详情查看
3.2.2 用户操作
- 启用/禁用用户
- 重置用户密码
- 查看用户行为日志
3.3 内容管理模块
3.3.1 内容审核
- 待审核内容列表
- 内容详情查看
- 审核通过/拒绝
- 批量审核操作
3.3.2 内容管理
- 已发布内容管理
- 违规内容处理
- 内容统计分析
3.4 商家管理模块
3.4.1 商家审核
- 商家入驻申请列表
- 商家资质审核
- 审核结果通知
3.4.2 商家管理
- 商家信息管理
- 商家状态控制
- 商家数据统计
3.5 数据统计模块
3.5.1 系统概览
- 用户统计数据
- 订单统计数据
- 内容统计数据
- 商家统计数据
3.5.2 趋势分析
- 用户增长趋势
- 订单趋势分析
- 收入趋势分析
- 数据图表展示
3.5.3 数据导出
- CSV格式导出
- Excel格式导出
- 自定义时间范围
3.6 权限管理模块
3.6.1 角色管理
- 角色列表查看
- 角色创建/编辑
- 角色权限分配
- 角色删除
3.6.2 权限管理
- 权限列表查看
- 权限分组管理
- 权限分配
3.6.3 用户角色分配
- 用户角色管理
- 批量角色分配
- 角色权限验证
3.7 系统配置模块
3.7.1 基础配置
- 网站基本信息
- 系统参数配置
- 上传文件配置
- 邮件短信配置
3.7.2 配置管理
- 配置项列表
- 配置值修改
- 配置分组管理
- 配置版本控制
3.8 操作日志模块
3.8.1 日志查询
- 操作日志列表
- 高级搜索功能
- 日志详情查看
3.8.2 日志分析
- 操作频率统计
- 异常操作检测
- 安全审计报告
4. 数据库设计
4.1 核心表结构
4.1.1 管理员表 (admins)
CREATE TABLE admins (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100),
real_name VARCHAR(50),
avatar VARCHAR(255),
status ENUM('active', 'inactive') DEFAULT 'active',
last_login_at DATETIME,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
4.1.2 角色表 (roles)
CREATE TABLE roles (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL UNIQUE,
description VARCHAR(255),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
4.1.3 权限表 (permissions)
CREATE TABLE permissions (
id VARCHAR(50) PRIMARY KEY,
name VARCHAR(50) NOT NULL,
description VARCHAR(255),
category VARCHAR(50),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
4.1.4 角色权限表 (role_permissions)
CREATE TABLE role_permissions (
role_id BIGINT NOT NULL,
permission_id VARCHAR(50) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (role_id, permission_id),
FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE,
FOREIGN KEY (permission_id) REFERENCES permissions(id) ON DELETE CASCADE
);
4.1.5 管理员角色表 (admin_roles)
CREATE TABLE admin_roles (
admin_id BIGINT NOT NULL,
role_id BIGINT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (admin_id, role_id),
FOREIGN KEY (admin_id) REFERENCES admins(id) ON DELETE CASCADE,
FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE
);
4.1.6 管理员操作日志表 (admin_operation_logs)
CREATE TABLE admin_operation_logs (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
admin_id BIGINT NOT NULL,
admin_name VARCHAR(50) NOT NULL,
module VARCHAR(50) NOT NULL,
operation VARCHAR(100) NOT NULL,
target_id VARCHAR(100),
target_type VARCHAR(50),
request_method VARCHAR(10),
request_url VARCHAR(500),
request_params TEXT,
ip_address VARCHAR(45),
user_agent VARCHAR(500),
status ENUM('success', 'failed') NOT NULL,
error_message TEXT,
execution_time INT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX idx_admin_id (admin_id),
INDEX idx_module (module),
INDEX idx_operation (operation),
INDEX idx_status (status),
INDEX idx_created_at (created_at)
);
4.1.7 系统配置表 (system_configs)
CREATE TABLE system_configs (
id VARCHAR(50) PRIMARY KEY,
name VARCHAR(100) NOT NULL,
value TEXT NOT NULL,
type ENUM('string', 'number', 'boolean', 'text', 'json') DEFAULT 'string',
group_name VARCHAR(50) DEFAULT 'general',
description VARCHAR(255),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_group (group_name)
);
4.2 数据关系图
erDiagram
admins ||--o{ admin_roles : has
roles ||--o{ admin_roles : assigned
roles ||--o{ role_permissions : has
permissions ||--o{ role_permissions : included
admins ||--o{ audit_logs : creates
admins {
bigint id
varchar username
varchar password
varchar email
varchar real_name
varchar avatar
enum status
datetime last_login_at
datetime created_at
datetime updated_at
}
roles {
bigint id
varchar name
varchar description
datetime created_at
datetime updated_at
}
permissions {
varchar id
varchar name
varchar description
varchar category
datetime created_at
}
5. API接口设计
5.1 认证接口
POST /admin/auth/login- 管理员登录GET /admin/auth/me- 获取当前管理员信息POST /admin/auth/logout- 退出登录POST /admin/auth/refresh- 刷新Token
5.2 用户管理接口
GET /admin/users- 获取用户列表GET /admin/users/{id}- 获取用户详情PUT /admin/users/{id}/status- 更新用户状态
5.3 内容管理接口
GET /admin/contents- 获取内容列表GET /admin/contents/{id}- 获取内容详情PUT /admin/contents/{id}/review- 审核内容POST /admin/contents/batch-review- 批量审核内容
5.4 商家管理接口
GET /admin/merchant-applications- 获取商家申请列表PUT /admin/merchant-applications/{id}/review- 审核商家申请GET /admin/merchants- 获取商家列表PUT /admin/merchants/{id}/status- 更新商家状态
5.5 数据统计接口
GET /admin/statistics- 获取系统统计数据GET /admin/statistics/trend- 获取数据趋势GET /admin/export/{type}- 导出数据
5.6 权限管理接口
GET /admin/roles- 获取角色列表POST /admin/roles- 创建角色PUT /admin/roles/{id}- 更新角色DELETE /admin/roles/{id}- 删除角色GET /admin/permissions- 获取权限列表POST /admin/users/{userId}/roles- 分配用户角色
5.7 系统配置接口
GET /admin/system-configs- 获取系统配置PUT /admin/system-configs/{id}- 更新系统配置POST /admin/system-configs/batch-update- 批量更新配置
5.8 操作日志接口
GET /admin/operation-logs- 获取操作日志列表GET /admin/operation-logs/{id}- 获取操作日志详情GET /admin/operation-logs/export- 导出操作日志GET /admin/operation-logs/statistics- 获取操作统计
6. 安全设计
6.1 认证安全
- JWT Token认证机制
- Token过期时间设置
- 密码加密存储(BCrypt)
- 登录失败次数限制
6.2 权限安全
- RBAC权限控制模型
- 接口级别权限验证
- 数据访问权限控制
6.3 操作安全
- 敏感操作二次确认
- 操作日志记录
- IP地址限制
- 操作频率限制
6.4 数据安全
- SQL注入防护
- XSS攻击防护
- CSRF攻击防护
- 数据加密传输(HTTPS)
7. 性能优化
7.1 数据库优化
- 合理的索引设计
- 查询性能优化
- 分页查询支持
- 数据库连接池
7.2 缓存优化
- Redis缓存应用
- 热点数据缓存
- 缓存更新策略
- 缓存失效机制
7.3 接口优化
- 接口响应时间优化
- 批量操作支持
- 异步处理机制
- 数据压缩传输
8. 部署方案
8.1 环境划分
- 开发环境(Development)
- 测试环境(Testing)
- 预生产环境(Staging)
- 生产环境(Production)
8.2 部署架构
负载均衡 (Nginx)
├── 后台管理前端 (Vue)
├── 后端API服务 (Spring Boot)
├── 数据库集群 (MySQL)
└── 缓存集群 (Redis)
8.3 监控告警
- 应用性能监控
- 错误日志监控
- 数据库监控
- 系统资源监控
9. 测试策略
9.1 单元测试
- 业务逻辑测试
- 服务层测试
- 工具类测试
9.2 集成测试
- API接口测试
- 数据库操作测试
- 权限验证测试
9.3 性能测试
- 并发用户测试
- 响应时间测试
- 负载能力测试
9.4 安全测试
- 权限绕过测试
- SQL注入测试
- XSS攻击测试
10. 维护计划
10.1 日常维护
- 日志文件清理
- 数据库备份
- 系统监控
- 性能优化
10.2 版本发布
- 版本控制策略
- 发布流程规范
- 回滚机制
- 版本兼容性
10.3 故障处理
- 故障响应流程
- 问题排查指南
- 恢复方案
- 事后总结
附录
A. 权限列表
| 权限ID | 权限名称 | 描述 | 分类 |
|---|---|---|---|
| user:view | 查看用户 | 允许查看用户列表和详情 | 用户管理 |
| user:manage | 管理用户 | 允许修改用户状态和信息 | 用户管理 |
| content:review | 审核内容 | 允许审核用户发布的内容 | 内容管理 |
| content:publish | 发布内容 | 允许发布系统公告和内容 | 内容管理 |
| data:view | 查看数据 | 允许查看系统统计数据 | 数据统计 |
| data:export | 导出数据 | 允许导出系统数据 | 数据统计 |
| role:manage | 管理角色 | 允许管理角色和权限 | 权限管理 |
| merchant:approve | 审核商家 | 允许审核商家入驻申请 | 商家管理 |
| system:config | 系统配置 | 允许修改系统配置参数 | 系统管理 |
| audit:view | 查看日志 | 允许查看操作日志 | 日志管理 |
| audit:export | 导出日志 | 允许导出操作日志 | 日志管理 |
| audit:statistics | 日志统计 | 允许查看操作日志统计 | 日志管理 |
B. 错误码说明
| 错误码 | 说明 | 处理建议 |
|---|---|---|
| 200 | 成功 | 操作成功 |
| 201 | 创建成功 | 资源创建成功 |
| 400 | 请求错误 | 检查请求参数 |
| 401 | 未授权 | 需要登录认证 |
| 403 | 禁止访问 | 权限不足 |
| 404 | 资源不存在 | 检查资源ID |
| 409 | 资源冲突 | 资源已存在 |
| 429 | 请求过多 | 降低请求频率 |
| 500 | 服务器错误 | 联系管理员 |
C. 版本历史
| 版本 | 日期 | 说明 |
|---|---|---|
| v1.0 | 2025-01-01 | 初始版本发布 |
| v1.1 | 2025-02-01 | 新增权限管理功能 |
| v1.2 | 2025-03-01 | 优化数据统计功能 |