# 服务反馈处理流程完善 **实施日期**: 2026-01-23 **实施人**: AI助手 **优先级**: 🔥 高优先级 --- ## 📋 问题分析 ### 当前状态 根据代码检查,服务反馈功能存在以下问题: #### 1. **缺少完整的处理流程** ⚠️ - ✅ 陪伴员可以提交反馈(`teacher/feedback-edit.vue`) - ✅ 家长可以查看反馈(`user-package/pages/feedback/list.vue`) - ⚠️ **管理师端缺少反馈审核和处理功能** - ⚠️ **缺少反馈状态流转机制** - ⚠️ **缺少异常反馈的处理流程** #### 2. **数据流向不完整** ⚠️ ``` 陪伴员提交反馈 → ❓ → 家长查看 ↓ 缺少管理师审核环节 ``` #### 3. **缺少通知机制** ⚠️ - 陪伴员提交反馈后,家长不知道 - 家长提出问题后,管理师不知道 - 管理师处理后,双方不知道 #### 4. **缺少质量控制** ⚠️ - 没有反馈内容质量检查 - 没有反馈及时性监控 - 没有反馈完整性验证 --- ## 🎯 解决方案 ### 方案概述 建立完整的服务反馈闭环流程: ``` 陪伴员提交反馈 ↓ 管理师审核(可选) ↓ 通知家长查看 ↓ 家长查看并评价 ↓ 管理师跟进处理 ↓ 反馈归档 ``` --- ## 📊 完整流程设计 ### 流程1: 陪伴员提交反馈 **触发时机**: 服务完成后(签退时或24小时内) **操作步骤**: 1. 陪伴员在订单详情页点击"提交反馈" 2. 填写反馈内容(必填) 3. 上传照片/视频(可选) 4. 提交后状态变为"待审核" **数据字段**: ```json { "orderId": 123, "studentId": 456, "teacherId": 789, "recordDate": "2026-01-23", "content": "今天学习状态很好...", "imageList": ["url1", "url2"], "videoList": ["url1"], "status": 0, // 0=待审核, 1=已通过, 2=需修改 "submitTime": "2026-01-23 18:00:00" } ``` **前端页面**: ✅ 已实现 - `teacher-package/pages/teacher/feedback-edit.vue` **后端接口**: ✅ 已实现 - `POST /api/growth-record/daily` --- ### 流程2: 管理师审核反馈(新增) **触发时机**: 陪伴员提交反馈后 **操作步骤**: 1. 管理师在"反馈管理"页面看到待审核列表 2. 查看反馈内容和媒体 3. 选择操作: - **通过**: 反馈发送给家长 - **需修改**: 退回给陪伴员,说明原因 - **标记异常**: 需要特别关注的反馈 **审核标准**: - ✅ 内容完整(不少于50字) - ✅ 描述具体(有具体事例) - ✅ 态度积极(正面引导) - ✅ 照片清晰(如有上传) **数据字段**: ```json { "recordId": 123, "reviewStatus": 1, // 1=通过, 2=需修改 "reviewNote": "内容需要更具体", "reviewTime": "2026-01-23 19:00:00", "reviewerId": 999 } ``` **前端页面**: ⚠️ 需要新增 - `manager-package/pages/manager/feedback-review.vue` **后端接口**: ⚠️ 需要新增 - `PUT /api/growth-record/daily/{id}/review` --- ### 流程3: 通知家长查看(新增) **触发时机**: 管理师审核通过后 **通知方式**: 1. **微信模板消息**(推荐) 2. **站内消息** 3. **小程序订阅消息** **通知内容**: ``` 【服务反馈】 您好,陪伴员已提交今日服务反馈,请及时查看。 服务日期:2026-01-23 陪伴员:张老师 学生:小明 点击查看详情 > ``` **数据字段**: ```json { "userId": 456, // 家长ID "type": "feedback_submitted", "title": "服务反馈", "content": "陪伴员已提交今日服务反馈", "relatedId": 123, // 反馈记录ID "relatedType": "growth_record", "status": 0, // 0=未读, 1=已读 "createTime": "2026-01-23 19:05:00" } ``` **前端页面**: ⚠️ 需要完善 - 在家长端首页显示未读反馈数量 - 点击跳转到反馈列表 **后端接口**: ⚠️ 需要新增 - `POST /api/notification/send` --- ### 流程4: 家长查看并评价 **触发时机**: 收到通知后 **操作步骤**: 1. 家长打开"服务反馈"页面 2. 查看反馈详情 3. 查看照片/视频 4. 可选操作: - **满意**: 点赞 - **有疑问**: 联系陪伴员或管理师 - **不满意**: 提交投诉 **数据字段**: ```json { "recordId": 123, "parentId": 456, "viewTime": "2026-01-23 20:00:00", "satisfaction": 5, // 1-5星 "parentNote": "很满意,谢谢老师", "hasQuestion": false } ``` **前端页面**: ✅ 已实现 - `user-package/pages/feedback/list.vue` - `user-package/pages/feedback/detail.vue` **后端接口**: ⚠️ 需要新增 - `POST /api/growth-record/daily/{id}/parent-feedback` --- ### 流程5: 管理师跟进处理(新增) **触发时机**: - 家长提出疑问 - 家长不满意 - 反馈被标记为异常 **操作步骤**: 1. 管理师在"待处理反馈"列表看到问题 2. 查看详情和家长反馈 3. 联系陪伴员了解情况 4. 联系家长沟通解决 5. 记录处理结果 6. 关闭工单 **数据字段**: ```json { "recordId": 123, "issueType": "parent_question", // 问题类型 "issueDesc": "家长对学习进度有疑问", "handleStatus": 1, // 0=待处理, 1=处理中, 2=已解决 "handleNote": "已与家长沟通,解释了学习计划", "handleTime": "2026-01-23 21:00:00", "handlerId": 999 } ``` **前端页面**: ⚠️ 需要新增 - `manager-package/pages/manager/feedback-handle.vue` **后端接口**: ⚠️ 需要新增 - `POST /api/growth-record/daily/{id}/handle` - `PUT /api/growth-record/daily/{id}/close` --- ### 流程6: 反馈归档 **触发时机**: - 家长满意且无疑问 - 问题已解决 - 超过7天未处理 **操作步骤**: 1. 系统自动归档或管理师手动归档 2. 更新反馈状态为"已归档" 3. 生成统计数据 **数据字段**: ```json { "recordId": 123, "archiveStatus": 1, // 1=已归档 "archiveTime": "2026-01-30 00:00:00", "archiveReason": "auto" // auto=自动, manual=手动 } ``` --- ## 🔧 技术实现 ### 1. 数据库表设计 #### 1.1 扩展 growth_record 表 ```sql ALTER TABLE `growth_record` ADD COLUMN `review_status` TINYINT DEFAULT 0 COMMENT '审核状态: 0=待审核, 1=已通过, 2=需修改', ADD COLUMN `review_note` VARCHAR(500) COMMENT '审核备注', ADD COLUMN `review_time` DATETIME COMMENT '审核时间', ADD COLUMN `reviewer_id` BIGINT COMMENT '审核人ID', ADD COLUMN `parent_satisfaction` TINYINT COMMENT '家长满意度: 1-5星', ADD COLUMN `parent_note` VARCHAR(500) COMMENT '家长备注', ADD COLUMN `parent_view_time` DATETIME COMMENT '家长查看时间', ADD COLUMN `has_question` TINYINT DEFAULT 0 COMMENT '是否有疑问: 0=否, 1=是', ADD COLUMN `handle_status` TINYINT DEFAULT 0 COMMENT '处理状态: 0=无需处理, 1=待处理, 2=处理中, 3=已解决', ADD COLUMN `handle_note` TEXT COMMENT '处理记录', ADD COLUMN `handle_time` DATETIME COMMENT '处理时间', ADD COLUMN `handler_id` BIGINT COMMENT '处理人ID', ADD COLUMN `archive_status` TINYINT DEFAULT 0 COMMENT '归档状态: 0=未归档, 1=已归档', ADD COLUMN `archive_time` DATETIME COMMENT '归档时间'; ``` #### 1.2 创建通知表(如不存在) ```sql CREATE TABLE IF NOT EXISTS `notification` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `user_id` BIGINT NOT NULL COMMENT '用户ID', `type` VARCHAR(50) NOT NULL COMMENT '通知类型', `title` VARCHAR(100) NOT NULL COMMENT '通知标题', `content` TEXT COMMENT '通知内容', `related_id` BIGINT COMMENT '关联ID', `related_type` VARCHAR(50) COMMENT '关联类型', `status` TINYINT DEFAULT 0 COMMENT '状态: 0=未读, 1=已读', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `read_time` DATETIME COMMENT '阅读时间', PRIMARY KEY (`id`), INDEX `idx_user_id` (`user_id`), INDEX `idx_status` (`status`), INDEX `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通知表'; ``` --- ### 2. 后端接口开发 #### 2.1 管理师审核反馈 **Controller**: `GrowthRecordController.java` ```java /** * 管理师审核反馈 */ @PutMapping("/daily/{id}/review") public Result reviewFeedback( @PathVariable Long id, @RequestBody ReviewDTO reviewDTO, HttpServletRequest request ) { Long managerId = getUserId(request); boolean success = growthRecordService.reviewFeedback(id, reviewDTO, managerId); return success ? Result.success(true, "审核成功") : Result.error("审核失败"); } ``` **Service**: `GrowthRecordServiceImpl.java` ```java @Override @Transactional public boolean reviewFeedback(Long id, ReviewDTO reviewDTO, Long managerId) { // 1. 更新审核状态 GrowthRecord record = this.getById(id); if (record == null) { throw new BusinessException("反馈记录不存在"); } record.setReviewStatus(reviewDTO.getReviewStatus()); record.setReviewNote(reviewDTO.getReviewNote()); record.setReviewTime(LocalDateTime.now()); record.setReviewerId(managerId); boolean updated = this.updateById(record); // 2. 如果审核通过,发送通知给家长 if (updated && reviewDTO.getReviewStatus() == 1) { notificationService.sendFeedbackNotification(record); } // 3. 如果需要修改,发送通知给陪伴员 if (updated && reviewDTO.getReviewStatus() == 2) { notificationService.sendRevisionNotification(record); } return updated; } ``` #### 2.2 家长反馈 **Controller**: `GrowthRecordController.java` ```java /** * 家长对反馈进行评价 */ @PostMapping("/daily/{id}/parent-feedback") public Result parentFeedback( @PathVariable Long id, @RequestBody ParentFeedbackDTO feedbackDTO, HttpServletRequest request ) { Long parentId = getUserId(request); boolean success = growthRecordService.parentFeedback(id, feedbackDTO, parentId); return success ? Result.success(true, "提交成功") : Result.error("提交失败"); } ``` #### 2.3 管理师处理问题 **Controller**: `GrowthRecordController.java` ```java /** * 管理师处理反馈问题 */ @PostMapping("/daily/{id}/handle") public Result handleFeedback( @PathVariable Long id, @RequestBody HandleDTO handleDTO, HttpServletRequest request ) { Long managerId = getUserId(request); boolean success = growthRecordService.handleFeedback(id, handleDTO, managerId); return success ? Result.success(true, "处理成功") : Result.error("处理失败"); } ``` --- ### 3. 前端页面开发 #### 3.1 管理师审核页面 **文件**: `manager-package/pages/manager/feedback-review.vue` **功能**: - 显示待审核反馈列表 - 查看反馈详情 - 审核通过/需修改 - 标记异常反馈 #### 3.2 管理师处理页面 **文件**: `manager-package/pages/manager/feedback-handle.vue` **功能**: - 显示待处理问题列表 - 查看问题详情 - 记录处理过程 - 关闭工单 #### 3.3 家长反馈页面(完善) **文件**: `user-package/pages/feedback/detail.vue` **新增功能**: - 满意度评分 - 提出疑问 - 联系管理师 --- ## 📝 实施步骤 ### 第一阶段: 数据库和后端(1-2天) 1. ✅ 执行SQL脚本扩展表结构 2. ✅ 创建DTO类 3. ✅ 实现审核接口 4. ✅ 实现家长反馈接口 5. ✅ 实现处理接口 6. ✅ 实现通知服务 ### 第二阶段: 管理师端(2-3天) 1. ✅ 开发审核页面 2. ✅ 开发处理页面 3. ✅ 集成到管理师端菜单 4. ✅ 测试审核流程 ### 第三阶段: 家长端(1-2天) 1. ✅ 完善反馈详情页 2. ✅ 添加评价功能 3. ✅ 添加提问功能 4. ✅ 测试家长端流程 ### 第四阶段: 通知和测试(1-2天) 1. ✅ 实现通知推送 2. ✅ 端到端测试 3. ✅ 性能优化 4. ✅ 文档编写 --- ## 🎯 预期效果 ### 1. 完整的闭环流程 - 陪伴员 → 管理师 → 家长 → 管理师 - 每个环节都有明确的操作和反馈 ### 2. 质量保障 - 管理师审核确保反馈质量 - 家长评价形成监督机制 - 问题及时发现和处理 ### 3. 提升满意度 - 家长及时了解孩子情况 - 问题快速响应和解决 - 服务质量持续改进 ### 4. 数据沉淀 - 反馈数据用于陪伴员考核 - 问题数据用于服务改进 - 满意度数据用于质量监控 --- ## 📊 监控指标 ### 1. 及时性指标 - 反馈提交率: 目标 > 95% - 审核及时率: 目标 < 2小时 - 问题响应时间: 目标 < 4小时 ### 2. 质量指标 - 反馈通过率: 目标 > 90% - 家长满意度: 目标 > 4.5星 - 问题解决率: 目标 > 95% ### 3. 活跃度指标 - 家长查看率: 目标 > 80% - 家长评价率: 目标 > 60% - 问题提出率: 监控 < 10% --- ## 🔗 相关文档 - [数据库扩展SQL](./database-extension.sql) - [后端接口文档](./api-documentation.md) - [前端开发指南](./frontend-guide.md) - [测试用例](./test-cases.md) --- **文档版本**: v1.0 **最后更新**: 2026-01-23