claude-code-handoff.md 4.5 KB

036 多店下单:Claude Code 编码交接

日期:2026-10-19。工作分支:codex/036-multi-store-checkout。本文件只交接尚未实现的生产代码、测试、SQL 增量和联调事项;文档完成不表示功能上线。开始前检查当前 Git 状态,保留 008 促销券等与 036 无关的现有修改,不切换分支或覆盖他人工作。

先读的依据

  1. 需求规格:FR-001~048、SC-001~036,以最新用户确认覆盖历史讨论文字。
  2. 实施方案、数据模型、任务清单:按 T003 起的未勾选任务推进,T001/T002/T004 已完成的部分不要重做。
  3. 接口契约、两端展示、App 接入说明:新增接口是目标契约,只有 /quote 和平台配置已有部分实现;不能把文档路径当作现成 API。
  4. 仓库 AGENTS.md:有效订单/支付入口、Java 21、Controller DTO 与 i18n、SQL 只登记、中文提交、保留原编码和换行。不要引用废弃的 Zalo/蓝新/VNPay/TestTask 流程。

当前实现边界

  • 现有多店配置和报价基础已提交;批次创建、逐店收银、统一生效/超时、LINE/OMG 原交易退款、同骑手组承接、组合列表/角标和平台退款跟进仍待实现。updatesql/sql.md 已登记 036 基础 DDL;activated_at/opened_at 等审查新增列须在相关任务核对、补登记,开发者手动执行迁移,代码代理不直接执行数据库结构或数据迁移。
  • 新批次仅凭服务端 order_checkout_member.pos_order_id 关联识别;父单号、payStatus、isDisplay 或客户端字段都不能替代。普通/历史单沿旧流程,唯一批准的普通单补齐是平台配送预约旧时点持久开放扫描。不要让旧普通订单进入 036 付款截止、折扣、返券或组容量规则。
  • 用户已确认骑手到首店距离作为待抢和接组范围基准,服务端用建批首店子单的取餐坐标快照;在骑手锁内重验位置时效、资格、字典容量、范围与组成员。首店到其他店的可配置直线围栏是独立的合并资格。
  • 用户已确认旧版用户/骑手 App 必须升级后才使用多店。服务端旧单笔付款、取消、接单入口须防止绕过;兼容版本、列表、角标和两端 App 联调完成前保持多店开关关闭。本仓库不改用户/骑手/商家 App 源码。
  • 用户确认原子接组,但取餐、送达、商家出餐、到付现金和每笔账单仍独立;组占骑手一个外卖任务。商家已接未取无法供餐可按本店异常路径取消;已接组后用户不得取消。仅新批次支持每店 LINE/OMG/到付混用,禁转账;旧单店转账不变。

执行顺序与完成判据

  1. T003/T005:权威预结算与幂等父子单/成员/规则快照;先补行为测试,确认失败再实现。校验圈内 A/B、圈外 C、商品与金额、优惠券、预约同段、地址冻结和普通单隔离。
  2. T006~T010、T023~T024:逐店真实支付事实、15 分钟发起/到付确认及创建时缓冲快照、原子生效与持久通知、预约开放和过期、037 无人接单取消;并发取消/回调/接组只允许合法一方获胜。旧预约扫描仅沿既有时点。
  3. T011~T013:按原 LINE/OMG 交易全额退款、未知/迟到结果恢复、取消券返还;测试环境不调用 OMG 正式退款端点,不能把模拟成功写成真实到账。
  4. T014~T016、T025~T026:同锁整组承接、旧单笔拆抢防护、原骑手字典组计 1、逐子单取送、下调店数冲突保护和到付/运费快照一致;不新增第二套骑手子单上限。
  5. T017~T019/T021:服务端聚合列表、角标、详情、平台跟进和两端升级门禁;普通/批次混排先聚合再分页,组只在一个主工作页签,已送 A/待取 B 仍待取餐。新 POST 的业务 ID 在 body;按合同业务码/i18n 返回错误。App 接入由前端人员完成。
  6. 每一批按任务清单和 AGENTS 验证定向测试、JDK 21 构建、差异范围及 CRLF;完成时再做普通 LINE/OMG/到付/转账、自取、夜市自配送、预约、优惠券/促销、发票、闪送/骑手容量回归。真实数据库并发、真机及支付网关联调未跑时明确标记未验证。

业务延期项:新预约送达时段语义和倒推最迟接单算法、空跑补偿、已取餐后的特殊异常售后。不要因为这些延期项遗漏本轮已确认的预约开放、无人接单取消、普通单回归和组任务异常占用验收。