diff --git a/src/main/java/com/coding/exercise/bankapp/model/Transaction.java b/src/main/java/com/coding/exercise/bankapp/model/Transaction.java index 7d7bcce..142c10a 100644 --- a/src/main/java/com/coding/exercise/bankapp/model/Transaction.java +++ b/src/main/java/com/coding/exercise/bankapp/model/Transaction.java @@ -30,7 +30,7 @@ public class Transaction { private Long accountNumber; - @Temporal(TemporalType.TIME) + @Temporal(TemporalType.TIMESTAMP) private Date txDateTime; private String txType; diff --git a/src/main/java/com/coding/exercise/bankapp/repository/TransactionRepository.java b/src/main/java/com/coding/exercise/bankapp/repository/TransactionRepository.java index 184d0a8..007414c 100644 --- a/src/main/java/com/coding/exercise/bankapp/repository/TransactionRepository.java +++ b/src/main/java/com/coding/exercise/bankapp/repository/TransactionRepository.java @@ -1,5 +1,6 @@ package com.coding.exercise.bankapp.repository; +import java.util.Date; import java.util.List; import java.util.Optional; @@ -13,4 +14,6 @@ public interface TransactionRepository extends CrudRepository> findByAccountNumber(Long accountNumber); + public Optional> findByAccountNumberAndTxDateTimeAfter(Long accountNumber, Date cutoffDate); + } diff --git a/src/main/java/com/coding/exercise/bankapp/service/BankingServiceImpl.java b/src/main/java/com/coding/exercise/bankapp/service/BankingServiceImpl.java index 576e2df..ff72c92 100644 --- a/src/main/java/com/coding/exercise/bankapp/service/BankingServiceImpl.java +++ b/src/main/java/com/coding/exercise/bankapp/service/BankingServiceImpl.java @@ -287,7 +287,7 @@ public ResponseEntity transferDetails(TransferDetails transferDetails, L } /** - * Get all transactions for a specific account + * Get all transactions for a specific account from the last 60 days * * @param accountNumber * @return @@ -296,7 +296,11 @@ public List findTransactionsByAccountNumber(Long accountNumb List transactionDetails = new ArrayList<>(); Optional accountEntityOpt = accountRepository.findByAccountNumber(accountNumber); if(accountEntityOpt.isPresent()) { - Optional> transactionEntitiesOpt = transactionRepository.findByAccountNumber(accountNumber); + java.util.Calendar cal = java.util.Calendar.getInstance(); + cal.add(java.util.Calendar.DAY_OF_MONTH, -60); + Date cutoffDate = cal.getTime(); + + Optional> transactionEntitiesOpt = transactionRepository.findByAccountNumberAndTxDateTimeAfter(accountNumber, cutoffDate); if(transactionEntitiesOpt.isPresent()) { transactionEntitiesOpt.get().forEach(transaction -> { transactionDetails.add(bankingServiceHelper.convertToTransactionDomain(transaction));