最近在搭建168下载了一套 uniapp 矿机交易系统源码,前端是 Vue 独立端 + uniapp 多端适配的架构。实测下来发现这套代码跟常见的矿机投资系统不太一样——它把交易所的 K 线行情、质押锁仓、全球分红这几个模块都塞进来了,后台配置项有 60 多个,功能密度比较高。
部署完发现它的 PC 端和移动端是两套独立源码,PC 用 Vue 写的单页应用,手机端是 uniapp 编译成 H5 + 小程序,两边接口统一走后端 API。语言包支持中英日韩四种,切换语言不用重新编译。这篇文章拆解一下这套源码的核心模块、技术栈选型、以及部署时容易踩的坑。
这套源码最特别的地方是把交易所的 K 线图搬进了矿机系统。后台可以配置平台币的交易对(比如 USDT/平台币),前端用 ECharts 渲染 K 线,数据通过 WebSocket 每秒推送一次。我部署后测试了一下,K 线确实会跳动,延迟在 200ms 左右。
技术实现上,后端用的是 PHP + Swoole 做 WebSocket 服务,数据库里有张 market_kline 表存储 1 分钟、5 分钟、1 小时的 K 线数据。前端通过 uni.connectSocket 连接,收到推送后更新图表。买卖盘口数据是从 market_orders 表实时查询的,每次下单会触发一次盘口刷新。
MatchEngine 类处理订单撮合,按价格优先、时间优先的规则匹配买卖单实测下来,如果并发量大(比如 100 人同时下单),WebSocket 推送会有延迟。建议部署时把 Swoole 的 worker_num 参数调到 4 或 8,根据服务器核心数来。
这套源码里有 3 种质押模式:定期质押、灵活质押、阶梯分红。后台可以配置每种模式的收益率、锁仓天数、提前赎回的罚金比例。我部署的时候发现后台有个”全球分红池”设置项,可以把平台手续费的一部分自动分配给质押用户。
| 质押类型 | 锁仓天数 | 日收益率 | 提前赎回罚金 |
|---|---|---|---|
| 灵活质押 | 0 天(随时赎回) | 0.1% – 0.3% | 无 |
| 定期质押 | 30/60/90 天 | 0.5% – 1.2% | 本金的 5% |
| 阶梯分红 | 按持仓量分档 | 持仓越多收益越高 | 按档位计算 |
全球分红的逻辑是这样:每天凌晨跑一个定时任务,把过去 24 小时的平台手续费按比例分给所有质押用户。分红比例根据用户的质押金额和锁仓时长计算,公式在 app/service/DividendService.php 里。代码里有个参数 dividend_ratio,默认是 30%,意思是手续费的 30% 进入分红池。
部署时要注意:定时任务依赖 Linux 的 crontab,需要手动添加到服务器的定时任务里。命令是 php think dividend:run,每天凌晨 0 点执行一次。如果忘了加这个任务,分红功能不会生效。
这套源码一共有 12 个功能模块,数据库设计了 68 张表。核心模块包括:矿机投资、质押锁仓、市场交易、全球分红、签到任务、推广返佣、实名认证、团队管理、资产钱包、公告管理、多语言切换、后台权限管理。
技术栈选型上,后端是 ThinkPHP 6.0 + MySQL 5.7,前端 PC 端用 Vue 2.x + Element UI,移动端是 uniapp + uView UI 组件库。API 接口遵循 RESTful 规范,返回格式统一是 JSON。代码里有做接口签名验证,每次请求要带上时间戳和签名参数,防止重放攻击。
数据库设计比较规范,每张表都有索引优化。比如 user_assets 表(用户资产)在 user_id 和 asset_type 字段上建了联合索引,查询用户余额的时候速度快很多。另外 market_orders 表(交易订单)在 status 和 create_time 字段上也有索引,方便按状态和时间范围查询订单。
这套微盘理财源码对服务器环境有明确要求,PHP 版本最低 7.4,推荐用 8.0。实测下来,如果用 PHP 7.3 会报语法错误,因为代码里用了箭头函数和类型声明这些新特性。
| 环境组件 | 版本要求 | 备注 |
|---|---|---|
| PHP | 7.4 / 8.0 / 8.1 | 必须开启 fileinfo、redis、swoole 扩展 |
| MySQL | 5.7 或 8.0 | 字符集设置为 utf8mb4 |
| Redis | 5.0+ | 用于缓存行情数据和用户 session |
| Nginx | 1.18+ | 需要配置 WebSocket 反向代理 |
部署步骤大概 7 步:上传源码到服务器 → 导入 SQL 文件(在 database 目录下) → 修改 .env 配置文件(填数据库账号密码、Redis 地址) → 设置目录权限(runtime 和 public/uploads 要 777) → 配置 Nginx 伪静态规则 → 启动 Swoole 服务(php think swoole start) → 添加定时任务到 crontab。
常见报错:如果访问前端页面显示”接口请求失败”,八成是 Nginx 没配置 WebSocket 代理。需要在 Nginx 配置里加这几行:
proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";另外,如果后台登录后白屏,检查一下 PHP 的 fileinfo 扩展有没有装。这个扩展是用来识别上传文件类型的,缺了会导致后台静态资源加载失败。
这套源码适合做矿机投资、链游挖矿、资金盘类项目。如果你要搭一个带交易功能的挖矿平台,或者做一个有质押分红的 DeFi 模拟盘,这套代码基本能覆盖 80% 的需求。它的优势是功能模块比较全,不用自己从零写质押、分红、交易这些逻辑。
但也有几个局限:K 线数据是模拟的,不是真实对接交易所 API,所以只能做内盘交易,不能对接币安、OKX 这些外部行情。如果要做真实的币币交易,需要二开对接交易所的 WebSocket 接口。另外,代码里的风控逻辑比较简单,只做了单 IP 限频和单用户限额,如果要防刷量、防对敲,需要自己加规则。
从搭建168下载源码后,建议先在测试环境跑一遍,测试一下交易撮合、分红计算、定时任务这几个核心功能是否正常。上线前要把后台的默认账号密码改掉(默认是 admin/123456),还有数据库配置文件里的密钥也要换成自己的,防止被扫出来。
问:K 线数据是怎么生成的,能对接真实交易所吗?
答:当前版本的 K 线数据是后台手动配置或定时任务生成的模拟数据,不是对接外部交易所 API。如果要接入真实行情,需要二开对接币安或火币的 WebSocket 接口,把实时价格写入 market_kline 表。代码里预留了 ExchangeService 接口类,可以在这基础上扩展。
问:全球分红的定时任务不执行怎么排查?
答:先用 crontab -l 命令检查定时任务有没有添加成功,然后手动执行一次 php think dividend:run 看有没有报错。如果提示”未找到用户质押记录”,说明数据库里 user_pledge 表没数据,需要先有用户质押才会触发分红。另外检查一下后台”全球分红”开关有没有开启,这个开关在”系统设置 → 分红配置”里。
问:uniapp 前端编译成小程序后接口请求失败?
答:小程序要求接口必须是 HTTPS,而且域名要在小程序后台配置白名单。先确认服务器已经配置了 SSL 证书,然后在微信公众平台 → 开发 → 开发管理 → 服务器域名里添加你的 API 域名。另外,uniapp 的 manifest.json 里有个 h5.devServer.proxy 配置,编译小程序前要把这个代理配置去掉,不然会走本地代理导致请求不到线上接口。
原标题:全新uinapp矿机交易系统/质押锁仓/市场交易/全球分红/多语言矿机投资-系统演示站
原文简介:
admin
微盘理财
全新uinapp矿机交易系统/质押锁仓/市场交易/全球分红/多语言矿机投资
此套系统前端是全新定制的版本,pc端是单独的vue源码,手机端是uinapp版都是多语言
源码在平常的矿机投资系统新增多个功能,二开平台币市场交易K线可实时跳动(如同交易所一般)
新增质押锁仓、全球分红、签到等诸多使用功能
分享到:
原文截图:







⚠️ 本文仅供学习研究和技术交流,相关源码仅用于了解系统架构与部署流程,请勿用于非法用途。任何商业运营行为均与作者无关。