From 35df258be36ef0aad587c4f01923c0404484709f Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Thu, 5 Dec 2024 12:10:02 +0800 Subject: [PATCH] fix(qcloud): cred balance --- pkg/multicloud/qcloud/qcloud.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkg/multicloud/qcloud/qcloud.go b/pkg/multicloud/qcloud/qcloud.go index 9d44c3888..b360ee422 100644 --- a/pkg/multicloud/qcloud/qcloud.go +++ b/pkg/multicloud/qcloud/qcloud.go @@ -1031,9 +1031,13 @@ func (client *SQcloudClient) GetIStorageById(id string) (cloudprovider.ICloudSto } type SAccountBalance struct { - Balance float64 - Uin int64 - Currency string + Balance float64 + Uin int64 + Currency string + CashAccountBalance float64 + CreditAmount float64 + CreditBalance float64 + FreezeAmount float64 } func (client *SQcloudClient) QueryAccountBalance() (*SAccountBalance, error) { @@ -1049,7 +1053,11 @@ func (client *SQcloudClient) QueryAccountBalance() (*SAccountBalance, error) { if err != nil { return nil, err } - balance.Balance = balance.Balance / 100.0 + amount := balance.Balance / 100.0 + if balance.CreditAmount > 0 { + amount = (balance.CashAccountBalance + balance.CreditAmount + balance.Balance - balance.FreezeAmount) / 100.0 + } + balance.Balance = amount if balance.Uin >= 200000000000 { balance.Currency = "USD" }