# 反馈待补提醒与学生评价后锁定 ## 规则 - 老师销课记录中的“反馈待补”用橙色 `#b45309` 加粗,已提交仍用原有灰色。 - 老师已提交反馈、学生尚未评价:可修改。 - 老师已提交反馈、学生已经评价:隐藏修改入口,报告和详情展示“学生已评价,课堂反馈已锁定”;服务端拒绝修改,旧表单也不能绕过。 - 学生先评价但老师未填写反馈(pending 或历史无报告):允许首次补交;补交后锁定。 - 已成功保存的请求在评价后重试返回原成功结果,不重复写入。 ## 实现和校验 接口能力和 SQL 写入同时判断学生评价,兼容新 `LessonReview` 和旧 `LessonRecord.pf` 评分。学生评价与老师修改使用相同的事务锁;校验旧评分时锁定上课记录。仅约束老师课堂反馈,保留学生评价、课时、工资及复习计划。 - `npm run test:lesson-workflow`:17/17 通过,覆盖评价前修改、评价后拒绝、旧评分锁定、首次补交后锁定及幂等重试。 - `npm run build:mobile`:通过,现有预算/CommonJS 警告。 - `npm run cloud:validate`:11 个函数定义通过。 - `node scripts/check-lesson-feedback-browser.mjs`:补交/修改/锁定三个状态、旧编辑链接、学生独立评价通过。 - `node scripts/check-teacher-earnings-browser.mjs`:销课待补文字计算颜色为 `rgb(180, 83, 9)`,360/390px 布局和原工资流程通过。 ## 发布与边界 后端版本 `2026-10-15-feedback-lock-v14` 已发布:只更新 app gateway 能力规则和版本标记,以及 `xs_lesson_feedback_update`、`xs_lesson_review` 两个数据库函数。发布前确认旧系统同步空闲,备份实际线上定义;发布后回读代码、SQL 与版本。两个 ops gateway 未改变。 私有备份及真实会话只读验证结果位于 `~/.local/state/xiaoshu/cloud-releases/2026-10-15-feedback-lock/`。恢复时用该目录备份还原上述两个 SQL 定义及 app gateway,保留所有业务记录和幂等命令。没有代用户提交反馈或评价。 前端本地构建和浏览器验收已完成,尚未部署线上前端;没有进行实际微信 WebView 验收。浏览器保存测试使用隔离接口数据。