amount precision fix by removing float32() conversion of domain.Currency values

This commit is contained in:
Yared Yemane 2025-11-27 14:20:21 +03:00
parent 299825e797
commit 168fcdf278
3 changed files with 20 additions and 20 deletions

View File

@ -72,7 +72,7 @@ func (s *Service) GetUserData(ctx context.Context, req domain.AtlasGetUserDataRe
// 4. Build response // 4. Build response
res := &domain.AtlasGetUserDataResponse{ res := &domain.AtlasGetUserDataResponse{
PlayerID: req.PlayerID, PlayerID: req.PlayerID,
Balance: float64(wallet.RegularBalance.Float32()), Balance: float64(wallet.RegularBalance),
} }
return res, nil return res, nil
@ -97,7 +97,7 @@ func (s *Service) ProcessBet(ctx context.Context, req domain.AtlasBetRequest) (*
} }
// --- 4. Convert balance using Float32() --- // --- 4. Convert balance using Float32() ---
realBalance := float64(wallet.RegularBalance.Float32()) realBalance := float64(wallet.RegularBalance)
// --- 5. Ensure sufficient balance --- // --- 5. Ensure sufficient balance ---
if realBalance < req.Amount { if realBalance < req.Amount {
@ -139,7 +139,7 @@ func (s *Service) ProcessBetWin(ctx context.Context, req domain.AtlasBetWinReque
} }
// --- 4. Convert balance using Float32() --- // --- 4. Convert balance using Float32() ---
realBalance := float64(wallet.RegularBalance.Float32()) realBalance := float64(wallet.RegularBalance)
// --- 5. Ensure sufficient balance for bet --- // --- 5. Ensure sufficient balance for bet ---
if realBalance < req.BetAmount { if realBalance < req.BetAmount {
@ -192,7 +192,7 @@ func (s *Service) ProcessRoundResult(ctx context.Context, req domain.RoundResult
} }
// --- 4. Convert balance and apply win amount --- // --- 4. Convert balance and apply win amount ---
currentBalance := float64(wallet.RegularBalance.Float32()) currentBalance := float64(wallet.RegularBalance)
newBalance := currentBalance + req.Amount newBalance := currentBalance + req.Amount
err = s.walletSvc.UpdateBalance(ctx, wallet.RegularID, domain.ToCurrency(float32(newBalance))) err = s.walletSvc.UpdateBalance(ctx, wallet.RegularID, domain.ToCurrency(float32(newBalance)))
@ -232,7 +232,7 @@ func (s *Service) ProcessRollBack(ctx context.Context, req domain.RollbackReques
} }
// --- 5. Compute new balance using Float32() conversion --- // --- 5. Compute new balance using Float32() conversion ---
currentBalance := float64(wallet.RegularBalance.Float32()) currentBalance := float64(wallet.RegularBalance)
newBalance := currentBalance + float64(transfer.Amount) newBalance := currentBalance + float64(transfer.Amount)
// --- 6. Credit player wallet --- // --- 6. Credit player wallet ---

View File

@ -233,7 +233,7 @@ func (s *service) GetPlayerInfo(ctx context.Context, req *domain.PopOKPlayerInfo
return &domain.PopOKPlayerInfoResponse{ return &domain.PopOKPlayerInfoResponse{
Country: "ET", Country: "ET",
Currency: claims.Currency, Currency: claims.Currency,
Balance: float64(wallet.RegularBalance.Float32()), // Convert cents to currency Balance: float64(wallet.RegularBalance), // Convert cents to currency
PlayerID: fmt.Sprintf("%d", claims.UserID), PlayerID: fmt.Sprintf("%d", claims.UserID),
}, nil }, nil
} }
@ -345,7 +345,7 @@ func (s *service) ProcessWin(ctx context.Context, req *domain.PopOKWinRequest) (
return &domain.PopOKWinResponse{ return &domain.PopOKWinResponse{
TransactionID: req.TransactionID, TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%d", existingTx.ID), ExternalTrxID: fmt.Sprintf("%d", existingTx.ID),
Balance: float64(wallet.RegularBalance.Float32()), Balance: float64(wallet.RegularBalance),
}, nil }, nil
} }
@ -390,12 +390,12 @@ func (s *service) ProcessWin(ctx context.Context, req *domain.PopOKWinRequest) (
return nil, fmt.Errorf("transaction recording failed") return nil, fmt.Errorf("transaction recording failed")
} }
fmt.Printf("\n\n Win balance is:%v\n\n", float64(wallet.RegularBalance.Float32())) fmt.Printf("\n\n Win balance is:%v\n\n", float64(wallet.RegularBalance))
return &domain.PopOKWinResponse{ return &domain.PopOKWinResponse{
TransactionID: req.TransactionID, TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", tx.ID), ExternalTrxID: fmt.Sprintf("%v", tx.ID),
Balance: float64(wallet.RegularBalance.Float32()), Balance: float64(wallet.RegularBalance),
}, nil }, nil
} }
@ -419,7 +419,7 @@ func (s *service) ProcessTournamentWin(ctx context.Context, req *domain.PopOKWin
return &domain.PopOKWinResponse{ return &domain.PopOKWinResponse{
TransactionID: req.TransactionID, TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", existingTx.ID), ExternalTrxID: fmt.Sprintf("%v", existingTx.ID),
Balance: float64(wallet.RegularBalance.Float32()), Balance: float64(wallet.RegularBalance),
}, nil }, nil
} }
@ -472,7 +472,7 @@ func (s *service) ProcessTournamentWin(ctx context.Context, req *domain.PopOKWin
return &domain.PopOKWinResponse{ return &domain.PopOKWinResponse{
TransactionID: req.TransactionID, TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", tx.ID), ExternalTrxID: fmt.Sprintf("%v", tx.ID),
Balance: float64(wallet.RegularBalance.Float32()), Balance: float64(wallet.RegularBalance),
}, nil }, nil
} }
@ -496,7 +496,7 @@ func (s *service) ProcessPromoWin(ctx context.Context, req *domain.PopOKWinReque
return &domain.PopOKWinResponse{ return &domain.PopOKWinResponse{
TransactionID: req.TransactionID, TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", existingTx.ID), ExternalTrxID: fmt.Sprintf("%v", existingTx.ID),
Balance: float64(wallet.RegularBalance.Float32()), Balance: float64(wallet.RegularBalance),
}, nil }, nil
} }
@ -549,7 +549,7 @@ func (s *service) ProcessPromoWin(ctx context.Context, req *domain.PopOKWinReque
return &domain.PopOKWinResponse{ return &domain.PopOKWinResponse{
TransactionID: req.TransactionID, TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", tx.ID), ExternalTrxID: fmt.Sprintf("%v", tx.ID),
Balance: float64(wallet.RegularBalance.Float32()), Balance: float64(wallet.RegularBalance),
}, nil }, nil
} }
@ -586,7 +586,7 @@ func (s *service) ProcessCancel(ctx context.Context, req *domain.PopOKCancelRequ
return &domain.PopOKCancelResponse{ return &domain.PopOKCancelResponse{
TransactionID: req.TransactionID, TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", originalBet.ID), ExternalTrxID: fmt.Sprintf("%v", originalBet.ID),
Balance: float64(wallet.RegularBalance.Float32()), Balance: float64(wallet.RegularBalance),
}, nil }, nil
} }
@ -643,7 +643,7 @@ func (s *service) ProcessCancel(ctx context.Context, req *domain.PopOKCancelRequ
return &domain.PopOKCancelResponse{ return &domain.PopOKCancelResponse{
TransactionID: req.TransactionID, TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", cancelTx.ID), ExternalTrxID: fmt.Sprintf("%v", cancelTx.ID),
Balance: float64(wallet.RegularBalance.Float32()), Balance: float64(wallet.RegularBalance),
}, nil }, nil
} }

