rwadurian/backend/services/planting-service/docs
hailin 747e4ae8ef refactor(mpc-system): migrate to party-driven architecture with PartyID-based routing
- Remove Address field from PartyEndpoint (parties connect to router themselves)
- Update K8s Discovery to only manage PartyID and Role labels
- Add Party registration and SessionEvent protobuf definitions
- Implement PartyRegistry and SessionEventBroadcaster domain logic
- Add RegisterParty and SubscribeSessionEvents gRPC handlers
- Prepare infrastructure for party-driven MPC coordination

This is the first phase of migrating from coordinator-driven to party-driven
architecture following international MPC system design patterns.
2025-12-05 08:11:28 -08:00
..
API.md refactor(mpc-system): migrate to party-driven architecture with PartyID-based routing 2025-12-05 08:11:28 -08:00
ARCHITECTURE.md refactor(mpc-system): migrate to party-driven architecture with PartyID-based routing 2025-12-05 08:11:28 -08:00
DEPLOYMENT.md refactor(mpc-system): migrate to party-driven architecture with PartyID-based routing 2025-12-05 08:11:28 -08:00
DEVELOPMENT.md refactor(mpc-system): migrate to party-driven architecture with PartyID-based routing 2025-12-05 08:11:28 -08:00
README.md refactor(mpc-system): migrate to party-driven architecture with PartyID-based routing 2025-12-05 08:11:28 -08:00
TESTING.md refactor(mpc-system): migrate to party-driven architecture with PartyID-based routing 2025-12-05 08:11:28 -08:00

README.md

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 系统架构设计 架构师、技术负责人
API.md API 接口文档 前端开发、测试
DEVELOPMENT.md 开发指南 后端开发
TESTING.md 测试文档 开发、测试
DEPLOYMENT.md 部署文档 DevOps、运维

快速开始

1. 环境准备

# 要求
Node.js >= 20.x
PostgreSQL >= 16
Docker >= 24.x (可选)

2. 安装依赖

npm install

3. 配置环境

cp .env.example .env
# 编辑 .env 文件配置数据库等

4. 初始化数据库

npx prisma generate
npx prisma migrate dev

5. 启动服务

# 开发模式
npm run start:dev

# 生产模式
npm run build
npm run start:prod

6. 访问服务


常用命令

# 开发
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:

  • feat: 新功能
  • fix: Bug 修复
  • docs: 文档更新
  • test: 测试
  • refactor: 重构

相关链接


联系方式

如有问题或建议,请通过以下方式联系:

  • 项目 Issues
  • 技术负责人邮箱