9.4 KiB
9.4 KiB
🎯 立即部署 - 家长端评价功能
功能: 家长端服务评价功能
日期: 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:查看"去评价"按钮
- 打开微信开发者工具
- 登录家长账号(用户ID: 1)
- 进入"我的预约"
- 找到已完成的订单(绿色"已完成"标签)
- 点击订单进入详情页
- 确认底部显示"去评价"按钮
如果没有已完成的订单,执行以下SQL:
-- 将订单102标记为已完成且未评价
UPDATE `order` SET status = 4, reviewed = 0 WHERE id = 102;
测试2:提交评价
- 点击"去评价"按钮
- 进入评价页面,查看订单信息是否正确
- 点击星星设置评分:
- 服务态度:5星
- 教学质量:5星
- 准时性:5星
- 输入评价内容:"陪伴员非常专业,孩子很喜欢!"
- (可选)点击"添加图片"上传1-2张图片
- 点击"提交评价"按钮
预期结果:
- ✅ 显示"提交中..."
- ✅ 提示"评价成功"
- ✅ 自动返回订单详情页
- ✅ "去评价"按钮变为"再次预约"
验证数据库:
-- 查看刚才提交的评价
SELECT * FROM review ORDER BY create_time DESC LIMIT 1;
-- 检查订单评价状态
SELECT id, order_no, reviewed FROM `order` WHERE id = 102;
测试3:查看"我的评价"列表
- 返回首页
- 进入"个人中心"
- 找到"我的评价"菜单项(⭐图标)
- 点击进入评价列表
预期结果:
- ✅ 显示刚才提交的评价
- ✅ 评分星级正确(5星)
- ✅ 评价内容完整
- ✅ 图片正确显示(如果上传了)
- ✅ 可以下拉刷新
测试4:重复评价验证
- 返回订单详情页
- 确认显示"再次预约"按钮(不是"去评价")
- 尝试再次进入评价页面(应该被拦截)
预期结果:
- ✅ 已评价订单不显示"去评价"按钮
- ✅ 无法重复评价同一订单
测试5:匿名评价
- 找到另一个已完成的订单(订单103)
- 点击"去评价"
- 勾选"匿名评价"选项
- 填写评价内容并提交
预期结果:
- ✅ 评价提交成功
- ✅ 在"我的评价"列表中显示"匿名"标签
验证数据库:
-- 检查匿名评价
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;
问题2:order表没有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文件未正确创建
解决方案:
- 检查文件是否存在:
peidu/backend/src/main/java/com/peidu/entity/Review.java - 如果不存在,从备份中恢复或重新创建
- 重新编译:
mvn clean compile
问题4:前端编译失败
错误信息: Cannot find module '@/api/review'
原因: review.js文件未正确创建
解决方案:
- 检查文件是否存在:
peidu/uniapp/src/api/review.js - 如果不存在,从备份中恢复或重新创建
- 重新编译:
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
}
}
🔮 后续优化建议
-
陪伴员端功能
- 陪伴员查看评价列表
- 陪伴员回复评价功能
- 评价统计和好评率
-
评价标签
- 添加快速评价标签(专业、耐心、准时等)
- 标签统计和展示
-
评价筛选
- 按评分筛选(5星、4星等)
- 按时间筛选
- 按陪伴员筛选
-
评价提醒
- 服务完成后推送评价提醒
- 未评价订单提醒
-
评价奖励
- 评价后赠送积分
- 优质评价奖励
-
图片上传
- 实现云存储上传(阿里云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
部署开始时间: ___________
部署完成时间: ___________
部署结果: ⬜ 成功 / ⬜ 失败
部署人员: ___________
💡 温馨提示
- 备份数据库:执行SQL脚本前建议备份数据库
- 测试环境:建议先在测试环境部署和测试
- 日志监控:部署后注意监控后端日志
- 用户反馈:收集用户反馈,持续优化功能
祝部署顺利!🎉