View File

@ -282,7 +282,7 @@ func (s *Service) GetBalance(ctx context.Context, req domain.BalanceRequest) (*d
Amount float64 `json:"amount"` Amount float64 `json:"amount"`
}{ }{
Currency: req.Currency, Currency: req.Currency,
Amount: (float64(wallet.RegularBalance.Float32())), Amount: (float64(wallet.RegularBalance)),
}, },
} }
@ -328,7 +328,7 @@ func (s *Service) ProcessBet(ctx context.Context, req domain.BetRequest) (*domai
// bonusBalance := float64(wallet.StaticBalance.Float32()) // bonusBalance := float64(wallet.StaticBalance.Float32())
// --- 4. Check sufficient balance --- // --- 4. Check sufficient balance ---
if float64(wallet.RegularBalance.Float32()) < req.Amount.Amount { if float64(wallet.RegularBalance) < req.Amount.Amount {
return nil, fmt.Errorf("INSUFFICIENT_BALANCE") return nil, fmt.Errorf("INSUFFICIENT_BALANCE")
} }
@ -348,7 +348,7 @@ func (s *Service) ProcessBet(ctx context.Context, req domain.BetRequest) (*domai
res := &domain.BetResponse{ res := &domain.BetResponse{
Real: domain.BalanceDetail{ Real: domain.BalanceDetail{
Currency: req.Amount.Currency, Currency: req.Amount.Currency,
Amount: float64(wallet.RegularBalance.Float32()) - req.Amount.Amount, Amount: float64(wallet.RegularBalance) - req.Amount.Amount,
}, },
WalletTransactionID: req.TransactionID, WalletTransactionID: req.TransactionID,
UsedRealAmount: req.Amount.Amount, UsedRealAmount: req.Amount.Amount,
@ -398,7 +398,7 @@ func (s *Service) ProcessWin(ctx context.Context, req domain.WinRequest) (*domai
} }
// --- 3. Convert balances safely using Float32() --- // --- 3. Convert balances safely using Float32() ---
realBalance := float64(wallet.RegularBalance.Float32()) realBalance := float64(wallet.RegularBalance)
// bonusBalance := float64(wallet.StaticBalance.Float32()) // bonusBalance := float64(wallet.StaticBalance.Float32())
// --- 4. Apply winnings --- // --- 4. Apply winnings ---
@ -459,7 +459,7 @@ func (s *Service) ProcessCancel(ctx context.Context, req domain.CancelRequest) (
} }
// --- 3. Convert balances using Float32() --- // --- 3. Convert balances using Float32() ---
realBalance := float64(wallet.RegularBalance.Float32()) realBalance := float64(wallet.RegularBalance)
// bonusBalance := float64(wallet.StaticBalance.Float32()) // bonusBalance := float64(wallet.StaticBalance.Float32())
// --- 4. Determine refund amount --- // --- 4. Determine refund amount ---