fix(revenue): drop 待偿欠款 from the commission card

The field rendered in two places on /user/revenue/: the 我的佣金 card's
meta line and the 累计佣金 row, both gated on a non-zero balance. Remove
both, along with the now-unused $debt_amount local and the dead
.uc-commission-card__debt rule.

Source trace, since the label is only the surface: CommissionLedger::
overview() reads debt_minor from aksrt_commission_debt and returns it as
'debt'; record_debt() books the shortfall when a refund cannot be clawed
back in full, and repay_debt_from_pool() later clears it out of the
commission pool. That mechanism is untouched — arrears still accrue and
still get repaid, the UI just no longer surfaces them. The reference
theme's rebate card has no equivalent concept, so this is not a parity
target either.

Keep 'debt' in the template's overview() fallback array: it mirrors the
real return shape and the repayment path still depends on the value.

Add a contract test asserting the label, its class and the local are gone
from the display layer while overview() keeps returning the key; verified
it fails if the label is reintroduced.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Fable 5 committed 2026-10-21 20:08:34 +08:00
1 parent 9a22c7eb8b
commit 0cfd4c898b
3 files changed
+12 -10

No files matched your search

@@ -22,6 +22,17 @@ test('QR generator is bundled locally; no external QR CDN in front-end sources',
test('revenue detail card is a four-row info list with no standalone QR block', () => {
const template = read('inc', 'helpers', 'user-center-renderers', 'profile-revenue.php')
// 待偿欠款不在 UI 暴露:欠款机制(挂账/偿还)照常运行,只是不渲染。
// 参考主题的佣金卡片也没有这个概念,故不作为平价目标。
assert.doesNotMatch(template, /待偿欠款/)
assert.doesNotMatch(template, /uc-commission-card__debt/)
assert.doesNotMatch(template, /\$debt_amount/)
const css = read('assets', 'css', 'routes', 'user-center', 'revenue-earnings.css')
assert.doesNotMatch(css, /uc-commission-card__debt/)
// overview() 仍返回 debt(偿还逻辑依赖),fallback 形状必须与之一致。
assert.match(template, /'debt' => 0/)
const ledger = read('src', 'Payment', 'CommissionLedger.php')
assert.match(ledger, /'debt'\s*=>/)
// 二维码不再作为独立行:整行 markup 已删除。
assert.doesNotMatch(template, /data-affiliate-qr-row/)
assert.doesNotMatch(template, /data-affiliate-qr(?!-)/)