peixue-dev/Archive/peidu-temp-files/docs/🎯评价系统架构图-2026-01-23.md

365 lines
12 KiB
Markdown
Raw Normal View History

2026-02-28 17:26:03 +08:00
# 🎯 评价系统架构图
## 系统架构总览
```
┌─────────────────────────────────────────────────────────────┐
│ 评价系统架构 │
└─────────────────────────────────────────────────────────────┘
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 家长端 │ │ 陪伴员端 │ │ 管理师端 │
│ │ │ │ │ │
│ • 提交评价 │ │ • 查看评价 │ │ • 评价统计 │
│ • 查看评价 │ │ • 回复评价 │ │ • 评价管理 │
│ • 上传图片 │ │ • 评价统计 │ │ • 数据分析 │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└────────────────────┼────────────────────┘
┌───────▼────────┐
│ API Gateway │
│ (ReviewAPI) │
└───────┬────────┘
┌───────▼────────┐
│ ReviewController│
│ │
│ • submit │
│ • getDetail │
│ • getMyList │
│ • getTeacherList│
│ • reply │
└───────┬────────┘
┌───────▼────────┐
│ ReviewService │
│ │
│ • 业务逻辑 │
│ • 权限验证 │
│ • 数据处理 │
└───────┬────────┘
┌───────▼────────┐
│ ReviewMapper │
│ │
│ • SQL查询 │
│ • 关联查询 │
└───────┬────────┘
┌───────▼────────┐
│ MySQL数据库 │
│ │
│ • review表 │
│ • order表 │
│ • user表 │
│ • teacher表 │
│ • student表 │
└─────────────────┘
```
---
## 数据流转图
### 1. 评价提交流程
```
家长端
├─ 1. 点击"去评价"按钮
│ (order/detail.vue 或 order/my-orders.vue)
├─ 2. 跳转到评价提交页面
│ (user-package/pages/review/submit.vue)
├─ 3. 填写评价内容
│ • 服务态度评分 (1-5星)
│ • 教学质量评分 (1-5星)
│ • 准时性评分 (1-5星)
│ • 文字评价
│ • 上传图片 (最多9张)
│ • 是否匿名
├─ 4. 提交评价
│ POST /api/review/submit
后端处理
├─ 5. ReviewController.submitReview()
│ • 获取用户ID
│ • 调用Service层
├─ 6. ReviewService.submitReview()
│ • 验证订单存在
│ • 验证订单归属
│ • 验证订单状态 (3或4)
│ • 检查是否已评价
│ • 计算综合评分
│ • 处理图片JSON
│ • 保存评价
│ • 更新订单状态
├─ 7. ReviewMapper.insert()
│ • 插入review表
├─ 8. OrderMapper.updateById()
│ • 更新order.reviewed = true
返回结果
└─ 9. 前端显示成功
• 提示"评价成功"
• 跳转到评价列表
```
---
### 2. 评价查看流程
```
家长端
├─ 1. 点击"我的评价"
│ (pages/user/index.vue)
├─ 2. 跳转到评价列表
│ (user-package/pages/review/list.vue)
├─ 3. 加载评价列表
│ GET /api/review/my-list
后端处理
├─ 4. ReviewController.getMyReviewList()
│ • 获取用户ID
├─ 5. ReviewService.getUserReviewList()
│ • 调用Mapper查询
├─ 6. ReviewMapper.getUserReviewList()
│ • 关联查询订单信息
│ • 关联查询陪伴员信息
│ • 关联查询学生信息
│ • 返回ReviewVO列表
返回结果
└─ 7. 前端展示评价列表
• 显示评分
• 显示内容
• 显示图片
• 显示陪伴员回复
```
---
### 3. 陪伴员查看和回复流程
```
陪伴员端
├─ 1. 进入评价列表
│ (teacher-package/pages/teacher/reviews.vue)
├─ 2. 加载评价列表
│ GET /api/review/teacher/{teacherId}
├─ 3. 查看评价详情
├─ 4. 点击"回复"按钮
├─ 5. 输入回复内容
├─ 6. 提交回复
│ POST /api/review/reply/{reviewId}
后端处理
├─ 7. ReviewController.replyReview()
│ • 获取陪伴员ID
├─ 8. ReviewService.replyReview()
│ • 验证评价存在
│ • 验证权限(只能回复自己的评价)
│ • 检查是否已回复
│ • 更新回复内容
│ • 设置回复时间
├─ 9. ReviewMapper.updateById()
│ • 更新review.replyContent
│ • 更新review.replyTime
返回结果
└─ 10. 前端显示回复成功
• 刷新评价列表
• 显示回复内容
```
---
## 数据库关系图
```
┌─────────────────┐
│ order表 │
│ │
│ • id │◄────┐
│ • orderNo │ │
│ • userId │ │
│ • teacherId │ │
│ • studentId │ │
│ • status │ │
│ • reviewed │ │ 关联
└─────────────────┘ │
┌─────────────────┐ │
│ review表 │ │
│ │ │
│ • id │ │
│ • orderId │─────┘
│ • userId │─────┐
│ • teacherId │─────┼─┐
│ • studentId │─────┼─┼─┐
│ • serviceScore │ │ │ │
│ • qualityScore │ │ │ │
│ • punctualityScore│ │ │ │
│ • overallScore │ │ │ │
│ • content │ │ │ │
│ • images │ │ │ │
│ • isAnonymous │ │ │ │
│ • replyContent │ │ │ │
│ • replyTime │ │ │ │
└─────────────────┘ │ │ │
│ │ │
┌─────────────────┐ │ │ │
│ user表 │◄────┘ │ │
│ │ │ │
│ • id │ │ │
│ • phone │ │ │
│ • nickname │ │ │
└─────────────────┘ │ │
│ │
┌─────────────────┐ │ │
│ teacher表 │◄──────┘ │
│ │ │
│ • id │ │
│ • name │ │
│ • phone │ │
│ • rating │ │
└─────────────────┘ │
┌─────────────────┐ │
│ student表 │◄────────┘
│ │
│ • id │
│ • studentName │
│ • age │
└─────────────────┘
```
---
## 页面路由图
```
家长端路由
├─ /pages/user/index.vue (个人中心)
│ └─ 点击"我的评价" → /user-package/pages/review/list.vue
├─ /order-package/pages/order/my-orders.vue (我的订单)
│ ├─ 点击"评价" → /user-package/pages/review/submit.vue
│ └─ 点击"查看反馈" → /user-package/pages/review/list.vue
├─ /order-package/pages/order/detail.vue (订单详情)
│ ├─ 点击"去评价" → /user-package/pages/review/submit.vue
│ └─ 点击"查看评价" → /user-package/pages/review/list.vue
├─ /user-package/pages/review/submit.vue (评价提交)
│ └─ 提交成功 → /user-package/pages/review/list.vue
└─ /user-package/pages/review/list.vue (评价列表)
陪伴员端路由
├─ /teacher-package/pages/teacher/reviews.vue (评价列表)
│ └─ 点击"回复" → 弹窗输入回复
└─ /pages/teacher/detail.vue (陪伴员详情)
└─ 点击"查看评价" → /teacher-package/pages/teacher/reviews.vue
管理师端路由
├─ /manager-package/pages/manager/teacher-detail.vue (陪伴员详情)
│ └─ 点击"查看评价" → /manager-package/pages/manager/teacher-reviews.vue
└─ /manager-package/pages/manager/reports.vue (汇总报告)
└─ 显示评价详情
```
---
## API接口清单
| 接口 | 方法 | 路径 | 说明 | 权限 |
|------|------|------|------|------|
| 提交评价 | POST | `/api/review/submit` | 家长提交评价 | 家长 |
| 评价详情 | GET | `/api/review/{id}` | 查询评价详情 | 所有 |
| 我的评价 | GET | `/api/review/my-list` | 家长查看自己的评价 | 家长 |
| 陪伴员评价 | GET | `/api/review/teacher/{teacherId}` | 查询陪伴员的评价 | 所有 |
| 检查评价 | GET | `/api/review/check/{orderId}` | 检查订单是否已评价 | 所有 |
| 回复评价 | POST | `/api/review/reply/{reviewId}` | 陪伴员回复评价 | 陪伴员 |
---
## 权限控制
```
家长端
├─ ✅ 可以提交评价(自己的订单)
├─ ✅ 可以查看自己的评价
├─ ✅ 可以查看陪伴员的评价
└─ ❌ 不能回复评价
陪伴员端
├─ ✅ 可以查看自己收到的评价
├─ ✅ 可以回复评价(自己的评价)
├─ ❌ 不能提交评价
└─ ❌ 不能删除评价
管理师端
├─ ✅ 可以查看所有评价
├─ ✅ 可以查看评价统计
├─ ❌ 不能提交评价
└─ ❌ 不能回复评价(可扩展)
```
---
## 状态流转
```
订单状态
├─ 0: 待支付 ❌ 不能评价
├─ 1: 待派单 ❌ 不能评价
├─ 2: 待服务 ❌ 不能评价
├─ 3: 服务中 ✅ 可以评价
├─ 4: 已完成 ✅ 可以评价
└─ 5: 已取消 ❌ 不能评价
评价状态
├─ 未评价 → 点击"去评价" → 评价提交页
├─ 已评价 → 点击"查看评价" → 评价列表页
└─ 已回复 → 显示陪伴员回复内容
```
---
**创建时间**2026-01-23
**系统版本**v1.0