1|# 子系统 07 — 评价结果追踪 (`review`) v1.0 2| 3|## 子系统概述 4| 5|| 维度 | 说明 | 6|| --- | --- | 7|| 代号 | `review` | 8|| 核心职责 | 用户真实提交评价记录、Amazon 展示核验、ASIN 健康/计划完成度更新回流 | 9|| 数据所有权 | `review_submission_records`, `review_display_checks`, `review_results` | 10|| 启动依赖 | identity / planning(软依赖) | 11|| 外部系统依赖 | Amazon(评价展示状态、ASIN 评分数据) | 12| 13|--- 14| 15|## 1. 模块划分 16| 17|``` 18|┌─────────────────────────────────────────────────────────────┐ 19|│ review 子系统 │ 20|│ │ 21|│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ 22|│ │ M1: 评价提交 │ │ M2: 展示核验 │ │ M3: 结果回流 │ │ 23|│ │ 记录 │→│ │→│ 引擎 │ │ 24|│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ 25|│ │ │ │ │ 26|│ ▼ ▼ ▼ │ 27|│ ┌──────────────┐ ┌──────────────┐ │ 28|│ │ M4: 异常观察 │ │ M5: 对外 API │ │ 29|│ │ 队列 │ │ Gateway │ │ 30|│ └──────────────┘ └──────────────┘ │ 31|│ │ 32|└─────────────────────────────────────────────────────────────┘ 33|``` 34| 35|| # | 模块 | 职责 | 36|| --- | --- | --- | 37|| M1 | 评价提交记录 | 记录用户真实提交评价的事实(提交时点、提交证据、关联计划、关联 ASIN) | 38|| M2 | 展示核验 | 核查 Amazon 是否展示该评价 / 是否可核验 | 39|| M3 | 结果回流引擎 | 将评价结果反馈给 planning(计划完成度)、identity(用户标签)、audit | 40|| M4 | 异常观察队列 | 用户已提交但 Amazon 未展示 / 暂不可核验的评价,进入定期复查队列 | 41|| M5 | 对外 API Gateway | 供 outreach、planning 查询评价进度、提交评价 | 42| 43|--- 44| 45|## 2. 各模块内外说明 46| 47|### 2.1 M1: 评价提交记录 48| 49|| 维度 | 说明 | 50|| --- | --- | 51|| **对内** | 记录两个核心事实:①用户真实提交评价(时间、ASIN、评论内容/截图/链接、关联计划);②提交后立即更新真实人累计评价额度(调用 quota 子系统 `commit`) | 52|| **对外接口** | `POST /api/reviews/submission` — 记录评价提交 | 53|| **数据写入** | `review_submission_records` | 54|| **依赖** | `POST /api/quota/commit` — 确认额度占用(提交后立即计数12) | 55|| **关键规则** | 「用户真实提交评价」和「Amazon 展示确认」是两个独立事实;额度计数按前者,计划完成按后者 | 56| 57|### 2.2 M2: 展示核验 58| 59|| 维度 | 说明 | 60|| --- | --- | 61|| **对内** | 核查 Amazon 是否展示该评价 / 是否可核验;核验方式(待确认:爬取 / 手动 / API / 截图?);核验结果:①展示或可核验→计入计划完成 ②未展示/暂不可核验→保留已提交事实→进入异常观察 | 62|| **对外接口** | `POST /api/reviews/verify` — 触发核验(或定时核验) | 63|| **数据写入** | `review_display_checks` | 64|| **依赖** | Amazon(评价展示数据) | 65|| **待确认** | 核验是自动还是人工?核验频率? | 66| 67|### 2.3 M3: 结果回流引擎 68| 69|| 维度 | 说明 | 70|| --- | --- | 71|| **对内** | 评价确认展示后:①通知 planning 更新计划完成度 ②通知 identity 更新用户标签(例如标记为「已回评用户」)③写入审计日志;免评结果回流:①更新 ASIN 健康与权重变化 ②更新计划完成度 ③通知 planning | 72|| **对外接口** | 内部事件发布 | 73|| **数据写入** | `review_results` | 74|| **依赖** | `PUT /api/plans/{id}/status`(更新计划状态) | 75| 76|### 2.4 M4: 异常观察队列 77| 78|| 维度 | 说明 | 79|| --- | --- | 80|| **对内** | 用户已提交但 Amazon 未展示/暂不可核验的评价,进入异常观察队列;定期复查(例如每天查一次 Amazon 是否已展示);超过观察期仍未展示→标记异常→通知运营 | 81|| **数据写入** | `review_display_checks`(更新状态) | 82|| **待确认** | 观察周期多长?复查频率?观察期满后如何处理? | 83| 84|--- 85| 86|## 3. 对外 API 契约(草案) 87| 88|| 接口 | 方法 | 输入 | 输出 | 消费者 | 89|| --- | --- | --- | --- | --- | 90|| 记录评价提交 | `POST /api/reviews/submission` | `{person_id, asin, plan_id, evidence, submitted_at}` | `{submission_id, quota_updated}` | outreach(IM 核验后/客服确认后) | 91|| 查询计划评价进度 | `GET /api/reviews/status/{plan_id}` | plan_id | `{total_submissions, verified, pending, completion_rate}` | planning | 92|| 查询用户评价历史 | `GET /api/reviews/history/{person_id}` | person_id | `[{submission_id, asin, status, submitted_at}]` | identity(上下文卡) | 93|| ASIN 评价统计 | `GET /api/reviews/asin-stats/{asin}` | asin | `{submission_count, verified_count, pending_count}` | planning | 94| 95|--- 96| 97|## 4. 数据对象 98| 99|| 对象 | 核心字段 | 说明 | 100|| --- | --- | --- | 101|| `review_submission_records` | submission_id, person_id, asin, plan_id, evidence_type, evidence, submitted_at, quota_updated | 评价提交记录(核心事实一) | 102|| `review_display_checks` | check_id, submission_id, asin, check_method, check_result(DISPLAYED/NOT_DISPLAYED/UNVERIFIABLE), checked_at, retry_count, status(OBSERVING/CONFIRMED/ABNORMAL) | 展示核验记录(核心事实二) | 103|| `review_results` | result_id, plan_id, asin, submission_count, verified_count, completion_rate, asin_health_change, updated_at | 评价结果汇总 | 104| 105|--- 106| 107|## 5. 业务澄清问题清单 — review 108| 109|### 5.1 评价提交记录(3 项) 110| 111|| # | 问题 | 优先级 | 112|| --- | --- | --- | 113|| V-01 | 「用户真实提交评价」的证据形式是什么?(用户上传的截图?Amazon 评论链接?系统自动检测?)不同形式如何验证真伪? | **P0** | 114|| V-02 | 一个用户为同一个 ASIN 提交多条评价(如果 Amazon 允许)——每一条都独立计入累计12额度吗? | **P0** | 115|| V-03 | 评价提交记录是 outreach(IM/客服)写入还是用户直接提交?(系统内提交 vs 系统外提交的区别)系统外提交如何登记? | P1 | 116| 117|### 5.2 展示核验(4 项) 118| 119|| # | 问题 | 优先级 | 120|| --- | --- | --- | 121|| V-04 | Amazon 评价展示的核验方式是?(定时爬取 Amazon 产品页?SP-API 拉取评价列表?用户上传截图人工审核?混合方式?) | **P0** | 122|| V-05 | 如果通过爬取核验——爬取频率?(小时级?天级?)如何识别「哪条评价是本次计划用户提交的」?(靠评论者名字匹配?靠时间窗口?) | **P0** | 123|| V-06 | 「暂不可核验」的常见原因有哪些?(Amazon 审核中/延迟展示/被 Amazon 删除?)每种原因的处理策略是否不同? | P1 | 124|| V-07 | 核验失败的兜底机制——如果 Amazon API 不可用或爬取失败,是否允许人工确认? | P1 | 125| 126|### 5.3 异常观察队列(2 项) 127| 128|| # | 问题 | 优先级 | 129|| --- | --- | --- | 130|| V-08 | 异常观察队列的观察期多长?(1 天?7 天?30 天?)复查频率?(每天?每周?)观察期满后未展示→如何处理? | P1 | 131|| V-09 | 多少条评价进入异常观察算异常阈值?(单计划 10% 未展示→通知?单用户多次未展示→标记?) | P2 | 132| 133|### 5.4 结果回流(3 项) 134| 135|| # | 问题 | 优先级 | 136|| --- | --- | --- | 137|| V-10 | ASIN 健康「回流」的具体动作是什么?(更新 ASIN 评分/评价数到 planning?触发新一轮需求评估?更新 outreach 的触达策略?) | P1 | 138|| V-11 | 计划完成度的计算方式——「评价确认展示」即算完成?还是需要确认展示 + 关联到本计划用户?(如何确保那条展示的评价确实是本计划用户的?) | P1 | 139|| V-12 | 免评结果的「权重变化」如何量化?(Amazon 不直接提供权重数据——如何通过间接指标判断?) | P2 | 140| ### 5.5 评价质量管理(4 项) | # | 问题 | 优先级 | | --- | --- | --- | | V-13 | 是否需要评价内容分析?(好评/中评/差评?评价字数?是否含图片/视频?——这些影响评价质量评分?) | P2 | | V-14 | 差评检测和响应——用户提交了差评(1-2 星)是否需要自动触发售后工单?(「差评补救」流程?) | P1 | | V-15 | 虚假评价检测——用户提交的评价是否可能被 Amazon 判定为虚假评价并删除?(系统是否需要内部质量评分来预测被删风险?) | P2 | | V-16 | 评价的 ASIN 匹配校验——用户声称对 ASIN A 提交了评价但实际是对 ASIN B 提交的——如何检测和处理? | P1 | ### 5.6 异常观察队列补充(3 项) | # | 问题 | 优先级 | | --- | --- | --- | | V-17 | 评价提交后 Amazon 展示的预期时间窗口?(通常 24-48h?最长多久?)超出预期窗口后的自动通知? | P1 | | V-18 | Amazon 删除评价(违反社区准则)vs 用户删除评价 vs 评价被折叠——是否能区分?分别如何处理? | P2 | | V-19 | 大量评价同时进入异常观察(例如 Amazon 评价系统故障导致全站延迟)——系统如何处理?(自动暂停观察队列?人工干预?) | P2 | ### 5.7 ASIN 健康回流补充(3 项) | # | 问题 | 优先级 | | --- | --- | --- | | V-20 | ASIN 健康更新的频率?(每次评价确认展示就更新?每天汇总更新一次?) | P2 | | V-21 | 如果多人同时对同一 ASIN 提交了评价,是否对 ASIN 健康有复合影响?(例如 5 条 5 星好评 vs 1 条 1 星差评——权重不同) | P2 | | V-22 | ASIN 健康数据的来源——是 Amazon 直接提供的数据还是系统内部计算?(Amazon 评分 vs 系统追踪到的评价评分可能有差异) | P1 | ### 5.8 实施层面(2 项) | # | 问题 | 优先级 | | --- | --- | --- | | V-23 | 评价展示核验如果是爬取 Amazon 页面——爬取频率和多 ASIN 并行爬取能力?(需要爬取几百个 ASIN 时的时间和资源开销) | P1 | | V-24 | 评价数据是否需要在系统间同步?(outreach 需要知道「用户已提交」→暂停触达;planning 需要知道「评价已确认」→更新计划完成度)数据一致性的保证? | P1 |