33099f33835948a05bc32691462a96fd1afcb7e9
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
Languages
Java
99.6%
HTML
0.4%