Browse Source

fix(billing): 修复 Claude 计费明细未应用用户渠道折扣的问题

renderClaudeModelPrice 函数缺少 userChannelRatio 参数声明,导致运行时
ReferenceError;同时价格计算未乘以用户倍率,明细文本也未显示折扣信息。

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
master
fengsilin 3 days ago
parent
commit
f9eeb7e47e
1 changed files with 7 additions and 3 deletions
  1. +7
    -3
      web/src/helpers/render.jsx

+ 7
- 3
web/src/helpers/render.jsx View File

@@ -1893,6 +1893,7 @@ export function renderClaudeModelPrice(
cacheCreationRatio5m = 1.0, cacheCreationRatio5m = 1.0,
cacheCreationTokens1h = 0, cacheCreationTokens1h = 0,
cacheCreationRatio1h = 1.0, cacheCreationRatio1h = 1.0,
userChannelRatio,
) { ) {
const { ratio: effectiveGroupRatio, label: ratioLabel } = getEffectiveRatio( const { ratio: effectiveGroupRatio, label: ratioLabel } = getEffectiveRatio(
groupRatio, groupRatio,
@@ -1950,9 +1951,11 @@ export function renderClaudeModelPrice(
cacheCreationTokens5m * cacheCreationRatio5m + cacheCreationTokens5m * cacheCreationRatio5m +
cacheCreationTokens1h * cacheCreationRatio1h; cacheCreationTokens1h * cacheCreationRatio1h;


const userRatio = userChannelRatio ?? 1.0;
let price = let price =
(effectiveInputTokens / 1000000) * inputRatioPrice * groupRatio +
(completionTokens / 1000000) * completionRatioPrice * groupRatio;
((effectiveInputTokens / 1000000) * inputRatioPrice * groupRatio +
(completionTokens / 1000000) * completionRatioPrice * groupRatio) *
userRatio;


const inputUnitPrice = inputRatioPrice * rate; const inputUnitPrice = inputRatioPrice * rate;
const completionUnitPrice = completionRatioPrice * rate; const completionUnitPrice = completionRatioPrice * rate;
@@ -2132,11 +2135,12 @@ export function renderClaudeModelPrice(
<p></p> <p></p>
<p> <p>
{i18next.t( {i18next.t(
'{{breakdown}} * {{ratioType}} {{ratio}} = {{symbol}}{{total}}',
'{{breakdown}} * {{ratioType}} {{ratio}}{{userRatioText}} = {{symbol}}{{total}}',
{ {
breakdown: breakdownText, breakdown: breakdownText,
ratioType: ratioLabel, ratioType: ratioLabel,
ratio: groupRatio, ratio: groupRatio,
userRatioText: userRatio !== 1.0 ? i18next.t(' * 用户倍率 {{userRatio}}', { userRatio }) : '',
symbol: symbol, symbol: symbol,
total: (price * rate).toFixed(6), total: (price * rate).toFixed(6),
}, },


Loading…
Cancel
Save