Files
mqsrv/README.md
2026-05-09 00:52:04 +08:00

168 lines
3.7 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.
# 码枪堂后端 API
基于 Express + Prisma + PostgreSQL 的后端服务。
## 快速开始
### 1. 安装依赖
```bash
pnpm install
# 或
npm install
```
### 2. 配置环境变量
```bash
cp .env.example .env
```
编辑 `.env` 文件:
```env
# 数据库连接
DATABASE_URL="postgresql://postgres:password@localhost:5432/maqt?schema=public"
# JWT 密钥(请修改为随机字符串)
JWT_SECRET="your-super-secret-jwt-key-change-this-in-production"
# 数据加密密钥32字节
ENCRYPTION_KEY="0123456789abcdef0123456789abcdef"
# 服务端口
PORT=3001
```
### 3. 初始化数据库
```bash
# 生成 Prisma Client
pnpm db:generate
# 同步数据库结构
pnpm db:push
# 生成种子数据VIP卡密等
pnpm db:seed
```
### 4. 启动服务
```bash
# 开发模式(热重载)
pnpm dev
# 生产模式
pnpm build
pnpm start
```
## API 接口
### 认证
| 接口 | 方法 | 说明 |
|------|------|------|
| `/api/register` | POST | 注册用户 |
| `/api/login` | POST | 用户登录 |
| `/api/session-status` | GET | 会话状态 |
| `/api/vip-status` | GET | VIP 状态 |
| `/api/activate-vip` | POST | VIP 卡密激活 |
### 用户管理
| 接口 | 方法 | 说明 |
|------|------|------|
| `/api/user/username` | PUT | 更新用户名 |
| `/api/user/email` | PUT | 更新邮箱 |
| `/api/user/avatar` | PUT | 更新头像 |
| `/api/user/stats/:userId` | GET | 用户统计 |
| `/api/user/schemes/:userId` | GET | 用户方案列表 |
### 方案分享
| 接口 | 方法 | 说明 |
|------|------|------|
| `/api/schemes/` | GET | 烽火地带方案列表 |
| `/api/schemes/:id` | GET | 方案详情 |
| `/api/schemes/` | POST | 创建方案 |
| `/api/schemes/:id` | DELETE | 删除方案 |
| `/api/schemes_aob/` | GET | 全面战场方案列表 |
| `/api/schemes_aob/:id` | GET | 方案详情 |
| `/api/schemes_aob/` | POST | 创建方案 |
### 滤镜分享
| 接口 | 方法 | 说明 |
|------|------|------|
| `/api/filter-shares/` | GET | 滤镜列表 |
| `/api/filter-shares/:id` | GET | 滤镜详情 |
| `/api/filter-shares/` | POST | 创建滤镜 |
| `/api/filter-shares/:id` | DELETE | 删除滤镜 |
### 收藏
| 接口 | 方法 | 说明 |
|------|------|------|
| `/api/favorites/` | GET | 收藏列表 |
| `/api/favorites/` | POST | 添加收藏 |
| `/api/favorites/:id` | DELETE | 取消收藏 |
| `/api/favorites/check` | GET | 检查是否收藏 |
## VIP 卡密管理
### 生成卡密
运行种子脚本会自动生成卡密:
```bash
pnpm db:seed
```
生成的卡密格式:
- 月卡:`VIP30-XXXX-XXXX-XXXX-XXXX`
- 季卡:`VIP90-XXXX-XXXX-XXXX-XXXX`
- 年卡:`VIP365-XXXX-XXXX-XXXX-XXXX`
### 查询卡密
```bash
npx prisma studio
```
打开 Prisma Studio 可视化管理数据库。
## 项目结构
```
maqt-backend/
├── prisma/
│ ├── schema.prisma # 数据库模型
│ └── seed.ts # 种子数据
├── src/
│ ├── index.ts # 主入口
│ ├── middleware/
│ │ └── auth.ts # 认证中间件
│ ├── routes/
│ │ ├── auth.ts # 认证路由
│ │ ├── user.ts # 用户路由
│ │ ├── schemes.ts # 烽火地带方案
│ │ ├── schemesAob.ts# 全面战场方案
│ │ ├── filters.ts # 滤镜分享
│ │ ├── favorites.ts # 收藏
│ │ └── vip.ts # VIP 激活
│ └── utils/
│ ├── jwt.ts # JWT 工具
│ └── encryption.ts# 加密工具
├── package.json
├── tsconfig.json
└── .env.example
```
## 注意事项
1. **生产环境**请务必修改 `.env` 中的密钥
2. **数据库**推荐使用 PostgreSQL
3. **部署**建议配合 PM2 或 Docker