fix: ensure minimum quota display and handle zero values in render function
This commit is contained in:
@@ -517,6 +517,9 @@ func postConsumeQuota(ctx *gin.Context, relayInfo *relaycommon.RelayInfo,
|
|||||||
common.LogError(ctx, fmt.Sprintf("total tokens is 0, cannot consume quota, userId %d, channelId %d, "+
|
common.LogError(ctx, fmt.Sprintf("total tokens is 0, cannot consume quota, userId %d, channelId %d, "+
|
||||||
"tokenId %d, model %s, pre-consumed quota %d", relayInfo.UserId, relayInfo.ChannelId, relayInfo.TokenId, modelName, preConsumedQuota))
|
"tokenId %d, model %s, pre-consumed quota %d", relayInfo.UserId, relayInfo.ChannelId, relayInfo.TokenId, modelName, preConsumedQuota))
|
||||||
} else {
|
} else {
|
||||||
|
if !ratio.IsZero() && quota == 0 {
|
||||||
|
quota = 1
|
||||||
|
}
|
||||||
model.UpdateUserUsedQuotaAndRequestCount(relayInfo.UserId, quota)
|
model.UpdateUserUsedQuotaAndRequestCount(relayInfo.UserId, quota)
|
||||||
model.UpdateChannelUsedQuota(relayInfo.ChannelId, quota)
|
model.UpdateChannelUsedQuota(relayInfo.ChannelId, quota)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -883,12 +883,22 @@ export function renderQuotaWithAmount(amount) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function renderQuota(quota, digits = 2) {
|
export function renderQuota(quota, digits = 2) {
|
||||||
|
|
||||||
let quotaPerUnit = localStorage.getItem('quota_per_unit');
|
let quotaPerUnit = localStorage.getItem('quota_per_unit');
|
||||||
let displayInCurrency = localStorage.getItem('display_in_currency');
|
let displayInCurrency = localStorage.getItem('display_in_currency');
|
||||||
quotaPerUnit = parseFloat(quotaPerUnit);
|
quotaPerUnit = parseFloat(quotaPerUnit);
|
||||||
displayInCurrency = displayInCurrency === 'true';
|
displayInCurrency = displayInCurrency === 'true';
|
||||||
if (displayInCurrency) {
|
if (displayInCurrency) {
|
||||||
return '$' + (quota / quotaPerUnit).toFixed(digits);
|
const result = quota / quotaPerUnit;
|
||||||
|
const fixedResult = result.toFixed(digits);
|
||||||
|
|
||||||
|
// 如果 toFixed 后结果为 0 但原始值不为 0,显示最小值
|
||||||
|
if (parseFloat(fixedResult) === 0 && quota > 0 && result > 0) {
|
||||||
|
const minValue = Math.pow(10, -digits);
|
||||||
|
return '$' + minValue.toFixed(digits);
|
||||||
|
}
|
||||||
|
|
||||||
|
return '$' + fixedResult;
|
||||||
}
|
}
|
||||||
return renderNumber(quota);
|
return renderNumber(quota);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user