v3计划内容上传

This commit is contained in:
2026-07-04 20:36:26 +08:00
parent def3ed5175
commit 743d242d52
23 changed files with 291 additions and 53 deletions
+1 -1
View File
@@ -50,7 +50,7 @@ Never scatter `if (process.env.MOCK_PAY)` in trade/benefit services.
1. Align with V2 manual §五
2. Notify table owner: jacy-dukang 或 刘京尧(store/redeem 相关表)
3. `pnpm db:validate` + seed still works
4. PR: jacy-dukang Review;涉及 store/redeem 表时 @刘京尧
4. PR: jacy-dukang Review;涉及 store/redeem 表时通知刘京尧
## Forbidden
+2 -2
View File
@@ -25,8 +25,8 @@ Inspect the diff (or named files) for:
| 逻辑域 | Git 账号 | Apps | Modules |
|--------|----------|------|---------|
| 主责 | jacy-dukang | h5-user, admin-web | iam, trade, benefit, analytics, catalog, settlement, ops |
| 合伙人+门店 | 刘京尧 | h5-partner, h5-shop | store, redeem |
| 主责 | jacy-dukang | h5-user, admin-web, 门店 | iam, trade, benefit, analytics, catalog, settlement, ops |
| 合伙人 | 刘京尧 | h5-partner, h5-shop | store, redeem |
| 横切 | jacy-dukang | — | packages, callbacks, jobs, common, integrations |
逻辑 A/B/C/D 边界仍有效;刘京尧 同时负责 B+D,但 **store 与 redeem 模块仍不可互写表**
+1 -1
View File
@@ -36,7 +36,7 @@ User (Owner A) generates token → Shop scans/confirms (you)
## Hard rules
- Redis token: `redeem:token:{token}` TTL 300s
- Amount: `0 < amount ≤ min(balance, 500)`
- Amount: direct redeem `0 < amount ≤ total ACTIVE benefit balance`; document redeem `0 < amount ≤ document balance`
- Transaction + coupon `version` optimistic lock
- **Never** `prisma.order.update` in redeem module
+1 -1
View File
@@ -41,7 +41,7 @@ alwaysApply: true
## 核心业务常量
- 权益额 = `benefit_amount ?? price`
- 核销:0 < amount ≤ min(balance, **500**)
- 核销:直接核销 `0 < amount ≤ 全部 ACTIVE 权益总余额`;带单据核销 `0 < amount ≤ 该单据可用金额`
- 订单 Tab`all | pending_pay | pending_ship | pending_receive | completed`
- API`/api/v1`,响应 `{ code, message, data }`
+1 -1
View File
@@ -24,7 +24,7 @@ src/
| App | 端口 | 负责人 | 样式 | X-Client-App |
|-----|------|--------|------|--------------|
| h5-user | 5173 | jacy-dukang | shared-ui tokens | USER_H5 |
| h5-shop | 5174 | 刘京尧 | shared-ui tokens | SHOP_H5 |
| h5-shop | 5174 | jacy-dukang | shared-ui tokens | SHOP_H5 |
| h5-partner | 5175 | 刘京尧 | shared-ui tokens | PARTNER_H5 |
| admin-web | 5175 | jacy-dukang | Ant Design 5 | HQ_WEB |
+2 -2
View File
@@ -24,13 +24,13 @@ alwaysApply: false
## domain
- 纯函数,无 IO(无 Prisma/Redis/HTTP
- 起购 2/6 瓶、权益 `benefitAmount ?? price`、核销 ¥500 上限在此实现
- 起购 2/6 瓶、权益 `benefitAmount ?? price`、V3 两路径核销规则在此实现
- 变更必须有单元测试
```typescript
const benefitAmount = product.benefitAmount ?? product.price;
// 同城起购 2 瓶 / 跨城 6 瓶
// 核销上限 ¥500
// 直接核销按全部 ACTIVE 权益总余额;带单据核销按该单据可用金额
```
## shared-ui
+2 -2
View File
@@ -81,14 +81,14 @@ await this.prisma.order.update({ ... });
## 数据库变更
1.`server/dukang-api/prisma/schema.prisma` 对齐手册 §五
2. 迁移需 OWNER Reviewstore/redeem 表 → @刘京尧
2. 迁移需 OWNER Reviewstore/redeem 表 → 刘景尧
3. 初始化 SQL`server/dukang-api/prisma/init_v3.sql`
## 核心业务(packages/domain
```typescript
const benefitAmount = product.benefitAmount ?? product.price;
// 核销:0 < amount ≤ min(balance, 500)
// 核销:直接核销按全部 ACTIVE 权益总余额;带单据核销按该单据可用金额
// 同城 min 2 瓶 / 跨城 min 6 瓶
// 支付成功 → log_third_party + user_order.pay_status=PAID
@@ -36,8 +36,8 @@ Admin 路由在 `modules/ops/` 下,前缀 `/admin/*`。
| catalog | `/catalog`, `/admin/cities`, `/admin/products` | jacy-dukang |
| trade | `/trade`, `/partner/orders`, `/admin/orders` | jacy-dukang |
| benefit | `/benefit` | jacy-dukang |
| store | `/stores`, `/partner/stores`, `/admin/store-audits` | 刘尧 |
| redeem | `/redeem`, `/shop/redeem` | 刘尧 |
| store | `/stores`, `/partner/stores`, `/admin/store-audits` | 刘尧 |
| redeem | `/redeem`, `/shop/redeem` | 刘尧 |
| settlement | `/settlement`, `/partner/settlement`, `/admin/settlement` | jacy-dukang |
| ops | `/admin/dashboard`, `/admin/reports` | jacy-dukang |
| analytics | `/analytics`, `/promo/touch` | jacy-dukang |
@@ -48,8 +48,8 @@ Admin 路由在 `modules/ops/` 下,前缀 `/admin/*`。
| 前缀 | 示例表 | 负责人 |
|------|--------|--------|
| user_ | user_user, user_order, user_benefit_coupon | jacy-dukang |
| store_ | store_store, store_account, store_payout | 刘尧 / jacy-dukangsettlement |
| partner_ | partner_partner, partner_bill | 刘尧 / jacy-dukangsettlement |
| store_ | store_store, store_account, store_payout | 刘尧 / jacy-dukangsettlement |
| partner_ | partner_partner, partner_bill | 刘尧 / jacy-dukangsettlement |
| hq_ | hq_account | jacy-dukang |
| common_ | common_product_item, common_event, common_city | jacy-dukang |
| log_ | log_third_party, log_user_analytics | 写入方 Module |
@@ -7,8 +7,8 @@
| App | 目录 | 端口 | 负责人 | X-Client-App | 原型 |
|-----|------|------|--------|--------------|------|
| h5-user | apps/h5-user | 5173 | jacy-dukang | USER_H5 | pages/user/ |
| h5-shop | apps/h5-shop | 5174 | 刘尧 | SHOP_H5 | pages/shop/ |
| h5-partner | apps/h5-partner | 5175 | 刘尧 | PARTNER_H5 | pages/partner/ |
| h5-shop | apps/h5-shop | 5174 | 刘尧 | SHOP_H5 | pages/shop/ |
| h5-partner | apps/h5-partner | 5175 | 刘尧 | PARTNER_H5 | pages/partner/ |
| admin-web | apps/admin-web | 5175 | jacy-dukang | HQ_WEB | pages/hq/ |
> **h5-partner 与 admin-web 端口同为 5175**,勿同时 `dev:partner` + `dev:admin`。
@@ -51,7 +51,7 @@ H5 三端引用 `@dukang/shared-ui``tokens.css`)。admin-web 使用 Ant Des
all | pending_pay | pending_ship | pending_receive | completed
```
## h5-shop 路由(刘尧)
## h5-shop 路由(刘尧)
| 路由 | Page | 主要 API |
|------|------|----------|
@@ -63,7 +63,7 @@ all | pending_pay | pending_ship | pending_receive | completed
| /status | StatusPage | /shop/store |
| /mine | MinePage | /shop/store |
## h5-partner 路由(刘尧)
## h5-partner 路由(刘尧)
| 路由 | Page | 主要 API |
|------|------|----------|
+3 -3
View File
@@ -31,8 +31,8 @@ description: >-
|------|--------|---------|
| C 端 FE、h5-user、交易后端 | jacy-dukang | P1-M1-002, M2-* |
| admin、catalog、settlement | jacy-dukang | M1-BE-CAT-* |
| 合伙人、store | 刘尧 | P1-M4-001 |
| 门店核销、h5-shop | 刘尧 | P1-M3-002 |
| 合伙人、store | 刘尧 | P1-M4-001 |
| 门店核销、h5-shop | 刘尧 | P1-M3-002 |
| Monorepo/integrations | jacy-dukang | P1-M0-* |
## preV1 任务卡(精简)
@@ -47,7 +47,7 @@ description: >-
| P1-M2-001 | 起购校验 2/6 瓶 |
| P1-M2-002 | Mock 支付发券 |
| P1-M2-003 | 5 Tab 含 pending_ship |
| P1-M3-001 | 核销 ¥500 上限 |
| P1-M3-001 | V3 两路径核销金额限制 |
| P1-M3-002 | 门店扫码核销 |
| P1-M4-001 | 录店 AUTO_APPROVE → C 端可见 |
| P1-M5-001 | 配送自动推进到 COMPLETED |