fbab5486创建于 3 天前历史提交
README.md

聚合赚钱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":"..."}