# 管理师补充反馈最终修复方案 ## 📋 问题现状 管理师点击"补充反馈"时,提示"工单不存在"(400错误)。 ## 🔍 根本原因 1. **前端调用接口**:`PUT /api/manager/feedback/teacher/{id}`,参数 `{supplement: "..."}` 2. **后端接口实现**:在 `ManagerFeedbackController.updateTeacherFeedback` 方法中 3. **问题**:后端修改后没有重启,或者代码被覆盖了 ## ✅ 完整修复方案 ### 1. 后端修改 **文件**:`peidu/backend/src/main/java/com/peidu/controller/ManagerFeedbackController.java` **修改内容**: ```java /** * 修改补充陪伴员反馈 */ @PutMapping("/teacher/{id}") public Result updateTeacherFeedback( @PathVariable Long id, @RequestBody Map params ) { try { log.info("=== 管理师补充反馈 ==="); log.info("id: {}, params: {}", id, params); // ✅ 修复:查询 growth_record 表而不是 work_order 表 GrowthRecord growthRecord = growthRecordService.getById(id); if (growthRecord == null) { log.error("成长记录不存在,id: {}", id); return Result.error("成长记录不存在"); } // ✅ 兼容两种参数名:supplement 和 managerSupplement String supplement = null; if (params.containsKey("managerSupplement")) { supplement = params.get("managerSupplement").toString(); } else if (params.containsKey("supplement")) { supplement = params.get("supplement").toString(); } if (supplement == null || supplement.trim().isEmpty()) { return Result.error("补充内容不能为空"); } growthRecord.setSupplement(supplement); growthRecord.setUpdateTime(LocalDateTime.now()); boolean updated = growthRecordService.updateById(growthRecord); if (updated) { log.info("补充反馈成功,id: {}", id); return Result.success("修改成功"); } else { log.error("补充反馈失败,id: {}", id); return Result.error("修改失败"); } } catch (Exception e) { log.error("补充反馈异常", e); return Result.error("修改失败:" + e.getMessage()); } } ``` **关键修改点**: 1. ✅ 查询 `growth_record` 表(不是 `work_order` 表) 2. ✅ 兼容 `supplement` 和 `managerSupplement` 两种参数名 3. ✅ 添加详细的日志输出 4. ✅ 添加参数验证 ### 2. 前端代码 **文件**:`peidu/uniapp/src/manager-package/pages/manager/feedback.vue` **当前代码**(无需修改): ```javascript async submitEdit() { if (!this.editForm.supplement.trim()) { uni.showToast({ title: '请输入补充内容', icon: 'none' }) return } try { uni.showLoading({ title: '提交中...' }) console.log('[补充反馈] 当前反馈对象:', this.currentFeedback) console.log('[补充反馈] 反馈ID:', this.currentFeedback.id) console.log('[补充反馈] 补充内容:', this.editForm.supplement) // 调用 managerApi.updateTeacherFeedback const res = await managerApi.updateTeacherFeedback(this.currentFeedback.id, { supplement: this.editForm.supplement }) console.log('[补充反馈] API响应:', res) if (res && (res.code === 200 || res.code === '200')) { uni.showToast({ title: '修改成功', icon: 'success' }) this.showEditModal = false this.page = 1 this.list = [] this.loadList() } else { const errorMsg = res?.message || res?.msg || '修改失败' uni.showToast({ title: errorMsg, icon: 'none' }) } } catch (error) { console.error('[补充反馈] 修改异常:', error) const errorMsg = error?.message || error?.msg || error?.data?.message || '修改失败' uni.showToast({ title: errorMsg, icon: 'none' }) } finally { uni.hideLoading() } } ``` **说明**:前端代码已经正确,调用 `/api/manager/feedback/teacher/{id}` 接口,参数名为 `supplement`。 ### 3. API定义 **文件**:`peidu/uniapp/src/api/index.js` **当前代码**(无需修改): ```javascript // 修改补充陪伴员反馈 updateTeacherFeedback(id, params) { return request.put(`/api/manager/feedback/teacher/${id}`, params) }, ``` ## 🚀 执行步骤 ### 步骤1:确认后端代码 检查文件:`peidu/backend/src/main/java/com/peidu/controller/ManagerFeedbackController.java` 确认 `updateTeacherFeedback` 方法包含以下关键代码: ```java GrowthRecord growthRecord = growthRecordService.getById(id); if (growthRecord == null) { return Result.error("成长记录不存在"); } ``` ### 步骤2:重启后端服务 ```bash # 停止当前后端(Ctrl+C) # 重新启动 cd peidu/backend mvn clean spring-boot:run ``` ### 步骤3:等待启动完成 看到类似日志表示启动成功: ``` Started PeiduApplication in X.XXX seconds ``` ### 步骤4:测试功能 1. 在管理师界面进入"反馈管理" 2. 点击任意一条反馈的"补充反馈" 3. 输入补充内容 4. 点击"确定" 5. 查看是否提示"修改成功" ### 步骤5:查看后端日志 后端应该输出类似日志: ``` === 管理师补充反馈 === id: 123, params: {supplement=测试内容} 补充反馈成功,id: 123 ``` 如果看到"成长记录不存在",说明传入的ID有问题。 ## 🔍 故障排查 ### 问题1:仍然提示"工单不存在" **原因**:后端代码没有更新或没有重启 **解决**: 1. 确认后端代码已修改 2. 完全停止后端进程 3. 使用 `mvn clean spring-boot:run` 重新编译并启动 ### 问题2:提示"成长记录不存在" **原因**:传入的ID不是 `growth_record` 表的ID **解决**: 1. 检查前端传递的 `this.currentFeedback.id` 是否正确 2. 在数据库中查询:`SELECT * FROM growth_record WHERE id = ?` ### 问题3:前端没有调用接口 **原因**:前端代码有错误或编译问题 **解决**: 1. 重新编译前端:`npm run dev:mp-weixin` 2. 清除微信开发者工具缓存 3. 查看控制台是否有JavaScript错误 ## 📝 验证清单 - [ ] 后端代码已修改(查询 `growth_record` 表) - [ ] 后端已重启 - [ ] 后端启动成功(无报错) - [ ] 前端代码正确(调用 `managerApi.updateTeacherFeedback`) - [ ] 测试功能(点击"补充反馈") - [ ] 查看后端日志(确认接口被调用) - [ ] 验证数据库(`growth_record` 表的 `supplement` 字段已更新) ## 📅 修复时间 2026-01-28 ## 👤 修复人员 Kiro AI Assistant