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

12 KiB
Raw Blame History

🎯 评价系统架构图

系统架构总览

┌─────────────────────────────────────────────────────────────┐
│                        评价系统架构                          │
└─────────────────────────────────────────────────────────────┘

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   家长端     │     │  陪伴员端    │     │  管理师端    │
│              │     │              │     │              │
│ • 提交评价   │     │ • 查看评价   │     │ • 评价统计   │
│ • 查看评价   │     │ • 回复评价   │     │ • 评价管理   │
│ • 上传图片   │     │ • 评价统计   │     │ • 数据分析   │
└──────┬───────┘     └──────┬───────┘     └──────┬───────┘
       │                    │                    │
       └────────────────────┼────────────────────┘
                            │
                    ┌───────▼────────┐
                    │   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