peixue-dev/Archive/peidu-temp-files/docs/🚀立即编译测试-服务反馈处理流程-2026-01-23.md

395 lines
8.1 KiB
Markdown
Raw Normal View History

2026-02-28 17:26:03 +08:00
# 🚀 立即编译测试 - 服务反馈处理流程
**操作时间**: 2026-01-23
**预计耗时**: 5-10分钟
---
## 📋 快速操作步骤
### 步骤1: 编译后端代码 ⏱️ 2分钟
```bash
cd peidu/backend
mvn clean compile
```
**预期结果**:
```
[INFO] BUILD SUCCESS
[INFO] Total time: XX s
```
如果编译失败,检查:
- ✅ 所有DTO类是否正确创建
- ✅ NotificationService 是否正确注入
- ✅ import 语句是否完整
---
### 步骤2: 重启后端服务 ⏱️ 1分钟
```bash
# 方式1: 使用Maven
mvn spring-boot:run
# 方式2: 如果已经打包
java -jar target/peidu-backend.jar
```
**预期结果**:
```
Started PeiduApplication in XX seconds
```
---
### 步骤3: 验证接口可用性 ⏱️ 2分钟
#### 3.1 检查Swagger文档
访问: `http://localhost:8080/swagger-ui.html`
查找新增的6个接口
- ✅ PUT `/api/growth-record/daily/{id}/review`
- ✅ POST `/api/growth-record/daily/{id}/parent-feedback`
- ✅ POST `/api/growth-record/daily/{id}/handle`
- ✅ PUT `/api/growth-record/daily/{id}/close`
- ✅ GET `/api/growth-record/daily/pending-review`
- ✅ GET `/api/growth-record/daily/pending-handle`
#### 3.2 测试待审核列表接口
```bash
curl -X GET "http://localhost:8080/api/growth-record/daily/pending-review?page=1&size=10"
```
**预期响应**:
```json
{
"code": 200,
"message": "success",
"data": {
"records": [],
"total": 0,
"pages": 0
}
}
```
---
### 步骤4: 完整流程测试 ⏱️ 5分钟
#### 4.1 准备测试数据
确保数据库中有:
- ✅ 至少1个陪伴员账号
- ✅ 至少1个管理师账号
- ✅ 至少1个家长账号
- ✅ 至少1条成长记录review_status=0
#### 4.2 测试审核流程
**Step 1: 管理师审核反馈(通过)**
```bash
curl -X PUT "http://localhost:8080/api/growth-record/daily/1/review" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"reviewStatus": 1,
"reviewNote": "内容完整,通过审核"
}'
```
**预期响应**:
```json
{
"code": 200,
"message": "审核成功",
"data": true
}
```
**Step 2: 验证数据库更新**
```sql
SELECT id, review_status, review_note, review_time, reviewer_id
FROM growth_record
WHERE id = 1;
```
**预期结果**:
- `review_status` = 1
- `review_note` = "内容完整,通过审核"
- `review_time` 不为空
- `reviewer_id` 不为空
**Step 3: 验证通知发送**
```sql
SELECT * FROM notification
WHERE related_id = 1
AND related_type = 'growth_record'
AND type = 'feedback_approved'
ORDER BY create_time DESC
LIMIT 1;
```
**预期结果**: 应该有1条新通知记录
---
#### 4.3 测试家长反馈流程
**Step 1: 家长评价反馈(有疑问)**
```bash
curl -X POST "http://localhost:8080/api/growth-record/daily/1/parent-feedback" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"satisfaction": 4,
"parentNote": "整体不错,但有些细节想了解",
"hasQuestion": true
}'
```
**预期响应**:
```json
{
"code": 200,
"message": "提交成功",
"data": true
}
```
**Step 2: 验证数据库更新**
```sql
SELECT id, parent_satisfaction, parent_note, has_question, handle_status
FROM growth_record
WHERE id = 1;
```
**预期结果**:
- `parent_satisfaction` = 4
- `parent_note` = "整体不错,但有些细节想了解"
- `has_question` = 1
- `handle_status` = 1待处理
**Step 3: 验证通知发送**
```sql
SELECT * FROM notification
WHERE related_id = 1
AND type = 'question_raised'
ORDER BY create_time DESC
LIMIT 1;
```
**预期结果**: 应该有1条新通知记录发给管理师
---
#### 4.4 测试问题处理流程
**Step 1: 管理师处理问题**
```bash
curl -X POST "http://localhost:8080/api/growth-record/daily/1/handle" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"handleNote": "已与家长电话沟通,解释了相关细节,家长表示满意",
"handleStatus": 3
}'
```
**预期响应**:
```json
{
"code": 200,
"message": "处理成功",
"data": true
}
```
**Step 2: 验证数据库更新**
```sql
SELECT id, handle_status, handle_note, handle_time, archive_status
FROM growth_record
WHERE id = 1;
```
**预期结果**:
- `handle_status` = 3已解决
- `handle_note` 包含处理记录和时间戳
- `handle_time` 不为空
- `archive_status` = 1自动归档
**Step 3: 验证通知发送**
```sql
SELECT * FROM notification
WHERE related_id = 1
AND type = 'question_resolved'
ORDER BY create_time DESC
LIMIT 1;
```
**预期结果**: 应该有1条新通知记录发给家长
---
#### 4.5 测试列表查询
**测试待审核列表**
```bash
curl -X GET "http://localhost:8080/api/growth-record/daily/pending-review?page=1&size=10"
```
**预期**: 返回所有 `review_status=0` 的记录
**测试待处理列表**
```bash
curl -X GET "http://localhost:8080/api/growth-record/daily/pending-handle?page=1&size=10"
```
**预期**: 返回所有 `has_question=1``handle_status IN (1,2)` 的记录
---
## ✅ 测试检查清单
### 编译检查
- [ ] 后端代码编译成功
- [ ] 没有编译错误
- [ ] 没有警告信息
### 服务启动检查
- [ ] 后端服务启动成功
- [ ] 没有启动错误
- [ ] Swagger文档可访问
### 接口可用性检查
- [ ] 6个新接口在Swagger中可见
- [ ] 接口路径正确
- [ ] 参数定义正确
### 功能测试检查
- [ ] 审核功能正常(通过/需修改)
- [ ] 家长反馈功能正常
- [ ] 问题处理功能正常
- [ ] 工单关闭功能正常
- [ ] 待审核列表查询正常
- [ ] 待处理列表查询正常
### 数据库检查
- [ ] 审核信息正确保存
- [ ] 家长反馈信息正确保存
- [ ] 处理记录正确保存
- [ ] 归档状态正确更新
### 通知检查
- [ ] 审核通过通知发送成功
- [ ] 需修改通知发送成功
- [ ] 家长疑问通知发送成功
- [ ] 问题解决通知发送成功
---
## 🐛 常见问题排查
### 问题1: 编译失败 - 找不到NotificationService
**原因**: NotificationService 未正确注入
**解决方案**:
```java
// 检查 GrowthRecordServiceImpl.java
@RequiredArgsConstructor
public class GrowthRecordServiceImpl ... {
private final NotificationService notificationService; // ✅ 确保这行存在
}
```
### 问题2: 接口404错误
**原因**: Controller路径配置错误
**解决方案**:
```java
// 检查 GrowthRecordController.java
@RestController
@RequestMapping("/api/growth-record") // ✅ 确保路径正确
public class GrowthRecordController {
@PutMapping("/daily/{id}/review") // ✅ 确保路径正确
}
```
### 问题3: 通知发送失败
**原因**: notification表不存在或NotificationMapper未配置
**解决方案**:
```sql
-- 检查表是否存在
SHOW TABLES LIKE 'notification';
-- 如果不存在执行创建表SQL
-- 参考: peidu/docs/fixes/2026-01-23-服务反馈处理流程完善/database-extension.sql
```
### 问题4: 参数验证失败
**原因**: DTO类缺少@Valid注解或验证规则
**解决方案**:
```java
// 检查Controller方法
public Result<Boolean> reviewFeedback(
@PathVariable Long id,
@RequestBody @Valid ReviewDTO reviewDTO, // ✅ 确保有@Valid
HttpServletRequest request) {
}
```
---
## 📊 测试结果记录
### 测试环境
- 后端版本: ___________
- 数据库版本: MySQL 8.0
- 测试时间: ___________
### 测试结果
| 测试项 | 状态 | 备注 |
|--------|------|------|
| 编译成功 | ⬜ | |
| 服务启动 | ⬜ | |
| 审核功能 | ⬜ | |
| 家长反馈 | ⬜ | |
| 问题处理 | ⬜ | |
| 列表查询 | ⬜ | |
| 通知发送 | ⬜ | |
---
## 🎯 下一步计划
测试通过后,进行以下工作:
1. **前端页面开发**
- 管理师端:审核反馈页面
- 管理师端:处理问题页面
- 家长端:反馈详情页(添加评价功能)
2. **功能完善**
- 添加家长权限验证
- 添加通知重试机制
- 添加更详细的业务规则验证
3. **性能优化**
- 添加缓存机制
- 优化数据库查询
- 添加分页优化
---
**立即开始测试!** 🚀
**文档版本**: v1.0
**最后更新**: 2026-01-23