referral-models
→ 靶子 http://localhost:20098 容器 wt_h8_tp8
✅ PASS 管理员会话已建立(Admin 页可达) — HTTP=200
→ 邀请人余额基线 vgold=1994000
── window 模型(窗口 90 天)──
✅ PASS W1 窗内结清(绑定 10 天前):订单确已迁到结清态(21)
✅ PASS W1 窗内结清(绑定 10 天前):记了业绩行 — perf=1
✅ PASS W1 窗内结清(绑定 10 天前):发了奖励台账 1 行 500 分 — rows=1 cents=500
✅ PASS W1 窗内结清(绑定 10 天前):邀请人余额 +500 — delta=500
✅ PASS W1 窗内结清(绑定 10 天前):发了 1 封站内信 — delta=1
✅ PASS W2 窗外结清(绑定 100 天前):订单确已迁到结清态(21)
✅ PASS W2 窗外结清(绑定 100 天前):未记业绩行 — perf=0
✅ PASS W2 窗外结清(绑定 100 天前):未发奖励台账 — rows=0
✅ PASS W2 窗外结清(绑定 100 天前):邀请人余额一分未动 — delta=0
✅ PASS W2 窗外结清(绑定 100 天前):未发站内信 — delta=0
── first 模型(窗口 90 天 + 仅首单)──
✅ PASS F1 窗内首单:订单确已迁到结清态(21)
✅ PASS F1 窗内首单:记了业绩行 — perf=1
✅ PASS F1 窗内首单:发了奖励台账 1 行 500 分 — rows=1 cents=500
✅ PASS F1 窗内首单:邀请人余额 +500 — delta=500
✅ PASS F1 窗内首单:发了 1 封站内信 — delta=1
✅ PASS F2 同一好友的第二单:订单确已迁到结清态(21)
✅ PASS F2 同一好友的第二单:未记业绩行 — perf=0
✅ PASS F2 同一好友的第二单:未发奖励台账 — rows=0
✅ PASS F2 同一好友的第二单:邀请人余额一分未动 — delta=0
✅ PASS F2 同一好友的第二单:未发站内信 — delta=0
✅ PASS F3 窗外(绑定 100 天前,该好友无历史结清单):订单确已迁到结清态(21)
✅ PASS F3 窗外(绑定 100 天前,该好友无历史结清单):未记业绩行 — perf=0
✅ PASS F3 窗外(绑定 100 天前,该好友无历史结清单):未发奖励台账 — rows=0
✅ PASS F3 窗外(绑定 100 天前,该好友无历史结清单):邀请人余额一分未动 — delta=0
✅ PASS F3 窗外(绑定 100 天前,该好友无历史结清单):未发站内信 — delta=0
✅ PASS 总账:邀请人余额净增 1000 分(5 单里只有 2 单该发) — 1994000 → 1995000
✅ PASS 总账:业绩行恰好 2 条
✅ PASS 总账:奖励台账恰好 2 条
✅ PASS 总账:站内信恰好 2 封
✅ PASS 业绩金额口径 = 网关进账 5750 分
── 逐单落库事实 ──
┌─────────┬─────────────────────────────────────────────┬────────────┬─────────┬──────┬───────────┬────────────┬───────┬─────┐
│ (index) │ label │ ddnum │ settled │ perf │ bonusRows │ bonusCents │ delta │ msg │
├─────────┼─────────────────────────────────────────────┼────────────┼─────────┼──────┼───────────┼────────────┼───────┼─────┤
│ 0 │ 'W1 窗内结清(绑定 10 天前)' │ 'E2EREF1A' │ true │ 1 │ 1 │ 500 │ 500 │ 1 │
│ 1 │ 'W2 窗外结清(绑定 100 天前)' │ 'E2EREF2B' │ true │ 0 │ 0 │ 0 │ 0 │ 0 │
│ 2 │ 'F1 窗内首单' │ 'E2EREF3C' │ true │ 1 │ 1 │ 500 │ 500 │ 1 │
│ 3 │ 'F2 同一好友的第二单' │ 'E2EREF4C' │ true │ 0 │ 0 │ 0 │ 0 │ 0 │
│ 4 │ 'F3 窗外(绑定 100 天前,该好友无历史结清单)' │ 'E2EREF5D' │ true │ 0 │ 0 │ 0 │ 0 │ 0 │
└─────────┴─────────────────────────────────────────────┴────────────┴─────────┴──────┴───────────┴────────────┴───────┴─────┘
→ 夹具已清理
PASS=31 FAIL=0