{
  "source_path": "work_store/VWCG-1121-gift-account-mvp/task-contract.md",
  "status": "historical-conflict-snapshot-not-an-active-contract",
  "original_sha256": "40a83f128f8d65ec8970842c0a13b7c3a3af4d76aa12b6fb072db81e0fb5c317",
  "original_text": "# VWCG-1121 任务契约\n\n## 任务目标\n\n基于云效需求与当前 `store`、`ai_api`、`ai_app` 代码事实，为“充值赠送账户 MVP”输出可评审、可拆分、可测试、可回滚的技术方案。\n\n## 本轮范围\n\n- 记录原始需求与云效需求证据。\n- 分析 PC 端、AI API、小程序、消费设备及两套数据库的现状链路。\n- 设计赠送余额、充值赠送规则、赠送流水、扣款顺序、消费/退款拆账、权限、导出、幂等、补偿、迁移和回滚方案。\n- 明确所有下单来源的接入范围与验收矩阵。\n- 交付 Markdown 技术方案及同内容 HTML 评审版。\n\n## 本轮不做\n\n- 不修改 `store`、`ai_api`、`ai_app` 业务代码或数据库。\n- 不创建云效研发子任务，不更新云效需求状态。\n- 不生成可直接在生产环境执行的 DDL。\n- 不替产品决定仍有冲突的业务规则。\n- 不更新旧的 `store/prompt/**`。\n\n## 已确认的业务基线\n\n- 用户新增赠送账户，赠送余额可消费、不可提现、永久有效。\n- 充值订单复用现有 `pay_price`、`gift_money`、`actual_money` 字段，且 `actual_money = pay_price + gift_money`。\n- PC 与小程序充值均需生成独立的现金、赠送流水。\n<<<<<<< HEAD\n- 命中充值赠送规则时，实付本金进入活动本金余额，赠送金额进入赠送余额，两者均不可现金退款；只有未命中规则的普通充值本金进入可退款余额。\n=======\n>>>>>>> 5d05833ef476571c794ef3016336bc136526872c\n- 扣款顺序由后台配置，对新订单生效，历史订单必须保留实际扣款快照。\n- 本轮用户指定的暂定默认顺序为“餐补 → 现金 → 赠送”。\n- 所有实际下单入口应收敛到同一账户结算规则，不能仅覆盖来源 1～4。\n\n## 必须在开发前确认\n\n1. 云效 PRD 写的是“餐补 → 赠送 → 现金”，本轮输入写的是“餐补 → 现金 → 赠送”；本方案暂按后者设计。\n<<<<<<< HEAD\n2. 部分退款应按实际扣款逆序恢复，还是按比例恢复；本方案建议按实际扣款逆序。\n3. 旧充值套餐赠送与新赠送活动是否互斥、迁移或并行。\n4. 旧 H5 充值入口是否纳入本期；本期明确范围仅为 PC 与小程序。\n5. 订单来源 `source=10` 的业务含义和是否参与本期结算。\n6. PRD 提及但当前 `ai_app` 分支不存在的 `scanPay.vue` 对应真实入口。\n=======\n2. 命中赠送活动的充值本金应如何在现金账户内部标识、消费与退款。\n3. 部分退款应按实际扣款逆序恢复，还是按比例恢复；本方案建议按实际扣款逆序。\n4. 旧充值套餐赠送与新赠送活动是否互斥、迁移或并行。\n5. 旧 H5 充值入口是否纳入本期；本期明确范围仅为 PC 与小程序。\n6. 订单来源 `source=10` 的业务含义和是否参与本期结算。\n7. PRD 提及但当前 `ai_app` 分支不存在的 `scanPay.vue` 对应真实入口。\n>>>>>>> 5d05833ef476571c794ef3016336bc136526872c\n\n## 交付物\n\n- `raw-request.md`\n- `source-evidence.md`\n- `technical-design.md`\n- `technical-design.html`\n- `review-note.md`\n\n## 验收标准\n\n- 文档能逐项映射云效需求及本轮 5 条技术分析。\n- 数据设计同时覆盖账户库 `yoshop_*` 与业务库 `ydy_*`，并标明数据库归属。\n- 充值、消费、退款均包含正常、重复、并发、失败补偿与对账路径。\n- 账户不变量、接口幂等键、订单扣款快照和历史兼容规则明确。\n- 当前所有已识别下单来源均有接入结论。\n- 明确异步导出联动范围。\n- 提供测试覆盖矩阵、灰度与回滚方案。\n- HTML 可独立打开，Markdown 链接与 Mermaid 源码可读。\n\n## 风险等级\n\n高。原因是本需求同时影响余额、支付回调、消费扣款、退款、提现资格、跨数据库一致性、多个客户端和多个订单来源。\n",
  "blocks": [
    {
      "line": 28,
      "variant_a": "- 命中充值赠送规则时，实付本金进入活动本金余额，赠送金额进入赠送余额，两者均不可现金退款；只有未命中规则的普通充值本金进入可退款余额。\n",
      "variant_b": ""
    },
    {
      "line": 39,
      "variant_a": "2. 部分退款应按实际扣款逆序恢复，还是按比例恢复；本方案建议按实际扣款逆序。\n3. 旧充值套餐赠送与新赠送活动是否互斥、迁移或并行。\n4. 旧 H5 充值入口是否纳入本期；本期明确范围仅为 PC 与小程序。\n5. 订单来源 `source=10` 的业务含义和是否参与本期结算。\n6. PRD 提及但当前 `ai_app` 分支不存在的 `scanPay.vue` 对应真实入口。\n",
      "variant_b": "2. 命中赠送活动的充值本金应如何在现金账户内部标识、消费与退款。\n3. 部分退款应按实际扣款逆序恢复，还是按比例恢复；本方案建议按实际扣款逆序。\n4. 旧充值套餐赠送与新赠送活动是否互斥、迁移或并行。\n5. 旧 H5 充值入口是否纳入本期；本期明确范围仅为 PC 与小程序。\n6. 订单来源 `source=10` 的业务含义和是否参与本期结算。\n7. PRD 提及但当前 `ai_app` 分支不存在的 `scanPay.vue` 对应真实入口。\n"
    }
  ]
}
