后端管理模板(代码解读-MineLab 加密货币挖矿管理平台)

后端管理模板(代码解读-MineLab 加密货币挖矿管理平台)
代码解读-MineLab 加密货币挖矿管理平台

MineLab 加密货币挖矿管理平台 项目完整分析报告

一、项目概述

1.1 项目简介

MineLab 是一个基于 Laravel 框架开发的加密货币挖矿管理平台该平台允许用户购买挖矿计划、管理加密货币钱包、进行充值和提现操作,并支持推荐系统。

1.2 技术栈

  • 后端框架: Laravel 8.x (PHP 7.4)
  • 数据库: MySQL/MariaDB
  • 缓存: Redis
  • Web 服务器: Nginx (OpenResty)
  • 前端: Bootstrap 4, jQuery, 自定义模板系统

1.3 核心业务

  1. 加密货币挖矿计划销售和管理
  2. 用户钱包余额管理
  3. 多种支付网关集成(PayPal、Stripe、比特币等)
  4. 用户推荐返利系统
  5. 每日收益自动发放
  6. 提现审批流程

二、项目目录结构

minelab_12/├── assets/                      # 静态资源文件(前端模板、图片等)│   └── admin/                   # 后台管理模板│   └── basic/                   # 用户前台模板│   └── images/                  # 公共图片资源│├── core/                        # Laravel 应用核心目录│   ├── app/                     # 应用核心代码│   │   ├── Admin/              # 管理员控制器│   │   ├── Auth/               # 认证相关控制器│   │   ├── Gateway/            # 支付网关处理│   │   ├── Http/Controllers/   # 所有控制器│   │   ├── Lib/                # 工具库(Google Authenticator 等)│   │   ├── Mail/               # 邮件通知类│   │   ├── Providers/          # 服务提供者│   │   └── *.php               # Eloquent 模型│   ││   ├── bootstrap/               # 启动文件│   │   └── cache/              # 配置缓存目录│   ││   ├── config/                  # 配置文件目录│   ├── database/                # 数据库迁移和种子文件│   ├── resources/               # 资源文件│   │   ├── lang/               # 语言包│   │   └── views/              # Blade 视图模板│   ││   ├── routes/                  # 路由配置│   │   ├── web.php             # Web 路由│   │   └── admin.php           # 后台路由(集成在 web.php 中)│   ││   ├── storage/                 # 存储目录│   │   ├── app/                # 文件存储│   │   ├── framework/          # 框架缓存│   │   └── logs/               # 日志文件│   ││   ├── vendor/                  # Composer 依赖包│   ├── artisan                  # Laravel CLI 工具│   └── .env                     # 环境配置文件│├── install/                     # 安装脚本和数据库文件│   ├── index.php               # Web 安装向导│   └── database.sql            # 完整数据库结构│└── index.php                    # 应用入口文件

三、核心功能模块

3.1 用户模块 (UserController)

功能描述: 处理用户相关的所有操作

主要功能:

  • 用户仪表盘展示(持币情况、充值/提现统计)
  • 个人资料管理(头像上传、地址信息)
  • 密码修改
  • 两步验证(Google Authenticator)
  • 钱包地址管理
  • 充值/提现历史查询
  • 推荐系统管理

核心代码位置: core/app/Http/Controllers/UserController.php

// 用户仪表盘 - 显示所有持币矿工public function home(){    $miners = Miner::with(['userCoinBalances'=> function($q){        return $q->where('user_id', auth()->id());    }])->whereHas('userCoinBalances', function($q){        return $q->where('user_id', auth()->id());    })->get();}// 钱包地址更新public function walletUpdate(Request $request){    foreach ($request->address as $key => $value) {        UserCoinBalance::where('coin_code', $key)            ->where('user_id', auth()->id())            ->update(['wallet'=>$value]);    }}

3.2 挖矿计划模块 (OrderPlanController)

功能描述: 处理挖矿计划的购买和支付流程

