Files
dukang/server/dukang-api/AGENTS.md
T
jacy cb63d382ad feat(ops): 总部可按百分比限制接口放行并开关企微通知
线上需要按账户、用户和功能控制登录与加载成功率,同时单独停发订单、核销和账单通知。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-26 12:04:16 +08:00

76 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 杜康好客 · 后端 AGENTS.md
> 父级:[`../AGENTS.md`](../AGENTS.md) · API 契约:V2 手册 §六 · 表结构:§五
## 范围
本目录 = 唯一后端进程 `dukang-api`(NestJS 10 + Prisma 5)。
## 模块 → 表 OWNER(写权限)
| Module | 主要 Prisma Model | 负责人 |
|--------|-------------------|--------|
| **iam** | User, UserAddress, … | jacy-dukang |
| **catalog** | CommonCity, CommonProductItem, … | jacy-dukang |
| **store** | Store, Partner | 刘景尧 |
| **trade** | Order, OrderDelivery | jacy-dukang |
| **benefit** | BenefitCoupon | jacy-dukang |
| **redeem** | RedeemRecord, StoreRating | 刘景尧 |
| **settlement** | StorePayout, PartnerBill | jacy-dukang |
| **ops** | 只读聚合、ActivityPoster | jacy-dukang |
| **analytics** | LogUserAnalytics | jacy-dukang |
| **common** | CommonResource, CommonEvent, CommonTicket, ApiAccessPolicy | jacy-dukang |
| **integrations** | 无表 | jacy-dukang |
**log_***:`LogThirdParty` 由写入方 Module 负责(支付→trade,短信→iam/notify)。
## 允许依赖(摘要)
```
trade → catalog, store, benefit, iam, notify, common, domain
benefit → iam, common, domain(禁止 → trade/redeem)
redeem → benefit, store, settlement, iam, notify, common, domain
store → catalog, iam, common, domain(禁止 → trade/benefit)
settlement → trade, redeem, store, catalog, iam, notify, common, domain
callbacks → trade, benefit, settlement, common(薄层,无业务表)
jobs → trade, settlement, notify, common
```
完整矩阵见 V2 手册 §四 §2.5.2。
## 新接口 checklist
1. 在 **OWNER 模块** 建 `dto/`、`*.controller.ts`、`*.service.ts`
2. Service 只写本模块表;跨域 inject exported Service
3. Guard:`JwtAuthGuard` + `actorType` 校验(User/Store/Partner/HQ)
4. 响应 `{ code: 0, message: 'ok', data }`(`ResponseInterceptor`)
5. DTO/枚举同步 `packages/shared-types`
6. preV1 Mock:改 `integrations/*`,不在 Controller 散落 `if (mock)`
## Mock 集成(preV1)
```
integrations/
├── sms/sms.mock.provider.ts
├── pay/pay.mock.provider.ts
└── delivery/delivery.mock.provider.ts
```
开关见 `packages/shared-types/src/config.ts`(`MOCK_SMS`, `MOCK_PAY`, `MOCK_DELIVERY_AUTO`)。
## 常用命令
```bash
pnpm dev:api
pnpm db:validate
pnpm db:seed
cd server/dukang-api && npx prisma studio
```
## 禁止
- 在 `redeem` 里 `prisma.order.update` → 调 `TradeService`
- 在 `benefit` 里 inject `TradeService` / `RedeemService`
- 多个 Module 注册同一 callback 路由
- 复制起购/核销规则到 Controller → 用 `packages/domain`