Files
makemd/docs/00_Business/tasks/backend/16_merchant.md
wurenzhi 48a78137c5 refactor(terminology): 统一术语标准并优化代码类型安全
- 将B2B统一为TOB术语
- 将状态值统一为大写格式
- 优化类型声明,避免使用any
- 将float类型替换为decimal以提高精度
- 新增术语标准化文档
- 优化路由结构和菜单分类
- 添加TypeORM实体类
- 增强加密模块安全性
- 重构前端路由结构
- 完善任务模板和验收标准
2026-03-20 09:43:50 +08:00

150 lines
6.3 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.
# 多商户功能收费后端任务
## 任务列表
| Task ID | 闭环关联 | 任务描述 | 输入 | 输出 | 触发条件 | 状态 | 优先级 | 依赖 | 预计耗时 | 负责人 | 完成时间 |
| -------- | --------- | --------- | ---------- | -------- | ---- | ----------- | --- | -------- | ---- | ------------- | -------- |
| BE-MV001 | 多商户入驻闭环 | 商户注册与认证接口 | 商户信息, 资质文件 | 商户ID, 状态 | 前端提交 | ✅ completed | P1 | - | 12h | AI-Backend-12 | 2026-03-20 |
| BE-MV002 | 多商户入驻闭环 | 商户店铺管理 | 商户ID, 店铺信息 | 店铺ID | 前端提交 | ✅ completed | P1 | BE-MV001 | 10h | AI-Backend-12 | 2026-03-20 |
| BE-MV003 | 功能模块化闭环 | 功能模块管理 | 模块ID, 配置 | 模块状态 | 系统配置 | ✅ completed | P1 | BE-MV001 | 8h | AI-Backend-12 | 2026-03-20 |
| BE-MV004 | 功能开通与支付闭环 | 功能开通接口 | 商户ID, 模块ID | 开通记录 | 前端提交 | ✅ completed | P1 | BE-MV003 | 10h | AI-Backend-12 | 2026-03-20 |
| BE-MV005 | 功能开通与支付闭环 | 功能费用计算 | 商户ID, 使用数据 | 费用明细 | 定时任务 | ✅ completed | P1 | BE-MV004 | 8h | AI-Backend-12 | 2026-03-20 |
| BE-MV006 | 多商户结算闭环 | 商户结算引擎 | 商户ID, 结算周期 | 结算单 | 定时任务 | ✅ completed | P1 | BE-MV005 | 12h | AI-Backend-12 | 2026-03-20 |
| BE-MV007 | 多商户订单闭环 | 多商户订单拆分 | 订单ID, 商户列表 | 子订单列表 | 订单创建 | ✅ completed | P1 | BE-MV002 | 10h | AI-Backend-12 | 2026-03-20 |
| BE-MV008 | 多商户库存闭环 | 多商户库存同步 | 商户ID, 库存数据 | 同步状态 | 库存变化 | ✅ completed | P1 | BE-MV002 | 8h | AI-Backend-12 | 2026-03-20 |
## 相关闭环
- 多商户入驻闭环
- 功能模块化闭环
- 功能开通与支付闭环
- 多商户结算闭环
- 多商户订单闭环
- 多商户库存闭环
## 依赖关系
```
BE-MV001 ─┬─► BE-MV002 ─┬─► BE-MV007
│ └─► BE-MV008
└─► BE-MV003 ─► BE-MV004 ─► BE-MV005 ─► BE-MV006
```
## 数据库表结构
### cf_merchant
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 商户ID |
| tenant_id | string | 租户ID |
| name | string | 商户名称 |
| contact_name | string | 联系人姓名 |
| contact_email | string | 联系人邮箱 |
| status | enum | PENDING/ACTIVE/INACTIVE/SUSPENDED |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
### cf_merchant_shop
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 店铺ID |
| merchant_id | string | 商户ID |
| name | string | 店铺名称 |
| domain | string | 店铺域名 |
| status | enum | ACTIVE/INACTIVE/MAINTENANCE |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
### cf_feature_module
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 模块ID |
| name | string | 模块名称 |
| description | text | 模块描述 |
| price | decimal(10,2) | 模块价格 |
| status | enum | ACTIVE/INACTIVE |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
### cf_merchant_feature
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 开通记录ID |
| merchant_id | string | 商户ID |
| module_id | string | 模块ID |
| start_date | datetime | 开始日期 |
| end_date | datetime | 结束日期 |
| status | enum | ACTIVE/EXPIRED/CANCELLED |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
### cf_merchant_settlement
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 结算单ID |
| merchant_id | string | 商户ID |
| period_start | datetime | 结算开始日期 |
| period_end | datetime | 结算结束日期 |
| amount | decimal(10,2) | 结算金额 |
| status | enum | PENDING/COMPLETED/FAILED |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
## API端点
### 商户管理API
- `GET /api/merchant/merchants` - 获取商户列表
- `POST /api/merchant/merchants` - 注册商户
- `GET /api/merchant/merchants/:id` - 获取商户详情
- `PUT /api/merchant/merchants/:id` - 更新商户信息
- `GET /api/merchant/shops` - 获取店铺列表
- `POST /api/merchant/shops` - 创建店铺
- `GET /api/merchant/shops/:id` - 获取店铺详情
### 功能管理API
- `GET /api/merchant/modules` - 获取功能模块列表
- `POST /api/merchant/modules` - 创建功能模块
- `GET /api/merchant/modules/:id` - 获取模块详情
- `POST /api/merchant/features/activate` - 开通功能
- `GET /api/merchant/features/:merchantId` - 获取商户已开通功能
- `POST /api/merchant/billing/calculate` - 计算功能费用
- `GET /api/merchant/settlements/:merchantId` - 获取商户结算单
## 验收标准
- [ ] 商户注册与认证接口能正确处理商户注册和认证
- [ ] 商户店铺管理能有效管理商户店铺
- [ ] 功能模块管理能正确管理功能模块
- [ ] 功能开通接口能正确开通功能
- [ ] 功能费用计算能准确计算费用
- [ ] 商户结算引擎能正确生成结算单
- [ ] 多商户订单拆分能正确拆分订单
- [ ] 多商户库存同步能及时同步库存
- [ ] 所有接口响应时间不超过2秒
- [ ] 数据一致性得到保证
## 测试要求
- [ ] 单元测试:覆盖商户管理和功能开通逻辑
- [ ] 集成测试:验证与订单和库存系统的交互
- [ ] 端到端测试:模拟完整的商户管理流程
- [ ] 边界测试:测试异常数据和边界情况
## 风险提示
- **风险点1**:商户资质审核不严格 - 应对措施:建立严格的审核流程和标准
- **风险点2**:功能费用计算错误 - 应对措施:实现多重校验和审计机制
- **风险点3**:结算流程异常 - 应对措施:建立结算异常处理机制和人工审核
## 性能要求
- 响应时间:平均响应时间 < 2秒
- 并发处理支持200个并发请求
- 数据处理能处理5000条商户记录/小时
## 安全要求
- 权限控制只有ADMIN和MERCHANT角色可访问商户数据
- 数据加密:敏感商户信息加密存储
- 审计日志:所有商户操作需记录详细日志
- 输入验证:严格验证所有商户相关输入