chore: mqsrv backend
This commit is contained in:
167
README.md
Normal file
167
README.md
Normal file
@@ -0,0 +1,167 @@
|
||||
# 码枪堂后端 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
|
||||
Reference in New Issue
Block a user