This commit is contained in:
2025-12-02 19:57:10 +08:00
parent 3440744179
commit 08ff223ff8
188 changed files with 12337 additions and 7212 deletions

View File

@@ -0,0 +1,448 @@
# 代理系统测试用例清单
## 一、邀请下级代理测试
### 1.1 钻石代理邀请下级
- [ ] **钻石邀请普通代理**
- 预期:建立上下级关系,普通代理的 team_leader_id 指向钻石代理
- 验证:关系类型为直接关系,团队首领正确
- [ ] **钻石邀请黄金代理**
- 预期:建立上下级关系,黄金代理的 team_leader_id 指向钻石代理
- 验证:关系类型为直接关系,团队首领正确
- [ ] **钻石邀请钻石代理(不允许)**
- 预期:拒绝,提示"代理等级不能高于上级代理"
- 验证:邀请失败,无关系建立
### 1.2 黄金代理邀请下级
- [ ] **黄金邀请普通代理**
- 预期:建立上下级关系,普通代理的 team_leader_id 指向上级钻石代理
- 验证:关系类型为直接关系,团队首领正确(向上查找钻石)
- [ ] **黄金邀请黄金代理(不允许)**
- 预期:拒绝,提示"代理等级不能高于上级代理"
- 验证:邀请失败,无关系建立
- [ ] **黄金邀请钻石代理(不允许)**
- 预期:拒绝,提示"代理等级不能高于上级代理"
- 验证:邀请失败,无关系建立
### 1.3 普通代理邀请下级
- [ ] **普通邀请普通代理**
- 预期:建立上下级关系,普通代理的 team_leader_id 向上查找钻石/黄金
- 验证:关系类型为直接关系,团队首领正确
- [ ] **普通邀请黄金代理(不允许)**
- 预期:拒绝,提示"代理等级不能高于上级代理"
- 验证:邀请失败,无关系建立
- [ ] **普通邀请钻石代理(不允许)**
- 预期:拒绝,提示"代理等级不能高于上级代理"
- 验证:邀请失败,无关系建立
### 1.4 多层级邀请测试
- [ ] **钻石 → 黄金 → 普通3层**
- 预期3层关系链所有代理的 team_leader_id 指向钻石
- 验证:关系链正确,团队首领一致
- [ ] **钻石 → 普通 → 普通 → 普通4层**
- 预期4层关系链所有代理的 team_leader_id 指向钻石
- 验证:关系链正确,团队首领一致
- [ ] **钻石 → 普通 → 普通 → 普通 → 普通5层**
- 预期5层关系链所有代理的 team_leader_id 指向钻石
- 验证:关系链正确,团队首领一致
---
## 二、推广报告收益测试(等级加成返佣)
### 2.1 钻石代理推广报告
- [ ] **钻石代理自己推广的报告**
- 等级加成0元
- 预期:无等级加成返佣,全部收益归自己
- 验证agent_rebate 表无记录,代理收益 = 设定价格 - 基础底价 - 提价成本
### 2.2 黄金代理推广报告
- [ ] **黄金代理(上级是钻石)推广报告**
- 等级加成3元
- 预期3元全部返佣给钻石上级
- 验证agent_rebate 表记录正确钻石上级钱包增加3元
- [ ] **黄金代理(无上级/上级不是钻石)推广报告**
- 等级加成3元
- 预期:返佣归平台(异常情况)
- 验证agent_rebate 表无记录
### 2.3 普通代理推广报告等级加成6元
#### 2.3.1 直接上级是钻石
- [ ] **普通代理(上级是钻石)推广报告**
- 等级加成6元
- 预期6元全部返佣给钻石上级
- 验证agent_rebate 表记录正确钻石上级钱包增加6元
#### 2.3.2 直接上级是黄金
- [ ] **普通代理(上级是黄金,黄金上级是钻石)推广报告**
- 等级加成6元
- 预期:
- 3元给黄金上级配置normal_to_gold_rebate
- 3元给钻石上级上上级
- 验证agent_rebate 表有2条记录金额分配正确
- [ ] **普通代理(上级是黄金,无钻石上级)推广报告**
- 等级加成6元
- 预期3元给黄金上级剩余3元归平台
- 验证agent_rebate 表只有1条记录3元给黄金剩余归平台
#### 2.3.3 直接上级是普通(多层普通代理)
- [ ] **普通 → 普通 → 钻石3层**
- 等级加成6元
- 预期:
- 2元给直接上级普通配置normal_to_normal_rebate
- 4元给钻石上级跳过中间普通直接给钻石
- 验证agent_rebate 表有2条记录金额分配正确
- [ ] **普通 → 普通 → 普通 → 钻石4层**
- 等级加成6元
- 预期:
- 2元给直接上级普通
- 4元给钻石上级跳过中间所有普通代理
- 验证agent_rebate 表有2条记录金额分配正确
- [ ] **普通 → 普通 → 黄金无钻石3层**
- 等级加成6元
- 预期:
- 2元给直接上级普通
- 3元给黄金上级配置normal_to_gold_rebate_max
- 1元归平台超出部分
- 验证agent_rebate 表有2条记录金额分配正确剩余归平台
- [ ] **普通 → 普通 → 普通(全部是普通,无钻石/黄金)**
- 等级加成6元
- 预期:
- 2元给直接上级普通
- 4元归平台无钻石/黄金上级)
- 验证agent_rebate 表只有1条记录2元剩余归平台
---
## 三、升级代理收益测试
### 3.1 自主付费升级
#### 3.1.1 普通 → 黄金199元
- [ ] **普通代理升级为黄金(上级是钻石)**
- 升级费用199元
- 返佣139元给原直接上级
- 预期:
- 原直接上级钻石钱包增加139元
- 升级后不脱离关系(钻石 > 黄金)
- 仍属于原团队
- 验证:升级成功,返佣记录在 agent_upgrade 表,钱包余额正确
- [ ] **普通代理升级为黄金(上级是黄金)**
- 升级费用199元
- 返佣139元给原直接上级黄金
- 预期:
- 原直接上级黄金钱包增加139元
- 升级后脱离关系(同级不能作为上下级)
- 保留团队关系(向上查找钻石)
- 验证:升级成功,关系脱离,团队首领正确
- [ ] **普通代理升级为黄金(上级是普通)**
- 升级费用199元
- 返佣139元给原直接上级普通
- 预期:
- 原直接上级普通钱包增加139元
- 升级后脱离关系(下级等级高于上级)
- 保留团队关系(向上查找钻石/黄金)
- 验证:升级成功,关系脱离,团队首领正确
#### 3.1.2 普通 → 钻石980元
- [ ] **普通代理升级为钻石(上级是钻石)**
- 升级费用980元
- 返佣680元给原直接上级钻石
- 预期:
- 原直接上级钻石钱包增加680元
- 升级后脱离关系(同级不能作为上下级)
- 独立成为新团队team_leader_id = 自己
- 所有下级跟随到新团队
- 验证:升级成功,独立成团队,下级团队首领更新
- [ ] **普通代理升级为钻石(上级是黄金)**
- 升级费用980元
- 返佣680元给原直接上级黄金
- 预期:
- 原直接上级黄金钱包增加680元
- 升级后脱离关系(下级等级高于上级)
- 独立成为新团队team_leader_id = 自己
- 所有下级跟随到新团队
- 验证:升级成功,独立成团队,下级团队首领更新
- [ ] **普通代理升级为钻石(上级是普通)**
- 升级费用980元
- 返佣680元给原直接上级普通
- 预期:
- 原直接上级普通钱包增加680元
- 升级后脱离关系(下级等级高于上级)
- 独立成为新团队team_leader_id = 自己
- 所有下级跟随到新团队
- 验证:升级成功,独立成团队,下级团队首领更新
#### 3.1.3 黄金 → 钻石980元
- [ ] **黄金代理升级为钻石(上级是钻石)**
- 升级费用980元
- 返佣680元给原直接上级钻石
- 预期:
- 原直接上级钻石钱包增加680元
- 升级后脱离关系(同级不能作为上下级)
- 独立成为新团队team_leader_id = 自己
- 所有下级跟随到新团队
- 验证:升级成功,独立成团队,下级团队首领更新
- [ ] **黄金代理升级为钻石(无上级)**
- 升级费用980元
- 返佣:无
- 预期:
- 独立成为新团队team_leader_id = 自己
- 所有下级跟随到新团队
- 验证:升级成功,独立成团队,下级团队首领更新
### 3.2 钻石升级下级(免费)
- [ ] **钻石升级下级(普通 → 黄金)**
- 升级费用:免费
- 返佣:无
- 预期:
- 被升级代理无需付费
- 升级后根据原上级等级决定是否脱离关系
- 保留团队关系
- 验证升级成功费用为0关系处理正确
---
## 四、升级后团队转移测试
### 4.1 普通 → 黄金升级(保留团队)
#### 4.1.1 上级是钻石(不脱离)
- [ ] **普通 → 黄金(上级是钻石),有下级**
- 预期:
- 不脱离关系
- 保留原团队team_leader_id 不变)
- 所有下级(直接+间接)的 team_leader_id 不变
- 验证:关系保留,所有下级团队首领不变
#### 4.1.2 上级是黄金(脱离关系)
- [ ] **普通 → 黄金(上级是黄金),有下级**
- 预期:
- 脱离直接上下级关系
- 保留团队关系(向上查找钻石)
- 所有下级(直接+间接)的 team_leader_id 不变
- 验证关系脱离RelationType=2所有下级团队首领不变
#### 4.1.3 上级是普通(脱离关系)
- [ ] **普通 → 黄金(上级是普通),有下级**
- 预期:
- 脱离直接上下级关系
- 保留团队关系(向上查找钻石/黄金)
- 所有下级(直接+间接)的 team_leader_id 不变
- 验证:关系脱离,所有下级团队首领不变
### 4.2 升级为钻石(独立成新团队)
#### 4.2.1 普通 → 钻石
- [ ] **普通 → 钻石(上级是钻石),有下级**
- 预期:
- 脱离关系
- 独立成新团队team_leader_id = 自己)
- 所有直接下级的 team_leader_id 更新为自己
- 所有间接下级的 team_leader_id 更新为自己(递归)
- 验证:
- 升级代理的 team_leader_id = 自己
- 所有下级(直接+间接)的 team_leader_id = 升级代理ID
- 下级数量统计正确
- [ ] **普通 → 钻石上级是黄金有下级2层**
- 预期:
- 脱离关系
- 独立成新团队
- 直接下级跟随
- 间接下级跟随
- 验证:所有下级团队首领更新为新钻石
- [ ] **普通 → 钻石上级是普通有下级3层以上**
- 预期:
- 脱离关系
- 独立成新团队
- 所有层级的下级都跟随
- 验证:所有下级团队首领更新为新钻石
#### 4.2.2 黄金 → 钻石
- [ ] **黄金 → 钻石(上级是钻石),有下级**
- 预期:
- 脱离关系
- 独立成新团队
- 所有下级跟随
- 验证:所有下级团队首领更新为新钻石
### 4.3 复杂团队转移场景
#### 4.3.1 多层级团队
- [ ] **钻石A → 黄金B → 普通C → 普通DB升级为钻石**
- 预期:
- B独立成新团队
- C和D的 team_leader_id 更新为B
- A的团队只剩自己
- B的团队B、C、D
- 验证:团队划分正确,关系链正确
#### 4.3.2 跨团队转移
- [ ] **钻石A → 普通B → 普通CC升级为钻石**
- 预期:
- C独立成新团队
- C无下级团队只有C自己
- A的团队A、B
- 验证:团队划分正确
#### 4.3.3 深度层级转移
- [ ] **钻石A → 普通B → 普通C → 普通D → 普通EC升级为钻石**
- 预期:
- C独立成新团队
- D和E的 team_leader_id 更新为C
- A的团队A、B
- C的团队C、D、E
- 验证:团队划分正确,所有层级更新正确
---
## 五、综合测试场景
### 5.1 完整业务流程
- [ ] **创建团队 → 邀请下级 → 推广报告 → 收益分配 → 升级 → 团队转移**
- 步骤:
1. 创建钻石代理A
2. A邀请黄金代理B
3. B邀请普通代理C
4. C邀请普通代理D
5. D推广报告验证收益分配
6. C升级为黄金验证关系变化
7. B升级为钻石验证团队转移
- 验证:每个步骤的数据正确
### 5.2 收益统计测试
- [ ] **查询代理收益统计(包含佣金和返佣)**
- 验证agent_wallet 表的 Balance 和 TotalEarnings 正确
- [ ] **查询下级列表和统计**
- 验证:下级数量、团队规模统计正确
### 5.3 边界情况测试
- [ ] **钻石代理无下级时升级(边界情况)**
- 验证独立成团队team_leader_id = 自己
- [ ] **普通代理无上级时升级**
- 验证:独立成团队,无返佣
- [ ] **多层普通代理链,无钻石/黄金上级**
- 验证:收益分配正确(部分归平台)
---
## 六、数据验证检查点
### 6.1 关系表验证
- [ ] agent_relation 表的关系类型正确1=直接关系2=已脱离)
- [ ] 脱离关系时DetachReason 和 DetachTime 正确记录
### 6.2 钱包验证
- [ ] agent_wallet 表的 Balance可用余额正确
- [ ] agent_wallet 表的 FrozenBalance冻结余额正确如有
- [ ] agent_wallet 表的 TotalEarnings累计收益正确
### 6.3 返佣记录验证
- [ ] agent_rebate 表的记录完整(推广报告返佣)
- [ ] agent_upgrade 表的返佣记录正确(升级返佣)
- [ ] 返佣金额计算正确
### 6.4 团队验证
- [ ] agent 表的 team_leader_id 正确指向钻石代理
- [ ] 升级后所有下级 team_leader_id 更新正确
### 6.5 订单和佣金验证
- [ ] agent_order 表记录完整
- [ ] agent_commission 表记录完整
- [ ] 佣金金额计算正确
---
## 七、测试数据准备建议
### 7.1 创建测试代理账号
建议准备以下测试账号(可用不同手机号):
1. **钻石代理**
- 钻石A团队首领无上级
- 钻石B团队首领无上级
2. **黄金代理**
- 黄金A上级钻石A
- 黄金B上级钻石A
- 黄金C上级钻石B
3. **普通代理**
- 普通A上级钻石A
- 普通B上级黄金A
- 普通C上级普通B
- 普通D上级普通C
- 普通E上级普通D
### 7.2 测试产品配置
- [ ] 确保有测试产品配置agent_product_config 表)
- [ ] 配置基础底价、提价阈值、提价手续费比例
### 7.3 测试返佣配置
- [ ] normal_to_normal_rebate默认2元
- [ ] normal_to_gold_rebate默认3元
- [ ] normal_to_gold_rebate_max默认3元
---
## 八、测试执行顺序建议
1. **第一阶段**:基础功能测试
- 邀请下级(各种组合)
- 验证关系建立
- 验证团队首领
2. **第二阶段**:收益分配测试
- 推广报告
- 收益计算
- 返佣分配
3. **第三阶段**:升级功能测试
- 自主付费升级
- 钻石升级下级
- 升级返佣
4. **第四阶段**:团队转移测试
- 普通→黄金升级(保留团队)
- 升级为钻石(独立成团队)
- 复杂场景测试
5. **第五阶段**:综合测试
- 完整业务流程
- 边界情况
- 数据一致性验证
---
## 注意事项
1. **开发环境**测试时确保使用开发环境ENV=development可跳过验证码校验
2. **数据清理**:每次测试后建议清理测试数据,避免相互影响
3. **事务验证**:注意验证事务的一致性,确保要么全部成功,要么全部回滚
4. **并发测试**:如有需要,可进行并发场景测试(多代理同时升级等)
5. **日志记录**:测试过程中查看日志,确保业务流程正确