rwadurian/backend/services/planting-service/docs/README.md

238 lines
5.4 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.

# Planting Service 文档中心
## 概述
Planting Service 是 RWA Durian Queen 平台的核心微服务,负责处理榴莲树认种业务的完整生命周期。
### 核心功能
- **认种订单管理** - 创建、支付、取消订单
- **省市选择机制** - 5秒确认机制防止误操作
- **资金分配** - 10种目标的精确分配2199 USDT/棵)
- **持仓管理** - 用户认种持仓统计与追踪
- **资金池注入** - 5天批次管理机制
### 技术栈
| 技术 | 版本 | 用途 |
|-----|------|------|
| NestJS | 10.x | Web 框架 |
| TypeScript | 5.x | 开发语言 |
| PostgreSQL | 16 | 数据库 |
| Prisma | 5.x | ORM |
| Jest | 29.x | 测试框架 |
| Docker | 24.x | 容器化 |
---
## 文档索引
| 文档 | 描述 | 适用人员 |
|-----|------|---------|
| [ARCHITECTURE.md](./ARCHITECTURE.md) | 系统架构设计 | 架构师、技术负责人 |
| [API.md](./API.md) | API 接口文档 | 前端开发、测试 |
| [DEVELOPMENT.md](./DEVELOPMENT.md) | 开发指南 | 后端开发 |
| [TESTING.md](./TESTING.md) | 测试文档 | 开发、测试 |
| [DEPLOYMENT.md](./DEPLOYMENT.md) | 部署文档 | DevOps、运维 |
---
## 快速开始
### 1. 环境准备
```bash
# 要求
Node.js >= 20.x
PostgreSQL >= 16
Docker >= 24.x (可选)
```
### 2. 安装依赖
```bash
npm install
```
### 3. 配置环境
```bash
cp .env.example .env
# 编辑 .env 文件配置数据库等
```
### 4. 初始化数据库
```bash
npx prisma generate
npx prisma migrate dev
```
### 5. 启动服务
```bash
# 开发模式
npm run start:dev
# 生产模式
npm run build
npm run start:prod
```
### 6. 访问服务
- 服务地址: http://localhost:3003
- API 文档: http://localhost:3003/api/docs
- 健康检查: http://localhost:3003/api/v1/health
---
## 常用命令
```bash
# 开发
make dev # 启动开发服务器
make build # 构建项目
# 测试
make test-unit # 单元测试
make test-integration # 集成测试
make test-e2e # E2E 测试
make test-cov # 覆盖率测试
make test-all # 所有测试
# 数据库
make prisma-generate # 生成 Prisma Client
make prisma-migrate # 运行迁移
make prisma-studio # 打开 Prisma Studio
# Docker
make docker-build # 构建镜像
make docker-up # 启动容器
make test-docker-all # Docker 测试
# 代码质量
make lint # 代码检查
make format # 代码格式化
```
---
## 项目结构
```
planting-service/
├── docs/ # 文档目录
│ ├── README.md # 文档索引
│ ├── ARCHITECTURE.md # 架构文档
│ ├── API.md # API 文档
│ ├── DEVELOPMENT.md # 开发指南
│ ├── TESTING.md # 测试文档
│ └── DEPLOYMENT.md # 部署文档
├── prisma/ # 数据库
│ ├── schema.prisma # 模型定义
│ └── migrations/ # 迁移文件
├── src/ # 源代码
│ ├── api/ # API 层
│ ├── application/ # 应用层
│ ├── domain/ # 领域层
│ ├── infrastructure/ # 基础设施层
│ └── main.ts # 入口
├── test/ # E2E 测试
├── docker-compose.yml # Docker 编排
├── Dockerfile # 生产镜像
└── Makefile # 构建脚本
```
---
## 业务规则概览
### 定价
- 单价: **2199 USDT/棵**
- 单次限制: 1-1000 棵
- 个人限制: 最多 1000 棵
### 资金分配
| 目标 | 比例 | 金额 (USDT) |
|-----|------|------------|
| 资金池 | 90% | 1979.1 |
| 运营 | 5% | 109.95 |
| 省代 | 0.6% | 13.194 |
| 市代 | 0.3% | 6.597 |
| 社区长 | 0.5% | 10.995 |
| 一级推荐 | 1.5% | 32.985 |
| 二级推荐 | 1.0% | 21.99 |
| 三级推荐 | 0.5% | 10.995 |
| 平台 | 0.3% | 6.597 |
| 储备 | 0.3% | 6.597 |
### 订单状态流转
```
CREATED → PROVINCE_CITY_SELECTED → PROVINCE_CITY_CONFIRMED
→ PAID → FUND_ALLOCATED → POOL_SCHEDULED
→ POOL_INJECTED → MINING_ENABLED
任意状态(PAID前) → CANCELLED
```
---
## 测试报告
### 测试概览
| 类型 | 数量 | 状态 |
|-----|------|-----|
| 单元测试 | 45+ | ✅ 通过 |
| 集成测试 | 12+ | ✅ 通过 |
| E2E 测试 | 17+ | ✅ 通过 |
### 覆盖率
| 模块 | 覆盖率 |
|-----|-------|
| 应用服务 | 89% |
| 领域服务 | 93% |
| 聚合根 | 69% |
---
## 贡献指南
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'feat: Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
### 提交规范
使用 [Conventional Commits](https://www.conventionalcommits.org/):
- `feat`: 新功能
- `fix`: Bug 修复
- `docs`: 文档更新
- `test`: 测试
- `refactor`: 重构
---
## 相关链接
- [NestJS 文档](https://docs.nestjs.com/)
- [Prisma 文档](https://www.prisma.io/docs/)
- [TypeScript 文档](https://www.typescriptlang.org/docs/)
---
## 联系方式
如有问题或建议,请通过以下方式联系:
- 项目 Issues
- 技术负责人邮箱