peixue-dev/Archive/peidu-temp-files/docs/🎯立即部署-家长端评价功能-2026-01-23.md

9.4 KiB
Raw Blame History

🎯 立即部署 - 家长端评价功能

功能: 家长端服务评价功能
日期: 2026-01-23
状态: 代码已完成,等待部署


快速部署3步完成

步骤1执行数据库脚本

打开MySQL客户端或命令行执行以下命令

# Windows CMD
cd peidu
mysql -u root -p peixue < sql\create_review_table_simple_2026-01-23.sql

# 或者在MySQL客户端中执行
USE peixue;
SOURCE sql/create_review_table_simple_2026-01-23.sql;

验证数据库:

-- 1. 检查review表是否创建成功
SHOW TABLES LIKE 'review';

-- 2. 检查order表是否有reviewed字段
SHOW COLUMNS FROM `order` LIKE 'reviewed';

-- 3. 查看测试数据
SELECT * FROM review LIMIT 3;

-- 4. 检查订单评价状态
SELECT id, order_no, status, reviewed FROM `order` WHERE id IN (102, 103, 104);

预期结果:

  • review表已创建
  • order表有reviewed字段
  • 有3条测试评价记录
  • 订单102、103、104的reviewed字段为1

步骤2重新编译后端

cd peidu\backend
mvn clean compile

等待编译完成,确认无错误。

如果编译成功,会看到:

[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

步骤3重新编译前端

cd peidu\uniapp
npm run build:mp-weixin

等待编译完成,刷新微信开发者工具。

如果编译成功,会看到:

✓ built in XXXms

🧪 功能测试

测试1查看"去评价"按钮

  1. 打开微信开发者工具
  2. 登录家长账号用户ID: 1
  3. 进入"我的预约"
  4. 找到已完成的订单(绿色"已完成"标签)
  5. 点击订单进入详情页
  6. 确认底部显示"去评价"按钮

如果没有已完成的订单执行以下SQL

-- 将订单102标记为已完成且未评价
UPDATE `order` SET status = 4, reviewed = 0 WHERE id = 102;

测试2提交评价

  1. 点击"去评价"按钮
  2. 进入评价页面,查看订单信息是否正确
  3. 点击星星设置评分:
    • 服务态度5星
    • 教学质量5星
    • 准时性5星
  4. 输入评价内容:"陪伴员非常专业,孩子很喜欢!"
  5. (可选)点击"添加图片"上传1-2张图片
  6. 点击"提交评价"按钮

预期结果:

  • 显示"提交中..."
  • 提示"评价成功"
  • 自动返回订单详情页
  • "去评价"按钮变为"再次预约"

验证数据库:

-- 查看刚才提交的评价
SELECT * FROM review ORDER BY create_time DESC LIMIT 1;

-- 检查订单评价状态
SELECT id, order_no, reviewed FROM `order` WHERE id = 102;

测试3查看"我的评价"列表

  1. 返回首页
  2. 进入"个人中心"
  3. 找到"我的评价"菜单项(图标)
  4. 点击进入评价列表

预期结果:

  • 显示刚才提交的评价
  • 评分星级正确5星
  • 评价内容完整
  • 图片正确显示(如果上传了)
  • 可以下拉刷新

测试4重复评价验证

  1. 返回订单详情页
  2. 确认显示"再次预约"按钮(不是"去评价"
  3. 尝试再次进入评价页面(应该被拦截)

预期结果:

  • 已评价订单不显示"去评价"按钮
  • 无法重复评价同一订单

测试5匿名评价

  1. 找到另一个已完成的订单订单103
  2. 点击"去评价"
  3. 勾选"匿名评价"选项
  4. 填写评价内容并提交

预期结果:

  • 评价提交成功
  • 在"我的评价"列表中显示"匿名"标签

验证数据库:

-- 检查匿名评价
SELECT id, order_id, is_anonymous, content FROM review WHERE order_id = 103;

🔍 问题排查

问题1数据库脚本执行失败

错误信息: Table 'review' already exists

解决方案:

-- 删除旧表(如果需要)
DROP TABLE IF EXISTS review;

-- 重新执行脚本
SOURCE sql/create_review_table_simple_2026-01-23.sql;

问题2order表没有reviewed字段

错误信息: Unknown column 'reviewed' in 'field list'

解决方案:

-- 手动添加reviewed字段
ALTER TABLE `order` ADD COLUMN `reviewed` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已评价0-未评价1-已评价)' AFTER `status`;

问题3后端编译失败

错误信息: Cannot find symbol: class Review

原因: Review.java文件未正确创建

解决方案:

  1. 检查文件是否存在:peidu/backend/src/main/java/com/peidu/entity/Review.java
  2. 如果不存在,从备份中恢复或重新创建
  3. 重新编译:mvn clean compile

问题4前端编译失败

错误信息: Cannot find module '@/api/review'

原因: review.js文件未正确创建

解决方案:

  1. 检查文件是否存在:peidu/uniapp/src/api/review.js
  2. 如果不存在,从备份中恢复或重新创建
  3. 重新编译:npm run build:mp-weixin

问题5提交评价失败

错误信息: 订单不存在订单未完成

解决方案:

-- 检查订单状态
SELECT id, order_no, status, reviewed FROM `order` WHERE id = 102;

-- 确保订单状态为4已完成且未评价
UPDATE `order` SET status = 4, reviewed = 0 WHERE id = 102;

问题6评价列表为空

原因: 没有评价记录或用户ID不匹配

解决方案:

-- 检查当前用户的评价记录
SELECT * FROM review WHERE user_id = 1;

-- 如果没有记录,先提交一条评价

📊 数据验证SQL

查看所有评价记录

SELECT 
  r.id,
  r.order_id,
  o.order_no,
  r.user_id,
  r.teacher_id,
  r.service_score,
  r.quality_score,
  r.punctuality_score,
  r.overall_score,
  r.content,
  r.is_anonymous,
  r.create_time
FROM review r
LEFT JOIN `order` o ON r.order_id = o.id
ORDER BY r.create_time DESC
LIMIT 10;

查看订单评价状态

SELECT 
  id,
  order_no,
  status,
  reviewed,
  service_name,
  service_date
FROM `order`
WHERE status = 4
ORDER BY id DESC
LIMIT 10;

统计陪伴员评价数据

SELECT 
  teacher_id,
  COUNT(*) as review_count,
  ROUND(AVG(overall_score), 1) as avg_score,
  ROUND(AVG(service_score), 1) as avg_service_score,
  ROUND(AVG(quality_score), 1) as avg_quality_score,
  ROUND(AVG(punctuality_score), 1) as avg_punctuality_score
FROM review
WHERE deleted = 0 AND status = 1
GROUP BY teacher_id;

部署完成检查清单

  • 数据库脚本执行成功
  • review表已创建
  • order表有reviewed字段
  • 测试数据已插入
  • 后端编译成功(无错误)
  • 前端编译成功(无错误)
  • 微信开发者工具已刷新
  • "去评价"按钮正确显示
  • 评价提交功能正常
  • "我的评价"列表正常显示
  • 重复评价验证正常
  • 匿名评价功能正常

📝 API接口文档

1. 提交评价

POST /api/review/submit
Content-Type: application/json
Authorization: Bearer {token}

请求体:
{
  "orderId": 102,
  "serviceScore": 5,
  "qualityScore": 5,
  "punctualityScore": 5,
  "content": "服务很好",
  "images": ["url1", "url2"],
  "isAnonymous": false
}

响应:
{
  "code": 200,
  "message": "评价成功",
  "data": {
    "id": 1,
    "overallScore": 5.0
  }
}

2. 查询我的评价列表

GET /api/review/my-list
Authorization: Bearer {token}

响应:
{
  "code": 200,
  "message": "查询成功",
  "data": [
    {
      "id": 1,
      "orderId": 102,
      "serviceName": "陪伴服务",
      "teacherName": "张老师",
      "overallScore": 5.0,
      "content": "服务很好",
      "imageList": ["url1", "url2"],
      "isAnonymous": false,
      "replyContent": null,
      "createTime": "2026-01-23 10:00:00"
    }
  ]
}

3. 检查订单是否已评价

GET /api/review/check/{orderId}
Authorization: Bearer {token}

响应:
{
  "code": 200,
  "message": "查询成功",
  "data": {
    "reviewed": true,
    "reviewId": 1
  }
}

🔮 后续优化建议

  1. 陪伴员端功能

    • 陪伴员查看评价列表
    • 陪伴员回复评价功能
    • 评价统计和好评率
  2. 评价标签

    • 添加快速评价标签(专业、耐心、准时等)
    • 标签统计和展示
  3. 评价筛选

    • 按评分筛选5星、4星等
    • 按时间筛选
    • 按陪伴员筛选
  4. 评价提醒

    • 服务完成后推送评价提醒
    • 未评价订单提醒
  5. 评价奖励

    • 评价后赠送积分
    • 优质评价奖励
  6. 图片上传

    • 实现云存储上传阿里云OSS/腾讯云COS
    • 图片压缩和优化

📚 相关文档

  • 详细实施报告: peidu/docs/fixes/2026-01-23-家长端评价功能实现/README.md
  • 测试指南: peidu/docs/fixes/2026-01-23-家长端评价功能实现/🧪测试指南.md
  • 数据库脚本: peidu/sql/create_review_table_simple_2026-01-23.sql
  • 完成报告: peidu/✅家长端评价功能实现完成-2026-01-23.md

部署开始时间: ___________
部署完成时间: ___________
部署结果: 成功 / 失败
部署人员: ___________


💡 温馨提示

  1. 备份数据库执行SQL脚本前建议备份数据库
  2. 测试环境:建议先在测试环境部署和测试
  3. 日志监控:部署后注意监控后端日志
  4. 用户反馈:收集用户反馈,持续优化功能

祝部署顺利!🎉