--- name: dukang-prev1 description: >- Guides preV1 Mock integration phase for Dukang Haoke: H5 three-client setup, MOCK_SMS/MOCK_PAY/MOCK_DELIVERY flags, Seed data, and V2 upgrade path. Use when working on Mock providers, feature flags, preV1 task cards P1-*, or smoke tests — not for V2 WeChat/payment production integration. --- # 杜康好客 · preV1 Mock Skill ## 定位 preV1 = V2 之上的**裁剪实现**:**不删表、不删 API 路径、不改字段语义**。 权威文档:[`杜康好客-preV1编码手册.md`](../../杜康好客-preV1编码手册.md) ## 六条裁剪(必记) 1. **无 HQ 小程序** → `admin-web` 内部替代;`/admin/*` 保留,前端不暴露 AdminAuth 给 C/B/D 端 2. **三端均 H5** → `USER_H5` / `SHOP_H5` / `PARTNER_H5` 3. **无微信登录** → 仅 SMS;wechat 路由返回 501 或 Flag 关闭 4. **验证码 Mock** → `123456`,`MOCK_SMS=true` 5. **配送 Mock** → BullMQ 自动推进或合伙人 `mock-advance-delivery` 6. **支付 Mock** → `POST /trade/orders/:id/pay` 同步成功 + **真实发券** ## 环境变量(`.env.example`) ```bash MOCK_SMS=true MOCK_SMS_CODE=123456 MOCK_PAY=true MOCK_DELIVERY_AUTO=true AUTO_APPROVE_STORE=true ``` 配置加载:`packages/shared-types/src/config.ts` → `loadAppConfig()` ## Mock 代码位置(禁止散落) ``` server/dukang-api/src/integrations/ ├── sms/sms.interface.ts + sms.mock.provider.ts ├── pay/pay.interface.ts + pay.mock.provider.ts └── delivery/delivery.interface.ts + delivery.mock.provider.ts ``` 业务 Module 只 inject **interface**,由 Nest DI 切换 Mock/Real。 ## preV1 必做 vs 跳过 | 必做 | 跳过(V2 补) | |------|---------------| | 三端 SMS 登录 | 微信登录/支付/退款 | | Mock 支付 + 真实发券 | 微信 prepay/回调验签 | | 5 Tab 订单 | HQ 小程序 UI | | Redis 核销码 + 门店核销 | 真实小飞侠/物流 | | 合伙人录店 + AUTO_APPROVE | 总部人工审核 UI | | 可选埋点 | 推广码 HQ UI、T+30 真实打款 | ## HQ 能力替代(Seed) | V2 HQ | preV1 | |-------|-------| | 开城/商品 CRUD | Seed 固定 + admin-web 或改 seed | | 门店审核 | AUTO_APPROVE_STORE=true | | 退款/客服 | 跳过 | | 结算 | store_payout PENDING;可 Seed 演示账单 | Seed:`server/dukang-api/prisma/seed-v31.ts` ## 测试账号 | 角色 | 手机号 | |------|--------| | C 端 | 13800000001 | | 门店 | 13900000001 | | 合伙人 | 13700000001 | ## 冒烟 ```bash node scripts/smoke-prev1.mjs ``` ## preV1 → V2 切换检查 按 preV1 手册 §8.2 逐项关闭 Mock Flag,**无需重构表结构**。 ## 边界提醒 - preV1 skill **不负责**实现 V2 微信 SDK;遇到真实支付/短信需求 → 停止并切换 V2 手册 §九 - 改 Mock 行为时 **仍须** 遵守 OWNER 模块边界 - admin-web 是 preV1 内部工具,勿与 V2 `pages/hq/` 原型混为一谈