Merge commit 'a0ee3a21cd01229a555384ad5e1f4b3ccdcdd620' into dev_jacy
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
---
|
||||
name: dukang-coding
|
||||
description: >-
|
||||
Implements Dukang Haoke (杜康好客) features following V2/preV1 coding manuals,
|
||||
module OWNER boundaries, and shared-types contracts. Use when coding APIs,
|
||||
pages, Prisma logic, task cards, or fixing bugs in this monorepo.
|
||||
Implements 杜康好客 features following V2/preV1 coding manuals, module OWNER
|
||||
boundaries, and shared-types contracts. Use when coding APIs, pages, Prisma logic,
|
||||
task cards, or fixing bugs — not for PRD/requirements review (use @dukang-project).
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
# 杜康好客 · 编码 Skill
|
||||
@@ -11,8 +12,11 @@ description: >-
|
||||
## 何时启用
|
||||
|
||||
- 实现/修复 `apps/*`、`server/dukang-api`、`packages/*` 功能
|
||||
- 用户给出任务卡 ID 或 @ 本 skill
|
||||
- **不要**用于纯文档问答(直接读手册即可)
|
||||
- 实现任务卡(`M2-BE-TRD-002`、`P1-M2-002` 等)
|
||||
- 用户给出任务卡 ID、说「开始 coding」或 @dukang-coding
|
||||
- 修复 V1 范围 Bug
|
||||
|
||||
**不用于**:写 PRD、评审需求、纯文档问答 → 用 @dukang-project 或直接读手册
|
||||
|
||||
## 会话启动(按序)
|
||||
|
||||
@@ -22,10 +26,13 @@ description: >-
|
||||
4. UI 任务 → `pages/ROUTE_MAP.md` + 对应 `pages/{端}/` 原型
|
||||
5. 编码前过一遍下方 Checklist
|
||||
|
||||
**需求变更** → 只改 V2 手册,编码时不改业务规则。
|
||||
|
||||
## 编码前 Checklist
|
||||
|
||||
```
|
||||
- [ ] 任务所属 OWNER 与目标路径已确认
|
||||
- [ ] 已读手册 PRD 对应 § 与 pages/ 原型
|
||||
- [ ] API 路径、Guard、表名已从 V2 §六/§五 核对
|
||||
- [ ] 跨模块需求 → 只 inject 对方 exported Service
|
||||
- [ ] 新枚举/DTO → packages/shared-types
|
||||
@@ -48,9 +55,9 @@ Workflow:DTO → Service(本模块表)→ Controller + Guard → 同步 sh
|
||||
跨模块示例(允许):
|
||||
|
||||
```typescript
|
||||
// trade.service.ts — OWNER A
|
||||
// trade.service.ts — jacy-dukang
|
||||
constructor(
|
||||
private readonly benefitService: BenefitService, // from BenefitModule
|
||||
private readonly benefitService: BenefitService,
|
||||
private readonly catalogService: CatalogService,
|
||||
) {}
|
||||
await this.benefitService.grantOnOrderPaid(orderId);
|
||||
@@ -68,7 +75,14 @@ await this.prisma.order.update({ ... });
|
||||
1. 路由对照 `pages/ROUTE_MAP.md`
|
||||
2. `src/lib/api.ts` 统一 fetch + `X-Client-App`
|
||||
3. 类型从 `@dukang/shared-types` import
|
||||
4. C 端订单 Tab:`all | pending_pay | pending_ship | pending_receive | completed`
|
||||
4. preV1 App:`h5-user` / `h5-shop` / `h5-partner` / `admin-web`
|
||||
5. C 端订单 Tab:`all | pending_pay | pending_ship | pending_receive | completed`
|
||||
|
||||
## 数据库变更
|
||||
|
||||
1. 改 `server/dukang-api/prisma/schema.prisma` 对齐手册 §五
|
||||
2. 迁移需 OWNER Review(store/redeem 表 → @刘京尧)
|
||||
3. 初始化 SQL:`server/dukang-api/prisma/init_v3.sql`
|
||||
|
||||
## 核心业务(packages/domain)
|
||||
|
||||
@@ -76,6 +90,10 @@ await this.prisma.order.update({ ... });
|
||||
const benefitAmount = product.benefitAmount ?? product.price;
|
||||
// 核销:0 < amount ≤ min(balance, 500)
|
||||
// 同城 min 2 瓶 / 跨城 min 6 瓶
|
||||
|
||||
// 支付成功 → log_third_party + user_order.pay_status=PAID
|
||||
// → user_benefit_coupon + common_event(BENEFIT_LEDGER, GRANT)
|
||||
// 埋点 → log_user_analytics;业务审计 → common_event
|
||||
```
|
||||
|
||||
## 核销并发(M3+)
|
||||
@@ -92,10 +110,13 @@ const benefitAmount = product.benefitAmount ?? product.price;
|
||||
|
||||
- 任务卡验收项全部满足
|
||||
- 无跨模块 Prisma 直写
|
||||
- `pnpm lint` 无新增错误;domain 相关单测通过
|
||||
- `packages/domain` 相关单测通过
|
||||
- `pnpm lint` 无新增错误
|
||||
- 改了 API/表 → 同步手册与 shared-types
|
||||
|
||||
## 延伸阅读
|
||||
|
||||
- 模块/表/依赖矩阵:[reference-backend.md](reference-backend.md)
|
||||
- 模块/表/路由:[reference-backend.md](reference-backend.md)
|
||||
- 页面↔API 速查:[reference-frontend.md](reference-frontend.md)
|
||||
- preV1 Mock 细节:`dukang-prev1` skill
|
||||
- preV1 Mock:`dukang-prev1` skill
|
||||
- 详细清单:根目录 `skills.md`
|
||||
|
||||
Reference in New Issue
Block a user