peixue-dev/peidu/docs/fixes/2026-01-23-服务反馈处理流程完善/README.md

13 KiB
Raw Blame History

服务反馈处理流程完善

实施日期: 2026-01-23
实施人: AI助手
优先级: 🔥 高优先级


📋 问题分析

当前状态

根据代码检查,服务反馈功能存在以下问题:

1. 缺少完整的处理流程 ⚠️

  • 陪伴员可以提交反馈(teacher/feedback-edit.vue
  • 家长可以查看反馈(user-package/pages/feedback/list.vue
  • ⚠️ 管理师端缺少反馈审核和处理功能
  • ⚠️ 缺少反馈状态流转机制
  • ⚠️ 缺少异常反馈的处理流程

2. 数据流向不完整 ⚠️

陪伴员提交反馈 → ❓ → 家长查看
                ↓
            缺少管理师审核环节

3. 缺少通知机制 ⚠️

  • 陪伴员提交反馈后,家长不知道
  • 家长提出问题后,管理师不知道
  • 管理师处理后,双方不知道

4. 缺少质量控制 ⚠️

  • 没有反馈内容质量检查
  • 没有反馈及时性监控
  • 没有反馈完整性验证

🎯 解决方案

方案概述

建立完整的服务反馈闭环流程:

陪伴员提交反馈
    ↓
管理师审核(可选)
    ↓
通知家长查看
    ↓
家长查看并评价
    ↓
管理师跟进处理
    ↓
反馈归档

📊 完整流程设计

流程1: 陪伴员提交反馈

触发时机: 服务完成后签退时或24小时内

操作步骤:

  1. 陪伴员在订单详情页点击"提交反馈"
  2. 填写反馈内容(必填)
  3. 上传照片/视频(可选)
  4. 提交后状态变为"待审核"

数据字段:

{
  "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字
  • 描述具体(有具体事例)
  • 态度积极(正面引导)
  • 照片清晰(如有上传)

数据字段:

{
  "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
陪伴员:张老师
学生:小明

点击查看详情 >

数据字段:

{
  "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. 可选操作:
    • 满意: 点赞
    • 有疑问: 联系陪伴员或管理师
    • 不满意: 提交投诉

数据字段:

{
  "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. 关闭工单

数据字段:

{
  "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. 生成统计数据

数据字段:

{
  "recordId": 123,
  "archiveStatus": 1,  // 1=已归档
  "archiveTime": "2026-01-30 00:00:00",
  "archiveReason": "auto"  // auto=自动, manual=手动
}

🔧 技术实现

1. 数据库表设计

1.1 扩展 growth_record 表

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 创建通知表(如不存在)

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

/**
 * 管理师审核反馈
 */
@PutMapping("/daily/{id}/review")
public Result<Boolean> 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

@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

/**
 * 家长对反馈进行评价
 */
@PostMapping("/daily/{id}/parent-feedback")
public Result<Boolean> 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

/**
 * 管理师处理反馈问题
 */
@PostMapping("/daily/{id}/handle")
public Result<Boolean> 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%

🔗 相关文档


文档版本: v1.0
最后更新: 2026-01-23