# 1. 配置数据库(修改 .env 文件)
DATABASE_URL="mysql://root:password@localhost:3306/bilibili_gift_db"
# 2. 创建数据库并运行迁移
pnpm prisma migrate dev --name init
# 3. 生成 Prisma Client
pnpm prisma generate
# 4. 启动开发服务器
pnpm dev
# 5. 创建直播间
POST /api/rooms
{ "roomId": "12345", "name": "测试直播间", "streamerName": "主播名" }
# 6. 连接直播间 WebSocket(开始接收礼物)
POST /api/live
{ "roomId": "12345" }
# 7. 每日凌晨自动统计签到(手动触发)
POST /api/checkin
{ "date": "2024-01-01", "secret": "your-cron-secret" }| 方法 | 端点 | 描述 |
|---|---|---|
| GET | /api/checkin?userId=1 | 获取用户签到记录(支持 ?yearMonth=2024-01) |
| GET | /api/checkin/stats?userId=1 | 获取用户签到统计(总次数、连续天数等) |
| POST | /api/checkin | 触发签到统计(定时任务调用){ date, secret } |
| POST | /api/checkin/manual | 使用补签卡补签 { userId, date, inventoryId } |
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | /api/points?userId=1 | 获取用户积分信息 |
| GET | /api/points/records?userId=1 | 获取积分记录(支持 ?type=checkin) |
| POST | /api/points | 管理员调整积分 { userId, points, description, adminSecret } |
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | /api/shop/products | 获取商品列表(支持 ?isOnSale=true) |
| GET | /api/shop/products/:id | 获取商品详情 |
| POST | /api/shop/orders | 购买商品 { userId, productId, quantity } |
| GET | /api/shop/orders?userId=1 | 获取订单列表 |
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | /api/items | 获取道具列表(支持 ?type=VOUCHER) |
| GET | /api/inventory?userId=1 | 获取用户背包(未使用的道具) |
| GET | /api/vouchers?userId=1 | 获取用户代金券(支持 ?status=unused) |
| POST | /api/vouchers | 使用代金券兑换积分 { userId, voucherId } |
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | /api/live | 获取所有直播间连接状态 |
| POST | /api/live | 连接直播间 WebSocket { "roomId": "12345" } |
| DELETE | /api/live?roomId=12345 | 断开直播间连接 |
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | /api/rooms | 获取直播间列表 |
| POST | /api/rooms | 创建直播间 |
| GET | /api/rooms/:id | 获取直播间详情 |
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | /api/gifts | 获取礼物记录 |
| GET | /api/stats?roomId=1 | 获取直播间统计和排行榜 |
# ========== 1. 直播间礼物统计 ==========
# 创建直播间
POST /api/rooms
{ "roomId": "12345", "name": "测试直播间", "streamerName": "主播名" }
# 连接直播间 WebSocket
POST /api/live
{ "roomId": "12345" }
# 查看礼物记录
GET /api/gifts?roomId=1
# ========== 2. 签到系统 ==========
# 每日凌晨触发签到统计(定时任务)
POST /api/checkin
{ "date": "2024-01-01", "secret": "your-cron-secret" }
# 查看签到记录
GET /api/checkin?userId=1&yearMonth=2024-01
# 查看签到统计
GET /api/checkin/stats?userId=1
# 购买补签卡
POST /api/shop/orders
{ "userId": 1, "productId": 1, "quantity": 1 }
# 使用补签卡补签
POST /api/checkin/manual
{ "userId": 1, "date": "2024-01-15", "inventoryId": 1 }
# ========== 3. 积分与商城 ==========
# 查看积分
GET /api/points?userId=1
# 查看积分记录
GET /api/points/records?userId=1
# 查看商品列表
GET /api/shop/products
# 购买商品
POST /api/shop/orders
{ "userId": 1, "productId": 1, "quantity": 1 }
# 查看背包
GET /api/inventory?userId=1
# 查看代金券
GET /api/vouchers?userId=1&status=unused
# 使用代金券
POST /api/vouchers
{ "userId": 1, "voucherId": 1 }