feat: add wallet transaction

This commit is contained in:
王性驊 2025-04-30 09:43:16 +08:00
parent 1282c1e1a1
commit 81c3e2904c
1 changed files with 18 additions and 2 deletions

View File

@ -1,6 +1,7 @@
package usecase package usecase
import ( import (
"code.30cm.net/digimon/app-cloudep-wallet-service/pkg/domain/entity"
"code.30cm.net/digimon/app-cloudep-wallet-service/pkg/domain/repository" "code.30cm.net/digimon/app-cloudep-wallet-service/pkg/domain/repository"
"code.30cm.net/digimon/app-cloudep-wallet-service/pkg/domain/usecase" "code.30cm.net/digimon/app-cloudep-wallet-service/pkg/domain/usecase"
"code.30cm.net/digimon/app-cloudep-wallet-service/pkg/domain/wallet" "code.30cm.net/digimon/app-cloudep-wallet-service/pkg/domain/wallet"
@ -252,9 +253,24 @@ func (use *WalletUseCase) UnFreeze(ctx context.Context, tx usecase.WalletTransfe
}) })
} }
// RollbackFreeze Rollback 凍結,不可指定金額(剩餘order凍結金額)
// 1. 新增一筆 Rollback 凍結交易
// 2. 減少 order 餘額
// 3. 錢包減少凍結餘額
// 4. 錢包增加可用餘額
// 5. 錢包變化新增一筆減少凍結餘額資料
// 6. 錢包變化新增一筆增加可用餘額資料
func (use *WalletUseCase) RollbackFreeze(ctx context.Context, tx usecase.WalletTransferRequest) error { func (use *WalletUseCase) RollbackFreeze(ctx context.Context, tx usecase.WalletTransferRequest) error {
//TODO implement me tx.TxType = wallet.RollbackFreeze
panic("implement me")
return use.ProcessTransaction(ctx, tx, userWalletFlow{
UID: tx.FromUID,
Asset: tx.Asset,
Actions: []walletActionOption{use.withSubOrder(func(tx *usecase.Transaction, order entity.Transaction) {
tx.Amount = order.Balance
}), use.withLockAvailableAndFreeze(), use.withSubFreeze(), use.withAddAvailable()},
})
} }
func (use *WalletUseCase) RollbackFreezeAddAvailable(ctx context.Context, tx usecase.WalletTransferRequest) error { func (use *WalletUseCase) RollbackFreezeAddAvailable(ctx context.Context, tx usecase.WalletTransferRequest) error {