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
res := &domain.AtlasGetUserDataResponse{
PlayerID: req.PlayerID,
Balance: float64(wallet.RegularBalance.Float32()),
Balance: float64(wallet.RegularBalance),
}
return res, nil
@ -97,7 +97,7 @@ func (s *Service) ProcessBet(ctx context.Context, req domain.AtlasBetRequest) (*
}
// --- 4. Convert balance using Float32() ---
realBalance := float64(wallet.RegularBalance.Float32())
realBalance := float64(wallet.RegularBalance)
// --- 5. Ensure sufficient balance ---
if realBalance < req.Amount {
@ -139,7 +139,7 @@ func (s *Service) ProcessBetWin(ctx context.Context, req domain.AtlasBetWinReque
}
// --- 4. Convert balance using Float32() ---
realBalance := float64(wallet.RegularBalance.Float32())
realBalance := float64(wallet.RegularBalance)
// --- 5. Ensure sufficient balance for bet ---
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 ---
currentBalance := float64(wallet.RegularBalance.Float32())
currentBalance := float64(wallet.RegularBalance)
newBalance := currentBalance + req.Amount
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 ---
currentBalance := float64(wallet.RegularBalance.Float32())
currentBalance := float64(wallet.RegularBalance)
newBalance := currentBalance + float64(transfer.Amount)
// --- 6. Credit player wallet ---

View File

@ -233,7 +233,7 @@ func (s *service) GetPlayerInfo(ctx context.Context, req *domain.PopOKPlayerInfo
return &domain.PopOKPlayerInfoResponse{
Country: "ET",
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),
}, nil
}
@ -345,7 +345,7 @@ func (s *service) ProcessWin(ctx context.Context, req *domain.PopOKWinRequest) (
return &domain.PopOKWinResponse{
TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%d", existingTx.ID),
Balance: float64(wallet.RegularBalance.Float32()),
Balance: float64(wallet.RegularBalance),
}, nil
}
@ -390,12 +390,12 @@ func (s *service) ProcessWin(ctx context.Context, req *domain.PopOKWinRequest) (
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{
TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", tx.ID),
Balance: float64(wallet.RegularBalance.Float32()),
Balance: float64(wallet.RegularBalance),
}, nil
}
@ -419,7 +419,7 @@ func (s *service) ProcessTournamentWin(ctx context.Context, req *domain.PopOKWin
return &domain.PopOKWinResponse{
TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", existingTx.ID),
Balance: float64(wallet.RegularBalance.Float32()),
Balance: float64(wallet.RegularBalance),
}, nil
}
@ -472,7 +472,7 @@ func (s *service) ProcessTournamentWin(ctx context.Context, req *domain.PopOKWin
return &domain.PopOKWinResponse{
TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", tx.ID),
Balance: float64(wallet.RegularBalance.Float32()),
Balance: float64(wallet.RegularBalance),
}, nil
}
@ -496,7 +496,7 @@ func (s *service) ProcessPromoWin(ctx context.Context, req *domain.PopOKWinReque
return &domain.PopOKWinResponse{
TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", existingTx.ID),
Balance: float64(wallet.RegularBalance.Float32()),
Balance: float64(wallet.RegularBalance),
}, nil
}
@ -549,7 +549,7 @@ func (s *service) ProcessPromoWin(ctx context.Context, req *domain.PopOKWinReque
return &domain.PopOKWinResponse{
TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", tx.ID),
Balance: float64(wallet.RegularBalance.Float32()),
Balance: float64(wallet.RegularBalance),
}, nil
}
@ -586,7 +586,7 @@ func (s *service) ProcessCancel(ctx context.Context, req *domain.PopOKCancelRequ
return &domain.PopOKCancelResponse{
TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", originalBet.ID),
Balance: float64(wallet.RegularBalance.Float32()),
Balance: float64(wallet.RegularBalance),
}, nil
}
@ -643,7 +643,7 @@ func (s *service) ProcessCancel(ctx context.Context, req *domain.PopOKCancelRequ
return &domain.PopOKCancelResponse{
TransactionID: req.TransactionID,
ExternalTrxID: fmt.Sprintf("%v", cancelTx.ID),
Balance: float64(wallet.RegularBalance.Float32()),
Balance: float64(wallet.RegularBalance),
}, nil
}

View File

@ -282,7 +282,7 @@ func (s *Service) GetBalance(ctx context.Context, req domain.BalanceRequest) (*d
Amount float64 `json:"amount"`
}{
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())
// --- 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")
}
@ -348,7 +348,7 @@ func (s *Service) ProcessBet(ctx context.Context, req domain.BetRequest) (*domai
res := &domain.BetResponse{
Real: domain.BalanceDetail{
Currency: req.Amount.Currency,
Amount: float64(wallet.RegularBalance.Float32()) - req.Amount.Amount,
Amount: float64(wallet.RegularBalance) - req.Amount.Amount,
},
WalletTransactionID: req.TransactionID,
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() ---
realBalance := float64(wallet.RegularBalance.Float32())
realBalance := float64(wallet.RegularBalance)
// bonusBalance := float64(wallet.StaticBalance.Float32())
// --- 4. Apply winnings ---
@ -459,7 +459,7 @@ func (s *Service) ProcessCancel(ctx context.Context, req domain.CancelRequest) (
}
// --- 3. Convert balances using Float32() ---
realBalance := float64(wallet.RegularBalance.Float32())
realBalance := float64(wallet.RegularBalance)
// bonusBalance := float64(wallet.StaticBalance.Float32())
// --- 4. Determine refund amount ---