聚合赚 (Juhe ZQ)
一款基于 uni-app x 开发的聚合任务变现应用,包含完整的移动端 App 和管理后台(前后端分离)。
用户通过完成第三方平台提供的任务(试玩、体验、签到等)获得金币奖励,金币可兑换为现金并提现到支付宝、微信或银行卡。管理后台提供完整的运营数据看板、用户管理、提现审核、平台接入、系统配置等功能,支持多平台广告/任务渠道的统一接入和回调管理。
适用场景
- 任务聚合类 App 开发参考
- 积分/金币兑换系统
- 用户邀请裂变系统
- 管理后台前后端分离架构学习
- uni-app x + Express 全栈项目实践
项目结构
├── juhe-admin/ # 管理后台(前后端分离)
│ ├── server/ # 后端 API 服务
│ └── web/ # 前端管理页面
└── juhe-app/ # 移动端 App (uni-app x)
技术栈
管理后台后端 (juhe-admin/server)
- 框架: Express 4.x
- ORM: Sequelize 6.x
- 数据库: MySQL / SQLite(可切换)
- 认证: JWT + bcryptjs
- 其他: multer(文件上传)、morgan(日志)、cors(跨域)
管理后台前端 (juhe-admin/web)
- 框架: Vue 3 + Composition API
- 构建: Vite 5.x
- UI 库: Element Plus
- 状态管理: Pinia
- 路由: Vue Router 4.x
- 图表: ECharts
移动端 App (juhe-app)
- 框架: uni-app x (uts)
- 目标平台: Android / iOS / 鸿蒙
功能模块
App 端
- 用户注册/登录
- 任务聚合主页
- 金币兑换现金
- 提现(支付宝/微信/银行卡)
- 签到奖励
- 邀请好友收益
- 收入明细
管理后台
- 仪表盘数据概览
- 用户管理
- 平台管理(第三方任务平台)
- 提现审核
- 交易流水
- 签到配置
- 金币兑换管理
- Banner / 首页入口管理
- App 配置与版本管理
- 邀请设置
- 系统配置
- 回调记录
快速开始
环境要求
- Node.js 18+
- MySQL 5.7+(或使用 SQLite 无需额外安装)
1. 后端服务
cd juhe-admin/server
# 安装依赖
npm install
# 配置环境变量(复制示例文件并修改)
cp .env.example .env
.env 配置说明:
# 数据库类型:mysql 或 sqlite
DB_TYPE=sqlite
# MySQL 配置(DB_TYPE=mysql 时需要)
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=juhe_admin
# SQLite 配置(DB_TYPE=sqlite 时使用)
# DB_NAME=./data/juhe_admin.db
# JWT 密钥(生产环境请修改为随机字符串)
JWT_SECRET=your_jwt_secret_key
# 服务端口
PORT=3001
启动服务:
npm start
# 或开发模式
npm run dev
服务启动后会自动:
- 创建/同步数据库表结构
- 创建默认管理员账号
2. 管理后台前端
cd juhe-admin/web
# 安装依赖
npm install
# 启动开发服务器
npm run dev
访问 http://localhost:5174,使用默认账号登录:
- 用户名:
admin - 密码:
admin123
3. 移动端 App
使用 HBuilderX 打开 juhe-app 目录,配置 API 地址后即可编译运行。
默认管理员
| 用户名 | 密码 | 角色 |
|---|---|---|
| admin | admin123 | super(超级管理员) |
⚠️ 生产环境请务必修改默认密码。
数据库切换
项目支持 MySQL 和 SQLite 双数据库模式,通过 .env 中的 DB_TYPE 切换:
DB_TYPE=sqlite— 使用 SQLite,适合开发和小规模部署DB_TYPE=mysql— 使用 MySQL,适合生产环境
License
MIT