FINERACT-2076: SQL query optimization
This commit is contained in:
committed by
Aleksandar Vidakovic
parent
039bca440b
commit
a022a51189
+10
-2
@@ -50,6 +50,7 @@ import org.apache.fineract.infrastructure.core.service.DateUtils;
|
||||
import org.apache.fineract.infrastructure.core.service.Page;
|
||||
import org.apache.fineract.infrastructure.core.service.SearchParameters;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.apache.fineract.infrastructure.security.service.SqlValidator;
|
||||
import org.apache.fineract.organisation.teller.data.CashierData;
|
||||
import org.apache.fineract.organisation.teller.data.CashierTransactionData;
|
||||
import org.apache.fineract.organisation.teller.data.CashierTransactionsWithSummaryData;
|
||||
@@ -70,6 +71,7 @@ public class TellerApiResource {
|
||||
private final DefaultToApiJsonSerializer<TellerData> jsonSerializer;
|
||||
private final TellerManagementReadPlatformService readPlatformService;
|
||||
private final PortfolioCommandSourceWritePlatformService commandWritePlatformService;
|
||||
private final SqlValidator sqlValidator;
|
||||
|
||||
@GET
|
||||
@Consumes({ MediaType.TEXT_HTML, MediaType.APPLICATION_JSON })
|
||||
@@ -315,7 +317,10 @@ public class TellerApiResource {
|
||||
|
||||
final LocalDate fromDate = null;
|
||||
final LocalDate toDate = null;
|
||||
final SearchParameters searchParameters = SearchParameters.forPagination(offset, limit, orderBy, sortOrder);
|
||||
sqlValidator.validate(orderBy);
|
||||
sqlValidator.validate(sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.builder().limit(limit).offset(offset).orderBy(orderBy)
|
||||
.sortOrder(sortOrder).build();
|
||||
final Page<CashierTransactionData> cashierTxns = this.readPlatformService.retrieveCashierTransactions(cashierId, false, fromDate,
|
||||
toDate, currencyCode, searchParameters);
|
||||
|
||||
@@ -344,7 +349,10 @@ public class TellerApiResource {
|
||||
final LocalDate fromDate = null;
|
||||
final LocalDate toDate = null;
|
||||
|
||||
final SearchParameters searchParameters = SearchParameters.forPagination(offset, limit, orderBy, sortOrder);
|
||||
sqlValidator.validate(orderBy);
|
||||
sqlValidator.validate(sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.builder().limit(limit).offset(offset).orderBy(orderBy)
|
||||
.sortOrder(sortOrder).build();
|
||||
|
||||
final CashierTransactionsWithSummaryData cashierTxnWithSummary = this.readPlatformService
|
||||
.retrieveCashierTransactionsWithSummary(cashierId, false, fromDate, toDate, currencyCode, searchParameters);
|
||||
|
||||
+2
-8
@@ -56,15 +56,9 @@ public class CashierTransactionDataValidator {
|
||||
}
|
||||
|
||||
public void validateSettleCashAndCashOutTransactions(final Long cashierId, String currencyCode, final BigDecimal transactionAmount) {
|
||||
final Integer offset = null;
|
||||
final Integer limit = null;
|
||||
final String orderBy = null;
|
||||
final String sortOrder = null;
|
||||
final LocalDate fromDate = null;
|
||||
final LocalDate toDate = null;
|
||||
final SearchParameters searchParameters = SearchParameters.forPagination(offset, limit, orderBy, sortOrder);
|
||||
final SearchParameters searchParameters = SearchParameters.builder().build();
|
||||
final CashierTransactionsWithSummaryData cashierTxnWithSummary = this.tellerManagementReadPlatformService
|
||||
.retrieveCashierTransactionsWithSummary(cashierId, false, fromDate, toDate, currencyCode, searchParameters);
|
||||
.retrieveCashierTransactionsWithSummary(cashierId, false, null, null, currencyCode, searchParameters);
|
||||
if (MathUtil.isGreaterThan(transactionAmount, cashierTxnWithSummary.getNetCash())) {
|
||||
throw new CashierInsufficientAmountException();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user