{"repo": "cesar699/tianlong-system", "files": {"backend/src/modules/seckill/README.md": {"9c4d25dd7cdff7cc68c2372e9cbb08879a7d3e4a": {"t": 1785595677.24694, "n": 1806, "h": "5aeee1d9202a50aa", "c": "\n# 秒杀模块接入指南\n\n本模块采用 **Adapter + Queue** 架构,各平台真实接口接入示例:\n\n## 目录结构\n```\nseckill/\n├─ adapters/\n│ ├ base.adapter.ts # Adapter 接口定义\n│ ├ jd.adapter.ts # 京东适配器\n│ ├ taobao.adapter.ts # 淘宝适配器\n│ ├ pinduoduo.adapter.ts # 拼多多适配器\n│ └ suning.adapter.ts # 苏宁适配器\n├─ seckill.service.ts # 核心队列逻辑\n├─ seckill.controller.ts # REST 接口\n└─ README.md # 本文件\n```\n\n## 接入真实接口\n\n1. **安装依赖** \n ```bash\n npm install axios bullmq ioredis\n ```\n\n2. **配置环境变量** \n 在 `.env` 中添加各平台 API 配置,例如:\n ```\n JD_API_KEY=your_jd_api_key\n TB_APP_KEY=your_taobao_app_key\n PDD_CLIENT_ID=xxx\n PDD_CLIENT_SECRET=xxx\n SUNING_CLIENT_ID=xxx\n SUNING_CLIENT_SECRET=xxx\n REDIS_HOST=localhost\n REDIS_PORT=6379\n ```\n\n3. **实现 Adapter** \n 在 `adapters/jd.adapter.ts` 中:\n ```ts\n import axios from 'axios';\n import { ISeckillAdapter } from './base.adapter';\n\n export class JdAdapter implements ISeckillAdapter {\n async login(account: any) {\n // 调用京东登录 API\n await axios.post(process.env.JD_LOGIN_URL, account);\n }\n async checkStock(sku: string) {\n const res = await axios.get(\\`\\${process.env.JD_STOCK_URL}?sku=\\${sku}\\`);\n return res.data.stock;\n }\n async placeOrder(sku: string) {\n const res = await axios.post(process.env.JD_ORDER_URL, { sku });\n return { success: res.data.success, orderId: res.data.orderId };\n }\n }\n ```\n\n4. **启动队列 Worker** \n 服务启动时已在 `SeckillService` 构造函数中创建 Worker,确保已配置 Redis。\n\n5. **前端调用** \n ```js\n await axios.post('/api/seckill/start', null, {\n params: { platform: 'jd', sku: '123456', userId: 'user1' }\n });\n ```\n\n6. **可视化面板** \n 在 `SeckillDashboard.vue` 中已实现多平台、多商品、实时库存和日志展示,后续可通过 UI 调整 `platform`、`sku`、`userId`。\n\n---\n\n完成以上步骤后,即可实现安全可靠、高效的多平台秒杀功能。后续可在可视化接口面板自由修改策略配置。\n"}}}}