聚合赚钱App管理后台 - 后端
Node.js + Express + Sequelize,支持 SQLite / MySQL 双数据库。
环境要求
- Node.js >= 16
- (可选)Python 3.x + VS Build Tools(如需本地编译 sqlite3)
- MySQL 5.7+(如不使用 SQLite)
快速启动
方式一:使用 SQLite(推荐,零配置)
# 1. 进入目录
cd server
# 2. 安装依赖(sqlite3 需要编译环境,如失败见下方)
npm install
# 3. 如 sqlite3 安装失败,使用预编译版:
npm install sqlite3 --target_platform=win32 --target_arch=x64
# 4. 启动(自动创建 SQLite 数据库文件)
npm start
方式二:使用 MySQL
# 1. 创建 MySQL 数据库
mysql -u root -p -e "CREATE DATABASE juhe_admin CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
# 2. 修改 .env
DB_TYPE=mysql
DB_HOST=localhost
DB_PORT=3306
DB_NAME=juhe_admin
DB_USER=root
DB_PASSOWRD=你的密码
# 3. 安装依赖(可跳过 sqlite3)
npm install --omit=optional
# 4. 启动
npm start
默认管理员账号
启动后自动创建:
| 字段 | 值 |
|---|---|
| 用户名 | admin |
| 密码 | admin123 |
⚠️ 首次登录后请立即修改密码!
API 接口列表
管理后台
| 方法 | 路径 | 说明 | 需要JWT |
|---|---|---|---|
| POST | /api/admin/login |
登录 | ❌ |
| GET | /api/admin/info |
管理员信息 | ❌ |
| GET | /api/platforms |
平台列表 | ✅ |
| POST | /api/platforms |
添加平台 | ✅ |
| PUT | /api/platforms/:id |
更新平台 | ✅ |
| PATCH | /api/platforms/:id/status |
启用/禁用 | ✅ |
| DELETE | /api/platforms/:id |
删除平台 | ✅ |
| GET | /api/users |
用户列表 | ✅ |
| GET | /api/users/:id |
用户详情 | ✅ |
| PATCH | /api/users/:id/status |
封禁/解封 | ✅ |
| GET | /api/transactions |
收益流水 | ✅ |
| GET | /api/withdrawals |
提现列表 | ✅ |
| PATCH | /api/withdrawals/:id |
审核提现 | ✅ |
| GET | /api/callbacks |
回调日志 | ✅ |
| GET | /api/app/configs |
App配置列表 | ✅ |
| PUT | /api/app/configs |
更新配置 | ✅ |
| POST | /api/app/banners |
添加Banner | ✅ |
| PUT | /api/app/banners/:id |
更新Banner | ✅ |
| DELETE | /api/app/banners/:id |
删除Banner | ✅ |
| POST | /api/app/announcements |
添加公告 | ✅ |
| PUT | /api/app/announcements/:id |
更新公告 | ✅ |
| DELETE | /api/app/announcements/:id |
删除公告 | ✅ |
| POST | /api/app/versions |
发布版本 | ✅ |
| PUT | /api/app/versions/:id |
更新版本 | ✅ |
| DELETE | /api/app/versions/:id |
删除版本 | ✅ |
| GET | /api/dashboard/stats |
仪表盘数据 | ✅ |
回调接收(各平台推送)
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/callback/:platform_code |
统一回调入口 |
App 端接口
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/app/init |
App初始化(配置+版本) |
| GET | /api/app/config |
获取配置 |
| GET | /api/app/banners |
获取Banner |
| GET | /api/app/announcements |
获取公告 |
| GET | /api/app/version |
检测版本更新 |
| POST | /api/user/register |
用户注册 |
| GET | /api/user/info |
用户信息 |
| GET | /api/user/balance |
余额查询 |
| GET | /api/user/transactions |
收益流水 |
| POST | /api/user/withdraw |
申请提现 |
| GET | /api/user/withdrawals |
提现记录 |
项目结构
server/
├── src/
│ ├── app.js # 主入口
│ ├── config/
│ │ └── database.js # 数据库连接
│ ├── models/ # Sequelize 模型
│ │ ├── index.js # 模型索引+关联
│ │ ├── Admin.js
│ │ ├── Platform.js
│ │ ├── User.js
│ │ ├── Transaction.js
│ │ ├── Withdrawal.js
│ │ ├── Callback.js
│ │ ├── AppConfig.js
│ │ ├── AppVersion.js
│ │ ├── Banner.js
│ │ └── Announcement.js
│ ├── routes/ # 路由
│ ├── middlewares/ # 中间件
│ └── utils/ # 工具函数
├── data/ # SQLite 数据文件(自动创建)
├── .env # 环境变量
└── package.json
SQLite3 安装失败的解决方案
Windows 上 sqlite3 需要编译环境,如安装失败:
方案A:安装编译依赖
# 安装 windows-build-tools(管理员权限)
npm install -g windows-build-tools
# 然后重新安装
npm install sqlite3
方案B:使用预编译二进制
# 设置 npm 使用预编译二进制
npm install sqlite3 --build-from-source=false
方案C:改用 MySQL
修改 . env:
DB_TYPE=mysql
DB_HOST=localhost
# ... 填写你的 MySQL 配置
下一步
后端完成后,可以开始前端开发:
cd ../web
# 使用 Vue 3 + Element Plus + Vite
健康检查
curl http://localhost:3001/health
# 返回:{"status":"ok","time":"..."}