--- description: 杜康好客 NestJS 后端编码规范 globs: server/**/*.ts alwaysApply: false --- # 后端规范 ## 模块目录 ``` server/dukang-api/src/ ├── modules/{iam,trade,benefit,catalog,store,redeem,settlement,ops,analytics,health}/ ├── common/{guards,decorators,interceptors,filters,prisma,redis}/ ├── integrations/{pay,sms,delivery}/ └── jobs/ ``` ## 新接口流程 1. 在 **OWNER 模块** 建 `dto/`、`*.service.ts`、`*.controller.ts` 2. Service 只写本模块 Prisma 表 3. 跨域 inject 其他 Module 的 exported Service 4. Controller 加对应 Guard(`JwtAuthGuard`、`PhoneVerifiedGuard` 等) 5. 响应 `{ code: 0, message: 'ok', data }` 6. 同步 `packages/shared-types` ## Controller 示例 ```typescript @Controller('trade/orders') @UseGuards(JwtAuthGuard) export class TradeController { constructor(private readonly tradeService: TradeService) {} } ``` ## 鉴权路由前缀 | 端 | 前缀 | |----|------| | C 端 | `/auth`, `/user`, `/catalog`, `/trade`, `/benefit`, `/redeem`, `/stores` | | 门店 | `/shop/auth`, `/shop/redeem`, `/shop/store` | | 合伙人 | `/partner/*` | | 总部 | `/admin/*` | ## 数据约定 - 埋点 → `log_user_analytics`;业务审计 → `common_event` - 支付 → `log_third_party` + `user_order.pay_*`(无 payments 表) - 核销码 → Redis 3min(`REDEEM_TOKEN_TTL_SECONDS`)