Ver Fonte

docs: record requested removal of Dai invalid historical lesson

彭峰 há 18 horas atrás
pai
commit
229b323997
1 ficheiros alterados com 26 adições e 0 exclusões
  1. 26 0
      docs/operations/dai-zihao-invalid-lesson-2026-11-12.md

+ 26 - 0
docs/operations/dai-zihao-invalid-lesson-2026-11-12.md

@@ -0,0 +1,26 @@
+# 戴梓昊初中指定错误训练记录纠正 · 2026-11-12
+
+用户截图明确要求删除会员 1713 戴梓昊初中在 2026-02-13 12:22 显示的“单词课 30 分钟”记录,说明该 30 分钟课不存在。本次只处理红框中的唯一一条,不扩大至其他日期的 30 分钟记录。
+
+## 目标与处理
+
+- LessonRecord.objectId:`8SKoUf1Vpp`,旧编号 664728;CommonModel.objectId:`OTWQzIUhx4`,modelId=59、generalId=itemId=664728;来源预约 664716。
+- 已按既有回收站规则将这唯一 CommonModel 的 status 由 99 改为 -2,记录用户原因、更新版本并设 teachingManaged=true。原始 LessonRecord 与来源数据保留,便于追溯和必要时恢复。
+- 既有训练列表、累计节数及详情查询排除该作废主记录。同步网关回读确认:append 跳过 status=-2 或 teachingManaged 的主记录,patch 保留 teachingManaged 主记录,避免旧源再次覆盖该纠错。
+- 原预约、学习记录及 10 条已完成的历史复习均保留。未发现对应的新系统完课报告;保留现有收入、工资和交易凭据,不据本次记录删除重算或退补任何费用。
+
+## 执行保护与审计
+
+2026-11-12 北京时间 10:05 在生产完成。使用现有有效超级管理员会话,核对帐套,确认没有有效的运行中同步租约。事务锁定并完整核对主、附表前像及目标学员、时间、课型,避免误删相邻记录。先运行完整事务并故意回滚,核验后再正式提交。
+
+实际业务变更只发生在指定主记录,并原子写入一条 SysLog 纠错审计(sourceKey=`manual-void-lesson:664728:2026-11-12`),包含操作者、用户依据及前后像。重复执行返回 unchanged,审计仍只有一条。SQL numeric 的直接查询值按数值归一核验,避免将字符串 `-2` 误判为状态不符。
+
+事务内对其他课记及其主记录、余额、来源预约、学习记录、复习、收入凭据、工资明细及新系统课时交易做前后快照核对,均一致。余额仍为 30 分钟 1 次、60 分钟 1 次、陪练 1.5 小时、体验 0;未充值、扣课、退费或发放工资。
+
+## 验证
+
+两个正式运营网关均返回 26 条训练记录及累计 26 节,移除目标后其他 26 条接口行逐字段不变。2026-02-13 10:58 与 14:38 的两条 60 分钟课均保留。正式会员详情打开训练记录并显示全部结果,页面显示 26 条,12:22 错误行不再出现,另两行存在,无页面运行时错误。
+
+既有训练记录回归 12 项通过,包括作废课次不出现在训练记录、累计节数和详情中的检查。本次无需修改或发布应用运行代码。
+
+私有前像、依赖核对、事务脚本、回滚预览、正式审计回执、双网关核验和页面截图:`~/.local/state/xiaoshu/qa/2026-11-12-dai-lesson-correction/`。不提交会话、口令或原始个人明细。如需恢复,须先核对当前状态、原审计及后续业务,再依据前像进行带审计的反向处理,不覆盖后续变更。