Files
cloud_hash_backend/README.md
2026-01-05 15:41:03 +08:00

175 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 切换环境:
```bash
mvn clean package -P dev
mvn clean package -P test
mvn clean package -P prod
```
## API 文档
项目集成 Knife4j启动后访问
```
http://localhost:port/doc.html
```
## 构建与运行
### 构建项目
```bash
mvn clean package
```
### 运行项目
```bash
java -jar target/lease-1.0.0.jar
```
## 注意事项
- 项目需要配置 Nacos 服务器地址
- 需要配置 MySQL 数据库连接
- 需要配置 Redis 连接
- 需要配置 RabbitMQ 连接
- demo 目录为示例模块,不包含在主项目提交中
## 许可证
本项目为内部项目,版权归 M2Pool 所有。