主要功能:

  • 浏览可用挖矿计划
  • 使用余额购买计划
  • 选择第三方支付网关
  • 推荐返利计算和发放
  • 订单状态管理

核心代码位置: core/app/Http/Controllers/OrderPlanController.php

购买流程:

  1. 用户选择计划和支付方式
  2. 如选择余额支付:扣除余额 → 创建订单 → 发放推荐返利
  3. 如选择网关支付:创建待支付订单 → 跳转支付网关 → 回调确认
public function orderPlan(Request $request){    // 验证计划存在    $plan = Plan::where('id', $request->plan_id)->where('status', 1)->firstOrFail();    // 余额支付    if($request->payment_method == 1){        if($user->balance < $plan->price){            return back()->with('error', '余额不足');        }        // 扣除余额,创建订单,计算返利        $user->balance -= $order->amount;        $user->save();        // 推荐返利逻辑        if($general->referral_system && $referrer){            $bonus = $order->amount * $general->referral_bonus / 100;            $referrer->increment('balance', $bonus);        }    } else {        // 网关支付        $order->status = 0; // 待支付状态        $order->save();        return redirect()->route('user.payment');    }}

3.3 支付网关模块 (PaymentController)

功能描述: 集成多种支付方式,处理充值和订单支付

支持的支付网关 (位于 core/app/Http/Controllers/Gateway/):

  • PayPal (标准支付和 SDK)
  • Stripe (标准、JS、V3 版本)
  • Skrill
  • Payeer
  • Paytm
  • Paystack
  • Razorpay
  • Instamojo
  • Perfect Money
  • Flutterwave
  • Coinbase Commerce
  • CoinPayments (支持法币)
  • Coingate
  • Mollie
  • Cashmaal
  • Blockchain (比特币)
  • Blockio
  • Voguepay

核心代码位置: core/app/Http/Controllers/Gateway/PaymentController.php

3.4 充值管理模块 (DepositController - 后台)

功能描述: 管理员审核和管理用户充值请求

主要功能:

  • 查看待审核/已批准/已拒绝/成功的充值
  • 手动审核充值请求
  • 批准充值(自动增加用户余额或订单状态)
  • 拒绝充值(发送通知)
  • 按支付方式/日期/关键词筛选

核心代码位置: core/app/Admin/DepositController.php

// 批准充值public function approve(Request $request){    $deposit = Deposit::where('id',$request->id)        ->where('status',2)->firstOrFail();    $deposit->status = 1;    $deposit->save();    // 增加用户余额或激活订单    if(!$deposit->is_payment){        $user->balance += $deposit->amount;    } else {        $order->status = 1; // 激活订单    }    // 发送通知邮件    notify($user, 'DEPOSIT_APPROVE', [...]);}

3.5 提现模块 (WithdrawalController)

功能描述: 处理用户提现请求和管理

流程:

  1. 用户选择币种和提现金额
  2. 系统检查钱包余额
  3. 创建提现记录并冻结余额
  4. 管理员审核
  5. 批准后打款并扣减余额
  6. 拒绝后退回余额

状态说明:

  • 0: 待处理
  • 1: 已批准
  • 2: 已拒绝
  • 3: 已完成

3.6 管理员模块

功能描述: 后台管理系统

主要控制器:

  • AdminController - 管理员仪表盘、个人资料、密码管理
  • ManageUsersController - 用户管理(查看、封禁、余额调整)
  • PlanController - 挖矿计划管理
  • MinerController - 矿工/币种管理
  • FrontendController - 前端页面内容管理
  • GatewayController - 支付网关配置
  • GeneralSettingController - 系统设置
  • EmailTemplateController - 邮件模板管理
  • SupportTicketController - 工单支持系统

3.7 定时任务模块 (CronController)

功能描述: 每日收益自动发放

核心逻辑:

// 核心功能:每日收益发放public function returnAmount(){    // 获取所有活跃订单    $orders = Order::where('status', 1)        ->where('period_remain', '>', 0)        ->get();    foreach($orders as $order){        // 计算每日收益(随机区间)        $amount = rand($order->min_return_per_day, $order->max_return_per_day);        // 增加用户持币余额        $wallet = UserCoinBalance::where('user_id', $order->user_id)            ->where('coin_code', $order->coin_code)            ->first();        $wallet->increment('balance', $amount);        // 记录交易        Transaction::create([...]);        // 发送通知        notify($user, 'RETURN_AMOUNT_PER_DAY', [...]);    }}

四、数据库设计

4.1 核心数据表 (共 26 张表)

用户相关表

表名

描述

主要字段

users

用户表

id, username, email, password, balance, status, ev(邮件验证), sv(短信验证), ts(两步验证), ref_by(推荐人), address(JSON), image

user_logins

用户登录日志

user_id, ip, browser, os, login_at

user_coin_balances

用户持币余额

user_id, coin_code, balance, wallet(提币地址)

password_resets

用户密码重置

email, token, status

挖矿相关表

表名

描述

主要字段

miners

矿工/币种表

name, coin_code, symbol, network, image, min_withdraw_limit, max_withdraw_limit

plans

挖矿计划表

miner_id, title, price, min_return_per_day, max_return_per_day, period, period_unit(day/month/year), speed, speed_unit

orders

用户订单表

user_id, plan_details(JSON), amount, coin_code, period, period_remain, status(0 待支付/1 活跃)

财务相关表

表名

描述

主要字段

transactions

交易流水表

user_id, amount, charge, post_balance, trx_type(+/-), details, trx

deposits

充值记录表

user_id, method_code, amount, method_currency, charge, rate, final_amo, btc_amo, btc_wallet, status(1 成功/2 待审/3 拒绝), is_payment(是否订单支付)

withdrawals

提现记录表

user_id, user_coin_balance_id, amount, status, admin_feedback

referral_logs

推荐返利日志

user_id, referee_id, amount

系统相关表

表名

描述

主要字段

admins

管理员表

name, email, username, password, image, access(JSON 权限)

admin_password_resets

管理员密码重置

email, token, status

general_settings

系统设置

sitename, cur_text(货币符号), referral_system, referral_bonus, email_configuration, sms_configuration

gateways

支付网关配置

name, alias, code, description, status

gateway_currencies

网关币种配置

gateway_id, currency, rate, symbol, min_amount, max_amount

email_sms_templates

通知模板

act, name, subj, email_body, sms_body, shortcodes, email_status, sms_status

extensions

扩展插件配置

act, name, script, shortcode, status(如 Google Recaptcha, Analytics)

frontends

前端内容管理

data_keys, data_values(JSON)

pages

自定义页面

title, slug, description

languages

多语言配置

name, code, text, json(JSON 语言内容)

support_tickets

工单表

user_id, subject, status(open/closed/answered), priority

support_messages

工单消息

support_ticket_id, user_id, message

support_attachments

工单附件

support_message_id, image

features

特性展示

name

subscribers

邮件订阅

email

4.2 数据关系

User (用户)├── orders (订单)├── transactions (交易)├── deposits (充值)├── withdrawals (提现)├── user_coin_balances (持币余额)├── user_logins (登录日志)├── support_tickets (工单)├── referral_logs (被推荐记录)└── referrer (推荐人 - 自关联)Miner (矿工/币种)└── plans (计划)Plan (计划)└── orders (订单)Order (订单)├── user (用户)└── transaction (交易记录)Gateway (支付网关)└── gateway_currencies (支持的币种)Deposit (充值)├── user (用户)└── gateway (支付网关)Withdrawal (提现)├── user (用户)└── user_coin_balance (持币账户)

五、路由结构

5.1 公共路由

路由

方法

描述

/

GET

首页

/plans

GET

挖矿计划列表

/blogs

GET

博客列表

/contact

GET/POST

联系我们

/{slug}

GET

自定义页面

5.2 用户路由 (前缀:/user)

路由

方法

描述

/login

GET/POST

用户登录

/register

GET/POST

用户注册

/password/reset

GET/POST

密码重置

/dashboard

GET

用户仪表盘

/profile-setting

GET/POST

个人资料

后端管理模板(代码解读-MineLab 加密货币挖矿管理平台)

/change-password

GET/POST

修改密码

/twofactor

GET/POST

两步验证

/plans

GET

计划列表

/plans/purchased

GET

已购计划

/plan/order

POST

购买计划

/payment

GET

支付页面

/deposit

ANY

充值

/deposit/history

GET

充值历史

/withdraw

GET/POST

提现

/withdraw/history

GET

提现历史

/wallets

GET/POST

钱包管理

/ticket

GET/POST

支持工单

5.3 管理员路由 (前缀:/admin)

路由

方法

描述

/

GET/POST

管理员登录

/dashboard

GET

仪表盘

/profile

GET/POST

个人资料

/miners

GET

矿工列表

/plans

GET

计划管理

/deposit/pending

GET

待审充值

/deposit/approved

GET

已批充值

/deposit/rejected

GET

被拒充值

/deposit/history

GET

充值历史

/withdraw/pending

GET

待审提现

/withdraw/approved

GET

已批提现

/withdraw/rejected

GET

被拒提现

/users

GET

用户列表

/users/active

GET

活跃用户

/users/banned

GET

封禁用户

/users/email-verified

GET

邮箱验证用户

/users/email-unverified

GET

邮箱未验证用户

/users/with-balance

GET

有余额用户

/users/add-sub-balance

POST

增减余额

/report/transaction

GET

交易报告

/report/login/history

GET

登录历史

/tickets

GET

工单列表

/general-setting

GET/POST

系统设置

/email-template

GET/POST

邮件模板

/sms-template

GET/POST

短信模板

/frontend/templates

GET/POST

前端模板管理

/language

GET/POST

语言管理

/seo

GET/POST

SEO 设置

5.4 支付回调路由 (前缀:/ipn)

支持所有支付网关的 IPN 回调,如:

  • /ipn/paypal
  • /ipn/stripe
  • /ipn/coinpayments
  • /ipn/blockchain
  • 等等...

5.5 定时任务路由

路由

描述

/cron

每日收益发放(需配置 crontab 定时访问)


六、核心业务逻辑

6.1 用户注册流程

1. 填写注册表单(用户名、邮箱、密码、推荐码可选)2. 验证验证码(ReCaptcha/自定义)3. 检查用户名/邮箱是否已存在4. 创建用户记录5. 发送邮箱验证邮件6. 如有推荐人,记录推荐关系

6.2 购买计划流程

用户选择计划    │    ▼选择支付方式    │    ├─→ 余额支付 ─→ 检查余额充足 ─→ 扣除余额 ─→ 创建订单 (status=1) ─→ 计算返利 ─→ 完成    │    └─→ 网关支付 ─→ 创建订单 (status=0) ─→ 跳转支付网关 ─→                                           │                                           ▼                                    支付成功回调 ─→ 激活订单 (status=1) ─→ 计算返利

6.3 每日收益发放逻辑

// CronController 核心逻辑1. 查询所有活跃订单 (status=1, period_remain>0)2. 遍历每个订单:   - 计算随机收益:rand(min_return, max_return)   - 查找用户持币钱包   - 增加钱包余额   - 创建交易记录   - 发送通知   - 减少订单剩余天数 (period_remain--)3. 订单到期后 (period_remain=0) 自动关闭

6.4 推荐返利逻辑

// 当用户购买计划时if(推荐系统启用 AND 用户有推荐人){    // 计算返利金额    bonus = 订单金额 × 返利百分比 / 100    // 增加推荐人余额    推荐人.balance += bonus    // 记录返利日志    ReferralLog.create([        'user_id' => 推荐人 ID,        'referee_id' => 购买人 ID,        'amount' => bonus    ])    // 创建交易记录    Transaction.create([...])    // 发送通知    notify(推荐人,'REFERRAL_BONUS', [...])}

6.5 充值审核流程

用户发起充值    │    ├─→ 自动网关 ─→ 支付成功 ─→ 自动批准 ─→ 增加余额/激活订单    │    └─→ 手动网关 ─→ 待审核状态 (status=2) ─→                     │                     ▼              管理员审核                     │            ┌────────┴───────┐            ▼                ▼        批准 (status=1)    拒绝 (status=3)            │                │            ▼                ▼        增加余额/激活订单    发送拒绝通知

6.6 提现审批流程

用户发起提现    │    ▼检查钱包余额充足    │    ▼创建提现记录 (status=0)冻结/扣除余额    │    ▼管理员审核    │    ├─→ 批准 ─→ 打款 ─→ 记录打款信息 ─→ 状态更新    │    └─→ 拒绝 ─→ 退回余额 ─→ 发送拒绝通知

七、通知系统

7.1 通知类型

系统支持多种通知模板,通过 email_sms_templates 表管理:

模板标识

用途

主要变量

PASS_RESET_CODE

密码重置验证码

code, ip, browser, operating_system, time

EVER_CODE

邮箱验证码

code

SVER_CODE

短信验证码

code

2FA_ENABLE

两步验证启用

ip, browser, operating_system, time

2FA_DISABLE

两步验证禁用

ip, browser, operating_system, time

DEPOSIT_COMPLETE

自动充值成功

amount, currency, method_name, trx, post_balance

DEPOSIT_REQUEST

手动充值请求

amount, currency, method_name, trx

DEPOSIT_APPROVE

充值批准

amount, currency, post_balance

DEPOSIT_REJECT

充值拒绝

amount, rejection_message

WITHDRAW_REQUEST

提现请求

amount, coin_code, wallet, trx, post_balance

WITHDRAW_APPROVE

提现批准

amount, coin_code, admin_details

WITHDRAW_REJECT

提现拒绝

amount, coin_code, admin_details

BAL_ADD

管理员增加余额

amount, currency, post_balance

BAL_SUB

管理员扣除余额

amount, currency, post_balance

PAYMENT_VIA_USER_BALANCE

余额支付成功

plan_title, amount, post_balance

RETURN_AMOUNT_PER_DAY

每日收益

amount, coin_code, plan_title, post_balance

PAYMENT_COMPLETE

网关支付完成

plan_title, amount, method_name

7.2 通知发送函数

// 发送通知的辅助函数notify($user, $template_code, $variables);// 示例notify($user, 'DEPOSIT_APPROVE', [    'amount' => 100,    'currency' => 'USD',    'method_name' => 'PayPal',    'trx' => 'TRX123456',    'post_balance' => 500]);

八、安全机制

8.1 用户认证

  1. 密码加密: 使用 Laravel 的 Hash::make() (bcrypt)
  2. 会话管理: 基于 Laravel Session
  3. CSRF 保护: 所有表单包含 CSRF Token
  4. XSS 防护: Blade 模板自动转义输出

8.2 两步验证 (2FA)

  • 集成 Google Authenticator
  • 使用 Totp 算法生成 6 位动态验证码
  • 支持启用/禁用功能

8.3 邮箱/短信验证

  • 注册后发送验证码
  • 验证通过前限制部分功能
  • 验证码有效期管理

8.4 管理员权限控制

// 权限中间件Route::middleware(['admin', 'access'])->group(function () {    // 需要管理员权限和特定访问权限的路由});

8.5 文件上传安全

  • 限制文件类型(白名单)
  • 限制文件大小
  • 重命名上传文件
  • 存储到非公开目录

九、扩展系统设计

9.1 支付网关扩展

支付网关位于 core/app/Http/Controllers/Gateway/,每个网关包含:

GatewayName/├── ProcessController.php  # 支付处理和回调└── SDK/                   # 可选的 SDK 文件

网关配置流程:

  1. 在 gateways 表添加记录
  2. 在 gateway_currencies 表添加支持的币种
  3. 配置网关密钥(后台管理界面)
  4. 实现 ProcessController 处理支付和回调

9.2 前端模板系统

系统支持多模板切换,通过 frontends 表管理页面内容:

// 激活模板public function templatesActive(Request $request){    $frontend = Frontend::where('data_keys', 'template.active')->first();    $frontend->data_values = ['template' => $request->template];    $frontend->save();}

9.3 页面构建器

支持可视化页面构建:

  • 管理页面列表
  • 拖拽组件排序
  • 自定义组件内容

十、配置文件

10.1 关键配置项 (.env)

APP_NAME=LaravelAPP_ENV=local/productionAPP_DEBUG=true/falseAPP_URL=http://minelab_12# 数据库配置DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=minelab_12DB_USERNAME=minelab_12DB_PASSWORD=minelab_12# Redis 配置REDIS_HOST=127.0.0.1REDIS_PASSWORD=foobaredREDIS_PORT=6379# 邮件配置MAIL_MAILER=smtpMAIL_HOST=smtp.mailtrap.ioMAIL_PORT=2525MAIL_USERNAME=nullMAIL_PASSWORD=nullMAIL_ENCRYPTION=null

10.2 系统设置 (数据库)

通过 general_settings 表管理:

  • 网站名称
  • 货币符号
  • 推荐系统开关
  • 推荐返利比例
  • 邮件/SMS 配置
  • KYC 审核开关

十一、定时任务配置

11.1 Cron 配置

需要配置系统 crontab 每分钟执行:

# 每分钟执行收益发放* * * * * curl http://minelab_12.show99.xyz/cron

或使用 PHP-CLI:

* * * * * cd /path/to/core && php artisan schedule:run >> /dev/null 2>&1

11.2 定时任务内容

  • 检查所有活跃订单
  • 计算并发放每日收益
  • 更新订单剩余天数
  • 到期订单自动关闭
  • 发送每日收益通知

十二、常见问题

12.1 PHP 版本兼容性

  • 推荐版本: PHP 7.4
  • 不支持: PHP 8.0+ (Laravel 版本较旧,存在兼容性问题)

12.2 目录权限要求

以下目录需要写入权限 (777):

  • core/storage/ 及其子目录
  • core/bootstrap/cache/

12.3 必须启用的 PHP 扩展

  • BCMath
  • Ctype
  • Fileinfo
  • JSON
  • Mbstring
  • OpenSSL
  • PDO
  • pdo_mysql
  • Tokenizer
  • XML
  • cURL
  • GD
  • GMP

十三、总结

MineLab 是一个功能完整的加密货币挖矿管理平台,具有以下特点:

优点:

  1. 功能完整:支持计划购买、支付、充值、提现、推荐等完整业务流程
  2. 扩展性强:支持 20+ 种支付网关,易于添加新网关
  3. 模板化设计:支持多模板切换
  4. 通知系统完善:支持邮件和短信通知
  5. 多语言支持

安全注意事项:

  1. 及时修改默认管理员密码
  2. 删除 install/ 目录
  3. 定期备份数据库
  4. 启用两步验证
  5. 配置合适的提现审核流程

运维建议:

  1. 配置 crontab 定时任务确保收益正常发放
  2. 监控日志文件发现异常
  3. 定期清理缓存
  4. 关注充值/提现审核队列

💻 配套实训环境与动手练习

本文涉及的相关技术指令、开发环境与工具链已内置在边学边练在线实验室中,无需繁琐安装配置,随时在浏览器中实践体验:

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

最新文章

热门文章

本栏目文章