petstore-docs/qa-reports/phase0-report-send-status-2026-08-02.md

60 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Phase 0 报告显式确认发送:交付与验收记录
日期2026-08-02
状态Code Complete / Ready for Release生产迁移与真实环境 smoke 待执行)
## 角色与范围
| 字段 | 值 |
|---|---|
| Owner | Report Media Backend / Store Miniapp FE / Store Admin FE |
| Paired QA | Report Share QA |
| Data Model Review | Yes |
| Architecture Review | Yes |
| Access / Privacy Review | Yes |
| 范围 | Report 发送字段与迁移、确认 API、BusinessEvent、工作台、漏斗、小程序分享弹层、Admin 报告列表、本体与发布文档 |
| 明确排除 | 微信投递回执、自动发送、历史发送猜测、再次预约归因、生产数据库变更 |
## 冻结口径
- 复制链接、复制话术、二维码、预览或打开报告都不自动计为发送。
- 历史报告迁移为 `unknown`;迁移后新报告默认 `unsent`
- 仅本店 boss/staff 可选择 `wechat|qr|other` 显式确认为 `sent`
- 首次回执不可覆盖;重复确认幂等成功,不重复写 `report_sent`
- 工作台只提醒 `unsent`,不把历史 `unknown` 冒充未发送。
- 公开 token 响应不返回发送状态、回执或确认员工。
## 自动验收结果
| 检查 | 结果 |
|---|---|
| Backend `mvn test` | PASS175 tests0 failures0 errors |
| Backend `mvn -DskipTests package` | PASS |
| 迁移 H2 MySQL mode | PASS历史 unknown、新记录默认 unsent、回执一致性 |
| Admin `npm run build` | PASS |
| Frontend `npm run build:h5` | PASS |
| Frontend `npm run build:mp-weixin` | PASS`verify-mp-app-json` OK |
| Release shell syntax | PASS`release-preflight.sh`、`production-smoke.sh` |
| Ontology validate | PASS242 条目、引用完整 |
| Ontology drift | PASS57/57 HTTP endpoints13/13 JPA entities0 drift |
| `git diff --check` | PASS四仓 |
## 关键自动化覆盖
- 新报告强制 `unsent`,忽略请求体伪造的发送字段。
- 首次确认写 `sentAt/sentByUserId/sendChannel` 和低敏 `report_sent`
- 重复确认保留首次回执且不重复保存/发事件。
- customer、跨店员工、非法渠道与非法筛选状态均拒绝。
- 发送确认不改写 `Report.updateTime`,避免重置成片处理超时计时。
- Admin 工作台新增 `unsent_report`,准确总数、低敏预览和服务端发送状态筛选均覆盖。
- 公开报告响应继续隐藏内部身份、token 和发送回执。
## 发布前仍需人工完成
- [ ] 备份并在隔离库恢复验证。
- [ ] 按固定顺序执行第五个迁移 `20260801_create_report_send_status.sql`,三项验证均为 0。
- [ ] 以最终生产配置运行 JPA `validate` + 18 项只读不变量预检。
- [ ] boss/staff/customer 三角色 smoke复制不变更、三渠道确认、重复确认、跨店拒绝、公开页裁剪。
- [ ] 核对工作台 `unsent_report` 与当日 `report_sent` 漏斗数字。
- [ ] 生产变更另行授权;本交付未连接或修改生产数据库。