2026-01-30 09:50:03 +08:00
2026-01-30 09:50:03 +08:00
2026-01-05 15:41:03 +08:00
2026-01-05 15:41:03 +08:00
2026-01-05 15:41:03 +08:00

M2Pool Lease 项目介绍

项目概述

M2Pool Lease 是一个基于 Spring Boot 的矿机租赁平台系统,为用户提供矿机租赁、订单管理、支付处理等核心功能。

技术栈

后端框架

  • Spring Boot 2.6.7 - 核心框架
  • Spring Cloud Alibaba - 微服务架构Nacos 服务注册与配置中心)
  • MyBatis Plus 3.5.3 - ORM 框架
  • MySQL 8.0.28 - 数据库
  • Redis - 缓存与会话管理

中间件

  • RabbitMQ - 消息队列,用于异步订单处理和支付回调
  • Nacos 2.0.4 - 服务注册发现和配置管理

工具库

  • Lombok - 简化代码
  • Hutool 5.8.24 - Java 工具类库
  • Fastjson 1.2.80 - JSON 处理
  • Knife4j 3.0.3 - API 文档Swagger 增强)
  • Druid 1.2.8 - 数据库连接池
  • PageHelper 1.4.1 - 分页插件

安全与认证

  • JWT (jjwt 0.9.1) - 令牌认证
  • Google Authenticator - 双因素认证
  • RSA 加密 - 数据加密

网络通信

  • Netty - TCP 服务器,用于与矿机客户端通信
  • Spring Boot Mail - 邮件服务Thymeleaf 模板)

其他

  • ZXing 3.3.0 - 二维码生成
  • JNA 5.12.1 - Java Native Access
  • Blake3 - 哈希算法

项目结构

m2pool_lease/
├── src/main/java/com/m2pool/lease/
│   ├── annotation/          # 自定义注解(加密、日志、数据源切换等)
│   ├── aspect/              # AOP 切面
│   ├── config/              # 配置类Swagger、线程池、拦截器等
│   ├── constant/            # 常量定义
│   ├── controller/          # 控制器层
│   ├── dto/                 # 数据传输对象
│   ├── entity/              # 实体类
│   ├── exception/           # 异常处理
│   ├── mapper/              # MyBatis Mapper 接口
│   ├── mq/                  # 消息队列相关
│   ├── netty/               # Netty TCP 服务器
│   ├── redis/               # Redis 配置和服务
│   ├── service/             # 业务逻辑层
│   ├── task/                # 定时任务
│   ├── utils/               # 工具类
│   └── vo/                  # 视图对象
├── src/main/resources/
│   ├── bootstrap.yml        # 启动配置
│   ├── bootstrap-dev.yml    # 开发环境配置
│   ├── bootstrap-test.yml   # 测试环境配置
│   ├── mapper/              # MyBatis XML 映射文件
│   └── templates/           # 邮件模板
└── pom.xml                  # Maven 项目配置

核心功能模块

1. 用户管理

  • 用户注册与登录
  • JWT 令牌认证
  • Google 双因素认证
  • 邮箱验证码
  • 密码重置

2. 产品与矿机管理

  • 产品信息管理
  • 矿机配置ASIC/GPU
  • 算力与价格配置
  • 矿机库存管理
  • 多币种支持

3. 订单系统

  • 购物车功能
  • 订单创建与管理
  • 订单状态跟踪
  • 订单费用计算
  • 多版本 API 支持V1/V2

4. 支付系统

  • 充值与提现
  • 支付记录管理
  • 支付回调处理
  • 多种支付方式支持
  • 自动支付处理

5. 矿场管理

  • 矿场信息配置
  • 矿场地址配置
  • 矿场钱包配置

6. 收益管理

  • 产品收益计算
  • 用户收益统计
  • 实时算力监控
  • 挖矿收益记录

7. Netty 通信服务

  • TCP 服务器与矿机客户端通信
  • 算力数据上报
  • 配置下发
  • 消息编解码

8. 定时任务

  • GPU 数据请求
  • 订单与支付处理
  • 自有产品管理
  • 实时算力数据插入

数据源配置

项目支持多数据源配置,通过 MyBatis Plus 动态数据源实现:

  • HashRateDB - 算力数据库
  • MiningDB - 挖矿数据库
  • Pool2DB - 矿池数据库

环境配置

项目支持多环境配置:

  • dev - 开发环境
  • test - 测试环境(默认)
  • prod - 生产环境

通过 Maven Profile 切换环境:

mvn clean package -P dev
mvn clean package -P test
mvn clean package -P prod

API 文档

项目集成 Knife4j启动后访问

http://localhost:port/doc.html

构建与运行

构建项目

mvn clean package

运行项目

java -jar target/lease-1.0.0.jar

注意事项

  • 项目需要配置 Nacos 服务器地址
  • 需要配置 MySQL 数据库连接
  • 需要配置 Redis 连接
  • 需要配置 RabbitMQ 连接
  • demo 目录为示例模块,不包含在主项目提交中

许可证

本项目为内部项目,版权归 M2Pool 所有。

Description
No description provided
Readme 2 MiB
Languages
Java 99.6%
HTML 0.4%