生成日期: 2026-06-08 分支: master (rebased on origin/master) 备注: 全部测试通过,当前后端单元测试共计 221 条。新增分佣全流程测试 6 条(推荐码绑定 ×2 + 三级链路 ×1 + B端全链路 ×1 + 跳过场景 ×2),覆盖从注册→付费→佣金分配的完整调用链。
| 套件 | 运行 | 通过 | 失败 | 错误 | 跳过 |
|---|---|---|---|---|---|
| 后端单元测试 | 215 | 215 | 0 | 0 | 5 |
| Admin API 测试 | 6 | 6 | 0 | 0 | 0 |
| Playwright E2E (admin) | 3 | 3 | 0 | 0 | 0 |
| 合计 | 221 | 221 | 0 | 0 | 5 |
| Controller | 测试数 | 覆盖情况 |
|---|---|---|
| AuthController | 6 | 登录流、Token 鉴权、拦截器 |
| ChartController | 6 | 创建、详情、删除、列表、解读、重新生成 |
| ChatController | 2 | 发送消息、聊天历史 |
| PayController | 2 | 创建订单、回调通知 |
| ProfileController | 10 | 信息、VIP 状态、配额(vip/non-vip)、佣金统计、图表数量、资料完善/更新、分享追踪 |
| CommissionController | 3 | 列表、汇总、统计(含 team 空/非空) |
| WithdrawController | 3 | 申请、列表、余额 |
| AnnotationController | 6 | 添加、列表、删除、标签增删查 |
| ExportController | 4 | 缺失recordId、非VIP、非所有者、成功导出PDF |
| PricingController | 2 | 当前定价、升级定价 |
| 44 |
| 端点 | 测试数 | 覆盖情况 |
|---|---|---|
| 管理后台 API | 27 | 配置管理、用户管理、订单管理等 |
| +6 | 权限拦截、跨域、健康检查、文件不存在等 | |
| 合计 | 33 |
| Service | 测试数 | 跳过 | 覆盖重点 |
|---|---|---|---|
| CalculatorServiceTest | 16 | 2 | 能量盘计算 24 位置 |
| ChartServiceTest | 18 | 0 | 咨询 CRUD、鉴权 |
| ChatServiceTest | 7 | 0 | AI 对话、配额检查 |
| CommissionServiceTest | 15 | 3 | 佣金列表、汇总、统计仪表盘(日期/团队/转化) |
| ConfigServiceTest | 9 | 0 | 配置 CRUD |
| DifyServiceTest | 5 | 0 | Dify API 调用 |
| OrderServiceTest | 27 | 0 | 订单创建、分佣逻辑全覆盖(B端/C端/超级会员/幂等/跳过/三级链路/升级补差) |
| UserServiceTest | 22 | 0 | 登录注册、VIP状态、配额、推广码绑定(含自邀跳过)、referralCode 自动生成 |
| WithdrawServiceTest | 7 | 0 | 提现申请、列表、余额校验 |
| 合计 | 126 | 5 |
| 场景 | 级别 | 测试方法 | 验证点 |
|---|---|---|---|
| B端固定佣金(能量师 practitioner) | L1=¥500, L2=¥100 | testPaySuccess_bEndCommission_fixed |
固定金额 |
| B端二级链路 | L1 + L2 同时产生 | testPaySuccess_bEndCommission_level2 |
两级佣金分配 |
| C端比例佣金(annual, 40%+5%) | L1=40%, L2=5% | testPaySuccess_cEndCommission_percentages |
百分比金额 |
| C端二级链路 | L1 + L2 | testPaySuccess_cEndCommission_level2 |
逐级传递 |
| 幂等 | 相同(orderId,level,toUserId) | testPaySuccess_idempotency |
不重复创建 |
| 缺vipType | 无产品类型 | testPaySuccess_bEnd_noVipType_skipsCommission |
跳过 |
| C端半额 | annual 续费半价 | testPaySuccess_bEnd_cendHalfAmount |
金额减半 |
| 未知vipType | 非标 productType | testPaySuccess_bEnd_unknownVipType_skips |
跳过 |
| 无推广码引荐 | C端 inviter.referralCode==null | testPaySuccess_cEnd_noReferralCode_skips |
跳过 |
| 上级无码跳L2 | C端上级无 referralCode | testPaySuccess_cEnd_upperNoReferralCode_skipsL2 |
仅L1 |
| 超级会员 L1 | super_member 30% | testPaySuccess_superMemberCommission_l1 |
百分比 |
| 超级会员 L2 | 5% + 引荐人未付费 | testPaySuccess_superMemberCommission_l2 |
两步链 |
| B端幂等 | 同订单重复调用 | testPaySuccess_bEnd_idempotentCommission |
不重复 |
| B端升级补差 | practitioner 升级补差价 | testPaySuccess_bEndUpgrade_deduction |
44760 |
| B端补差归零 | 已付超默认 L1 | testPaySuccess_bEndUpgrade_zeroDeduction |
归零 |
| 场景 | 流程 | 测试方法 | 验证点 |
|---|---|---|---|
| C端三级链路 | A(有码)→B→C, B付annual | testCommissionFlow_cEnd_threeTier |
A获L1=5240, C获L2=655 |
| B端全链路 | B(能量师)→A, A付practitioner | testCommissionFlow_bEnd_fullPipeline |
B获L1=50000, C获L2=10000 |
| 引荐人未付费跳过 | 上级无referralCode | testCommissionFlow_inviterNotPaid_skipsCommission |
不产生佣金 |
| 自然流量无佣金 | buyer无invitedBy | testCommissionFlow_naturalFlow_noCommission |
不产生佣金 |
| B端升级分阶段 | 先付annual→升级practitioner | testCommissionFlow_bEnd_upgradeDeduction_chain |
5240+44760=50000=默认L1, 不超额 |
| 推广码注册 | 用户携码注册 | testLoginOrRegister_withReferralCode |
invitedBy绑定+directCount递增 |
| 自邀跳过 | 用户填自己推广码 | testLoginOrRegister_selfReferral_doesNotBind |
不绑定+不计directCount |
| 场景 | 测试方法 | 验证点 |
|---|---|---|
| 完整仪表盘 | testGetStats_fullDashboard |
团队人数、直接/间接、佣金汇总、VIP转化统计 |
| 无团队 | testGetStats_noTeam |
各项归零 |
| 仅为会员无团队 | testGetStats_vipOnly |
团队为空 |
| 日期过滤 | testGetStats_dateFiltering |
近7天/30天/本年度 |
| VIP转化统计 | testGetStats_vipConversion |
转化率、新会员数 |
| 今日统计 | testGetStats_todayStats |
今日新增佣金、团队人数 |
| 测试 | 状态 |
|---|---|
| 管理后台页面加载 | ✅ |
| 核心操作流程 | ✅ |
| 数据展示验证 | ✅ |
| 页面 | 修复项 | 说明 |
|---|---|---|
client/pages/commission/index.vue |
.section 背景 #fff → --color-bg-card |
卡片不跟主题切换 |
.section-sub, .comm-amount, .comm-remark, .tool-arrow |
硬编码字体颜色 → CSS 变量 | |
状态徽章 .status-settled/pending/available |
背景和文字颜色 → 语义变量 | |
client/pages/withdraw/index.vue |
.input-section, .rules-card 背景 #fff → --color-bg-card |
卡片不跟主题切换 |
.hint-link #3B82F6 → --color-info |
链接颜色 | |
.error-text #EF4444 → --color-danger |
错误提示颜色 | |
| 剩余已知问题 | client/pages/profile/ 仍有 #FEF3C7, #E5E7EB, #F9FAFB 等硬编码 |
需后续处理 |
client/pages/relations/*.vue 21处 color: #FFFFFF |
部分在深色背景上可保留,需逐一确认 |
| 区域 | 问题 | 优先级 |
|---|---|---|
ExportService |
无单元测试 | 低 |
client/ 前端小程序 |
无自动化 E2E 测试(需微信小程序环境) | 中 |
WxPayService |
无单元测试(189行,支付核心) | 高 🔴 |
RelationAnalysisService |
新模块,尚无单元测试 | 中 |
CalculatorServiceTest |
2个 @Disabled 外部位置测试 | 低 |
CommissionServiceTest |
3个 @Disabled 状态流转测试 | 低 |