自动修改

This commit is contained in:
2026-07-12 07:50:27 +08:00
parent b74e4e4fe5
commit d0f0fa09af
18 changed files with 117 additions and 66 deletions
+55 -28
View File
@@ -14,14 +14,15 @@
|------|------|
| **整体完成度(粗估)** | Wave 1 约 **45%**Wave 2 约 **10%**Wave 3 约 **5%** |
| **可跑通的主链路** | 登录 → 浏览商品 → 同城下单 Mock/微信支付 → 权益 1:1 → **扫码核销** → T+1 门店 payout 记录 → 总部确认打款 |
| **最大阻塞** | 端形态(无小程序 C 端)、规则常量冲突(TTL/Tab/SKU/佣金)、Wave 1 缺口(手机号核销/规则弹窗/试核销/自动推小飞侠) |
| **最大阻塞** | C 端小程序迁移(暂缓)、Wave 1 缺口(手机号核销/规则弹窗/试核销/自动推小飞侠) |
| **P0 冲突** | C2~C7、C14 **已修复**2026-07-12 |
| **冒烟覆盖** | `scripts/smoke-v3.mjs` 仅覆盖窄 W1 切片,**不等于** V3.0 ACC 全量 |
### Wave 门禁状态
| 门禁 | 状态 | 一句话 |
|------|------|--------|
| **W1-S1** 下单+支付+权益 | 🔶 | 链路可跑,SKU/订单 Tab/TTL 不合规 |
| **W1-S1** 下单+支付+权益 | 🔶 | TTL/Tab/SKU/佣金已对齐;仍缺小程序形态 |
| **W1-S2** 门店核销双通道 | 🔶 | 扫码 ✅;手机号核销 ❌ |
| **W1-S3** 合伙人子账号 | ✅ | CRUD + 推广员菜单裁剪已有 |
| **W1-S4** 拓店→审核→C 端可见 | 🔶 | 三步录入有;试核销100/负责人复核/SOP 缺失 |
@@ -40,26 +41,54 @@
---
## 1. ⚠️ 冲突项(必须先改)
## 1. ⚠️ 冲突项与改造计划
> 代码已存在但与 V3.0 PRD **直接矛盾**,继续开发会累积返工
> 代码已存在但与 V3.0 PRD 直接矛盾**P0 已于 2026-07-12 执行**P1/P2 排后续迭代
| # | V3.0 要求 | 当前实现 | 证据位置 | 改造建议 |
|---|-----------|----------|----------|----------|
| C1 | C 端 = **微信小程序** | `apps/h5-user` H5;无 `mini-user` | `apps/h5-user/` | 新建小程序或明确 H5 为过渡并排迁移 |
| C2 | 核销码 TTL **3 分钟** | **300 秒(5 分钟)** | `packages/shared-types/src/enums.ts` `REDEEM_TOKEN_TTL_SECONDS=300``apps/h5-user/src/pages/RedeemPage.tsx` 文案 | 改常量为 180 + 全端文案 |
| C3 | 短信验证码 **3 分钟** | Redis TTL **300 秒** | `server/dukang-api/src/integrations/sms/sms-code.store.ts` | 改 `CODE_TTL_SECONDS=180` |
| C4 | 订单 Tab:**待付款 / 已付款 / 已完成** | **5 Tab**(含待发货/待收货) | `apps/h5-user/src/pages/OrderListPage.tsx``OrderTab` enum | 改 Tab 映射与列表 API |
| C5 | 订单状态机三态展示 | **9 态** `OrderStatus` | `packages/shared-types/src/enums.ts` | PRD 三 Tab 映射到细粒度状态,或收敛状态机 |
| C6 | 4 款 **酒祖杜康** + 锚点价 | preV1 杜康系列 ¥3991299 | `server/dukang-api/prisma/seed-v31.ts` | 替换 seed + 商品管理数据 |
| C7 | 默认佣金 **0% 订单 + 3% 核销** | seed **5% 订单佣金** | `seed-v31.ts` `orderCommissionRate: 0.05` | 改 seed 与开城默认 |
| C8 | **一号多店**(同号可多店主账号) | `StoreAccount.phone @unique`;创建时**拒绝**重复手机 | `schema.prisma` `StoreAccount``store.service.ts` `partnerCheckStorePhone` | 改模型:主账号与门店多对多 |
| C9 | 支付后**自动推小飞侠**(同城) | 支付后 delivery `MANUAL`;总部手动推单 | `trade.service.ts``admin-xiaofeixia.service.ts` | 支付回调后接 xiaofeixia |
| C10 | 门店结算 = **门店主动提现**W2 | 核销后**自动生成** `StorePayout` | `settlement.service.ts` `createStorePayout` | 增加余额账本 + 提现申请流 |
| C11 | 工单 **四类型** | enum 仅 **3 类** `REFUND/RESHIPMENT/ALERT` | `schema.prisma` `TicketType` | 扩展 enum + 用户建单 UI |
| C12 | 配送类型含 **现场提货** | `DeliveryType``LOCAL/CROSS_CITY` | `packages/shared-types/src/enums.ts` | 新增 `ON_SITE_PICKUP` |
| C13 | 多合伙人(全城/区域平级) | 城市 `partnerId` **单合伙人** | `schema.prisma` `CommonCity.partnerId` | 新增合伙人管辖/区县/佣金快照模型 |
| C14 | 文档/规则残留 5min、5 Tab | `apps/AGENTS.md`、backend rules 仍写旧口径 | `.cursor/rules/``apps/AGENTS.md` | 批量对齐 V3.0 |
### 1.1 改造计划总览
| 阶段 | 冲突项 | 内容 | 状态 |
|------|--------|------|------|
| **P0** | C2~C7、C14 | TTL、订单三 Tab、SKU seed、佣金默认、文档规则 | ✅ **已执行** |
| **P1** | C1 | C 端 H5 过渡;目标微信小程序另立项 | 📋 已决策暂缓 |
| **P1** | C9 | 支付后自动推小飞侠 | 📋 待做(Wave 1) |
| **P2** | C8 | 一号多店(schema + 拓店确认) | 📋 待做(Wave 2) |
| **P2** | C10 | 门店主动提现 + FIN 护栏 | 📋 待做(Wave 2 |
| **P2** | C12 | 现场提货 `ON_SITE_PICKUP` | 📋 待做(Wave 2 |
| **P3** | C11 | 工单四类型 | 📋 待做(Wave 3) |
| **P3** | C13 | 多合伙人管辖/佣金快照 | 📋 待做(Wave 2~3) |
### 1.2 冲突明细
| # | V3.0 要求 | 改造前 | 状态 | 改造记录(2026-07-12 |
|---|-----------|--------|------|------------------------|
| C1 | C 端微信小程序 | `h5-user` H5 | 📋 暂缓 | 工程决策:H5 过渡,小程序另立项 |
| C2 | 核销码 TTL **3 分钟** | 300s | ✅ 已修复 | `REDEEM_TOKEN_TTL_SECONDS=180`C 端文案 |
| C3 | 短信验证码 **3 分钟** | 300s | ✅ 已修复 | `SMS_CODE_TTL_SECONDS=180` |
| C4 | 订单 Tab 三态 | 5 Tab | ✅ 已修复 | `pending_pay` / `paid` / `completed` |
| C5 | 列表展示三态 | 9 态直出 | ✅ 已修复 | 内部状态保留;Tab/列表映射三态 |
| C6 | 4 款酒祖杜康 + 锚点价 | preV1 SKU | ✅ 已修复 | `seed-v31.ts` 四 SKU ¥128~498 |
| C7 | 佣金 0%+3% | seed 5% 订单 | ✅ 已修复 | seed + `admin-cities` + settlement 默认 |
| C8 | 一号多店 | phone @unique | 📋 P2 | 待 schema + `partnerCheckStorePhone` |
| C9 | 支付后推小飞侠 | MANUAL delivery | 📋 P1 | 待 `trade.service` 支付回调 |
| C10 | 门店主动提现 | 自动 StorePayout | 📋 P2 | 待提现申请流 |
| C11 | 工单四类型 | 3 enum | 📋 P3 | 待扩展 `TicketType` |
| C12 | 现场提货 | 无 DeliveryType | 📋 P2 | 待 `ON_SITE_PICKUP` |
| C13 | 多合伙人 | 单 partnerId | 📋 P2~3 | 待管辖/快照模型 |
| C14 | 文档残留旧口径 | 5min/5 Tab | ✅ 已修复 | `apps/AGENTS.md`、rules、agents、skills |
### 1.3 P0 已改文件清单
| 模块 | 文件 |
|------|------|
| 契约 | `packages/shared-types/src/enums.ts` |
| 规则 | `packages/domain/src/index.ts``index.test.ts` |
| 短信 | `server/.../sms/sms-code.store.ts` |
| 佣金 | `seed-v31.ts``admin-cities.service.ts``settlement.service.ts` |
| C 端 | `OrderListPage.tsx``MinePage.tsx``PayPage.tsx``RedeemPage.tsx``RedeemCodePage.tsx` |
| 文档 | `apps/AGENTS.md``.cursor/rules/*``.cursor/agents/owner-d-shop-redeem.md` |
> **重跑 seed**:本地需 `cd server/dukang-api && pnpm prisma:seed` 后商品/佣金数据才与 C6/C7 一致。
---
@@ -73,13 +102,13 @@
| REQ-U-002 | 登录 + 下单强制手机号 | `OrderConfirmPage.tsx``PhoneVerifiedGuard` | ✅ |
| REQ-U-003 | 微信支付 | `pay-wechat.ts` + 后端 callback | Mock/真实均有 |
| REQ-U-004 | 定位/开城 | `HomePage.tsx``wechat-location.ts` | 🔶 H5 定位 API |
| REQ-U-005~006 | 商品列表/详情 | `HomePage.tsx``ProductDetailPage.tsx` | ⚠️ SKU 数据见 C7 |
| REQ-U-005~006 | 商品列表/详情 | `HomePage.tsx``ProductDetailPage.tsx` | ✅ seed 已对齐酒祖杜康 |
| REQ-U-007 | 同城 ≥2 瓶 | `packages/domain` + `trade.service.ts` | ✅ |
| REQ-U-010 | 锁单写入 30min | `trade.service.ts` `payExpireAt` | 🔶 无自动取消 job |
| REQ-U-011 | 权益 1:1 | `benefit.service.ts` | ✅ |
| REQ-U-012 | 客服入口 | `CustomerServicePage.tsx` | 🔶 Mock 对话 |
| REQ-U-013~014 | 门店列表/详情 | `StoreListPage.tsx` 等 | ✅ 仅 OPEN |
| REQ-U-015 | 出码核销 | `RedeemPage.tsx` | ⚠️ TTL 见 C3 |
| REQ-U-015 | 出码核销 | `RedeemPage.tsx` | TTL 3 分钟 |
| REQ-U-017 | 核销后评价 | `RedeemSuccessPage.tsx` | ✅ |
| REQ-U-018 | 权益页 Tab | `BenefitPage.tsx` | ✅ |
| REQ-U-019 | 个人中心 | `MinePage.tsx` | ✅ |
@@ -220,12 +249,9 @@
## 6. 建议改造顺序(仅 V3.0 视角)
### P0 — 消除冲突1~2 天
### P0 — 消除冲突 ✅ 已完成(2026-07-12
1. C2/C3:核销码 + 短信 TTL → 3 分钟
2. C6/C7seed SKU + 佣金默认值
3. C4/C5:订单三 Tab 与 API 映射
4. C14:更新 `apps/AGENTS.md``.cursor/rules` 残留旧口径
C2~C7、C14 见 §1.3。
### P1 — 补齐 Wave 1 门禁(3~5 天)
@@ -264,5 +290,6 @@
| 日期 | 说明 |
|------|------|
| 2026-07-12 | 明确总部端保持 WebAdmin,不改为 H5;移除原 C2 端形态冲突 |
| 2026-07-12 | **P0 已执行**:C2~C7、C14 代码与文档对齐;§1 改为计划+状态表 |
| 2026-07-12 | 明确总部端保持 WebAdmin,不改为 H5 |
| 2026-07-11 | 首版:V3.0 PRD 全量对照当前 monorepo |