MIFOSX-339: use common search parameters for loans and journal entries retrieve all as it contains logic and api for dealing with limits.
This commit is contained in:
-3
@@ -20,9 +20,6 @@ import org.apache.commons.lang.StringUtils;
|
|||||||
* Class for parsing dates sent as query parameters
|
* Class for parsing dates sent as query parameters
|
||||||
*
|
*
|
||||||
* TODO: Vishwas Should move this class to a more generic package
|
* TODO: Vishwas Should move this class to a more generic package
|
||||||
*
|
|
||||||
* @author
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class DateParam {
|
public class DateParam {
|
||||||
|
|
||||||
|
|||||||
+7
-5
@@ -34,6 +34,7 @@ import org.mifosplatform.infrastructure.core.serialization.ApiRequestJsonSeriali
|
|||||||
import org.mifosplatform.infrastructure.core.serialization.DefaultToApiJsonSerializer;
|
import org.mifosplatform.infrastructure.core.serialization.DefaultToApiJsonSerializer;
|
||||||
import org.mifosplatform.infrastructure.core.service.Page;
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||||
|
import org.mifosplatform.portfolio.group.service.SearchParameters;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -80,8 +81,6 @@ public class JournalEntriesApiResource {
|
|||||||
|
|
||||||
this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermission);
|
this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermission);
|
||||||
|
|
||||||
Page<JournalEntryData> glJournalEntries = null;
|
|
||||||
|
|
||||||
Date fromDate = null;
|
Date fromDate = null;
|
||||||
if (fromDateParam != null) {
|
if (fromDateParam != null) {
|
||||||
fromDate = fromDateParam.getDate();
|
fromDate = fromDateParam.getDate();
|
||||||
@@ -90,11 +89,14 @@ public class JournalEntriesApiResource {
|
|||||||
if (toDateParam != null) {
|
if (toDateParam != null) {
|
||||||
toDate = toDateParam.getDate();
|
toDate = toDateParam.getDate();
|
||||||
}
|
}
|
||||||
glJournalEntries = this.journalEntryReadPlatformService.retrieveAll(officeId, glAccountId, onlyManualEntries, fromDate, toDate,
|
|
||||||
offset, limit, orderBy, sortOrder, transactionId);
|
final SearchParameters searchParameters = SearchParameters.forJournalEntries(officeId, offset, limit, orderBy, sortOrder);
|
||||||
|
|
||||||
|
Page<JournalEntryData> glJournalEntries = this.journalEntryReadPlatformService.retrieveAll(searchParameters, glAccountId,
|
||||||
|
onlyManualEntries, fromDate, toDate, transactionId);
|
||||||
return this.apiJsonSerializerService.serialize(glJournalEntries);
|
return this.apiJsonSerializerService.serialize(glJournalEntries);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("{journalEntryId}")
|
@Path("{journalEntryId}")
|
||||||
@Consumes({ MediaType.APPLICATION_JSON })
|
@Consumes({ MediaType.APPLICATION_JSON })
|
||||||
|
|||||||
+3
-2
@@ -9,12 +9,13 @@ import java.util.Date;
|
|||||||
|
|
||||||
import org.mifosplatform.accounting.journalentry.data.JournalEntryData;
|
import org.mifosplatform.accounting.journalentry.data.JournalEntryData;
|
||||||
import org.mifosplatform.infrastructure.core.service.Page;
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
|
import org.mifosplatform.portfolio.group.service.SearchParameters;
|
||||||
|
|
||||||
public interface JournalEntryReadPlatformService {
|
public interface JournalEntryReadPlatformService {
|
||||||
|
|
||||||
JournalEntryData retrieveGLJournalEntryById(long glJournalEntryId);
|
JournalEntryData retrieveGLJournalEntryById(long glJournalEntryId);
|
||||||
|
|
||||||
Page<JournalEntryData> retrieveAll(Long officeId, Long glAccountId, Boolean onlyManualEntries, Date fromDate, Date toDate,
|
Page<JournalEntryData> retrieveAll(SearchParameters searchParameters, Long glAccountId, Boolean onlyManualEntries, Date fromDate,
|
||||||
Integer offset, Integer limit, String orderBy, String sortOrder, String transactionId);
|
Date toDate, String transactionId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+19
-25
@@ -23,6 +23,7 @@ import org.mifosplatform.infrastructure.core.domain.JdbcSupport;
|
|||||||
import org.mifosplatform.infrastructure.core.service.Page;
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
import org.mifosplatform.infrastructure.core.service.PaginationHelper;
|
import org.mifosplatform.infrastructure.core.service.PaginationHelper;
|
||||||
import org.mifosplatform.infrastructure.core.service.TenantAwareRoutingDataSource;
|
import org.mifosplatform.infrastructure.core.service.TenantAwareRoutingDataSource;
|
||||||
|
import org.mifosplatform.portfolio.group.service.SearchParameters;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.dao.EmptyResultDataAccessException;
|
import org.springframework.dao.EmptyResultDataAccessException;
|
||||||
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
@@ -33,7 +34,7 @@ import org.springframework.stereotype.Service;
|
|||||||
public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlatformService {
|
public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlatformService {
|
||||||
|
|
||||||
private final JdbcTemplate jdbcTemplate;
|
private final JdbcTemplate jdbcTemplate;
|
||||||
|
|
||||||
private final GLJournalEntryMapper journalEntryMapper = new GLJournalEntryMapper();
|
private final GLJournalEntryMapper journalEntryMapper = new GLJournalEntryMapper();
|
||||||
private final PaginationHelper<JournalEntryData> paginationHelper = new PaginationHelper<JournalEntryData>();
|
private final PaginationHelper<JournalEntryData> paginationHelper = new PaginationHelper<JournalEntryData>();
|
||||||
|
|
||||||
@@ -89,16 +90,15 @@ public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlat
|
|||||||
final Boolean reversed = rs.getBoolean("reversed");
|
final Boolean reversed = rs.getBoolean("reversed");
|
||||||
final String referenceNumber = rs.getString("referenceNumber");
|
final String referenceNumber = rs.getString("referenceNumber");
|
||||||
|
|
||||||
return new JournalEntryData(id, officeId, officeName, glAccountName, glAccountId, glCode, accountType,
|
return new JournalEntryData(id, officeId, officeName, glAccountName, glAccountId, glCode, accountType, transactionDate,
|
||||||
transactionDate, entryType, amount, transactionId, manualEntry, entityType, entityId, createdByUserId, createdDate,
|
entryType, amount, transactionId, manualEntry, entityType, entityId, createdByUserId, createdDate, createdByUserName,
|
||||||
createdByUserName, comments, reversed, referenceNumber);
|
comments, reversed, referenceNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<JournalEntryData> retrieveAll(final Long officeId, final Long glAccountId, final Boolean onlyManualEntries,
|
public Page<JournalEntryData> retrieveAll(final SearchParameters searchParameters, final Long glAccountId,
|
||||||
final Date fromDate, final Date toDate, final Integer offset, final Integer limit, final String orderBy,
|
final Boolean onlyManualEntries, final Date fromDate, final Date toDate, final String transactionId) {
|
||||||
final String sortOrder, final String transactionId) {
|
|
||||||
|
|
||||||
StringBuilder sqlBuilder = new StringBuilder(200);
|
StringBuilder sqlBuilder = new StringBuilder(200);
|
||||||
sqlBuilder.append("select SQL_CALC_FOUND_ROWS ");
|
sqlBuilder.append("select SQL_CALC_FOUND_ROWS ");
|
||||||
@@ -113,9 +113,9 @@ public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlat
|
|||||||
arrayPos = arrayPos + 1;
|
arrayPos = arrayPos + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (officeId != null && officeId != 0) {
|
if (searchParameters.isOfficeIdPassed()) {
|
||||||
sqlBuilder.append(" and journalEntry.office_id = ?");
|
sqlBuilder.append(" and journalEntry.office_id = ?");
|
||||||
objectArray[arrayPos] = officeId;
|
objectArray[arrayPos] = searchParameters.getOfficeId();
|
||||||
arrayPos = arrayPos + 1;
|
arrayPos = arrayPos + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,26 +156,20 @@ public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(orderBy)) {
|
if (searchParameters.isOrderByRequested()) {
|
||||||
sqlBuilder.append(" order by ").append(orderBy);
|
sqlBuilder.append(" order by ").append(searchParameters.getOrderBy());
|
||||||
if (StringUtils.isNotBlank(sortOrder)) {
|
|
||||||
sqlBuilder.append(' ').append(sortOrder);
|
if (searchParameters.isSortOrderProvided()) {
|
||||||
|
sqlBuilder.append(' ').append(searchParameters.getSortOrder());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (limit != null && limit > 0) {
|
if (searchParameters.isLimited()) {
|
||||||
Integer maxLimitAllowed = 200;
|
sqlBuilder.append(" limit ").append(searchParameters.getLimit());
|
||||||
if (limit < maxLimitAllowed) {
|
if (searchParameters.isOffset()) {
|
||||||
maxLimitAllowed = limit;
|
sqlBuilder.append(" offset ").append(searchParameters.getOffset());
|
||||||
}
|
}
|
||||||
sqlBuilder.append(" limit ").append(maxLimitAllowed);
|
}
|
||||||
if (offset != null) {
|
|
||||||
sqlBuilder.append(" offset ").append(offset);
|
|
||||||
}
|
|
||||||
} else if (limit != null && limit == -1) {
|
|
||||||
;
|
|
||||||
} else
|
|
||||||
sqlBuilder.append(" limit ").append(200);
|
|
||||||
|
|
||||||
final Object[] finalObjectArray = Arrays.copyOf(objectArray, arrayPos);
|
final Object[] finalObjectArray = Arrays.copyOf(objectArray, arrayPos);
|
||||||
final String sqlCountRows = "SELECT FOUND_ROWS()";
|
final String sqlCountRows = "SELECT FOUND_ROWS()";
|
||||||
|
|||||||
-3
@@ -90,9 +90,6 @@ public class ClientReadPlatformServiceImpl implements ClientReadPlatformService
|
|||||||
sqlBuilder.append(" and (").append(extraCriteria).append(")");
|
sqlBuilder.append(" and (").append(extraCriteria).append(")");
|
||||||
}
|
}
|
||||||
|
|
||||||
// DONT order by default - just use database natural ordering so doesnt
|
|
||||||
// have to scan entire database table.
|
|
||||||
// sql += " order by c.display_name ASC, c.account_no ASC";
|
|
||||||
if (searchParameters.isOrderByRequested()) {
|
if (searchParameters.isOrderByRequested()) {
|
||||||
sqlBuilder.append(" order by ").append(searchParameters.getOrderBy());
|
sqlBuilder.append(" order by ").append(searchParameters.getOrderBy());
|
||||||
|
|
||||||
|
|||||||
+43
-17
@@ -30,20 +30,35 @@ public final class SearchParameters {
|
|||||||
final String displayName, final String firstname, final String lastname, final String hierarchy, final Integer offset,
|
final String displayName, final String firstname, final String lastname, final String hierarchy, final Integer offset,
|
||||||
final Integer limit, final String orderBy, final String sortOrder) {
|
final Integer limit, final String orderBy, final String sortOrder) {
|
||||||
|
|
||||||
Integer maxLimitAllowed = getCheckedLimit(200, limit);
|
Integer maxLimitAllowed = getCheckedLimit(limit);
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, officeId, externalId, displayName, hierarchy, firstname, lastname, offset, maxLimitAllowed,
|
return new SearchParameters(sqlSearch, officeId, externalId, displayName, hierarchy, firstname, lastname, offset, maxLimitAllowed,
|
||||||
orderBy, sortOrder);
|
orderBy, sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SearchParameters forGroups(final String sqlSearch, final Long officeId, final String externalId,
|
|
||||||
final String name, final String hierarchy, final Integer offset,
|
|
||||||
final Integer limit, final String orderBy, final String sortOrder) {
|
|
||||||
|
|
||||||
Integer maxLimitAllowed = getCheckedLimit(200, limit);
|
public static SearchParameters forGroups(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
||||||
|
final String hierarchy, final Integer offset, final Integer limit, final String orderBy, final String sortOrder) {
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, officeId, externalId, name, hierarchy, null, null, offset, maxLimitAllowed,
|
Integer maxLimitAllowed = getCheckedLimit(limit);
|
||||||
orderBy, sortOrder);
|
|
||||||
|
return new SearchParameters(sqlSearch, officeId, externalId, name, hierarchy, null, null, offset, maxLimitAllowed, orderBy,
|
||||||
|
sortOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SearchParameters forLoans(final String sqlSearch, final String externalId, final Integer offset, final Integer limit,
|
||||||
|
final String orderBy, final String sortOrder) {
|
||||||
|
|
||||||
|
Integer maxLimitAllowed = getCheckedLimit(limit);
|
||||||
|
|
||||||
|
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SearchParameters forJournalEntries(final Long officeId, final Integer offset, final Integer limit, final String orderBy,
|
||||||
|
final String sortOrder) {
|
||||||
|
|
||||||
|
Integer maxLimitAllowed = getCheckedLimit(limit);
|
||||||
|
|
||||||
|
return new SearchParameters(null, officeId, null, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchParameters(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
private SearchParameters(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
||||||
@@ -69,14 +84,25 @@ public final class SearchParameters {
|
|||||||
public boolean isSortOrderProvided() {
|
public boolean isSortOrderProvided() {
|
||||||
return StringUtils.isNotBlank(this.sortOrder);
|
return StringUtils.isNotBlank(this.sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Integer getCheckedLimit(Integer maxLimitAllowed, Integer limit) {
|
public static Integer getCheckedLimit(final Integer limit) {
|
||||||
if (limit != null && limit < maxLimitAllowed && limit > 0) {
|
|
||||||
return limit;
|
final Integer maxLimitAllowed = 200;
|
||||||
} else if (limit != null && limit == -1) {
|
// default to max limit first off
|
||||||
return null;
|
Integer checkedLimit = maxLimitAllowed;
|
||||||
} else
|
|
||||||
return maxLimitAllowed;
|
if (limit != null && limit > 0) {
|
||||||
|
checkedLimit = limit;
|
||||||
|
} else if (limit != null) {
|
||||||
|
// unlimited case: limit provided and 0 or less
|
||||||
|
checkedLimit = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return checkedLimit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOfficeIdPassed() {
|
||||||
|
return this.officeId != null && this.officeId != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSqlSearch() {
|
public String getSqlSearch() {
|
||||||
|
|||||||
+5
-2
@@ -54,6 +54,7 @@ import org.mifosplatform.portfolio.fund.data.FundData;
|
|||||||
import org.mifosplatform.portfolio.fund.service.FundReadPlatformService;
|
import org.mifosplatform.portfolio.fund.service.FundReadPlatformService;
|
||||||
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
||||||
import org.mifosplatform.portfolio.group.service.GroupReadPlatformService;
|
import org.mifosplatform.portfolio.group.service.GroupReadPlatformService;
|
||||||
|
import org.mifosplatform.portfolio.group.service.SearchParameters;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanAccountData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanAccountData;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanChargeData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanChargeData;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionData;
|
||||||
@@ -367,8 +368,10 @@ public class LoansApiResource {
|
|||||||
@QueryParam("sortOrder") final String sortOrder) {
|
@QueryParam("sortOrder") final String sortOrder) {
|
||||||
|
|
||||||
context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions);
|
context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions);
|
||||||
final Page<LoanAccountData> loanBasicDetails = this.loanReadPlatformService.retrieveAll(sqlSearch, externalId, offset, limit,
|
|
||||||
orderBy, sortOrder);
|
final SearchParameters searchParameters = SearchParameters.forLoans(sqlSearch, externalId, offset, limit, orderBy, sortOrder);
|
||||||
|
|
||||||
|
final Page<LoanAccountData> loanBasicDetails = this.loanReadPlatformService.retrieveAll(searchParameters);
|
||||||
return this.toApiJsonSerializer.serialize(loanBasicDetails);
|
return this.toApiJsonSerializer.serialize(loanBasicDetails);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -9,6 +9,7 @@ import java.util.Collection;
|
|||||||
|
|
||||||
import org.mifosplatform.infrastructure.core.service.Page;
|
import org.mifosplatform.infrastructure.core.service.Page;
|
||||||
import org.mifosplatform.portfolio.calendar.data.CalendarData;
|
import org.mifosplatform.portfolio.calendar.data.CalendarData;
|
||||||
|
import org.mifosplatform.portfolio.group.service.SearchParameters;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanAccountData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanAccountData;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionData;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.RepaymentScheduleRelatedLoanData;
|
import org.mifosplatform.portfolio.loanaccount.data.RepaymentScheduleRelatedLoanData;
|
||||||
@@ -48,5 +49,5 @@ public interface LoanReadPlatformService {
|
|||||||
|
|
||||||
Collection<CalendarData> retrieveCalendars(Long groupId);
|
Collection<CalendarData> retrieveCalendars(Long groupId);
|
||||||
|
|
||||||
Page<LoanAccountData> retrieveAll(String sqlSearch, String externalId, Integer offset, Integer limit, String orderBy, String sortOrder);
|
Page<LoanAccountData> retrieveAll(SearchParameters searchParameters);
|
||||||
}
|
}
|
||||||
+15
-21
@@ -42,6 +42,7 @@ import org.mifosplatform.portfolio.fund.data.FundData;
|
|||||||
import org.mifosplatform.portfolio.fund.service.FundReadPlatformService;
|
import org.mifosplatform.portfolio.fund.service.FundReadPlatformService;
|
||||||
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
import org.mifosplatform.portfolio.group.data.GroupGeneralData;
|
||||||
import org.mifosplatform.portfolio.group.service.GroupReadPlatformService;
|
import org.mifosplatform.portfolio.group.service.GroupReadPlatformService;
|
||||||
|
import org.mifosplatform.portfolio.group.service.SearchParameters;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.DisbursementData;
|
import org.mifosplatform.portfolio.loanaccount.data.DisbursementData;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanAccountData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanAccountData;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanApplicationTimelineData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanApplicationTimelineData;
|
||||||
@@ -173,8 +174,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<LoanAccountData> retrieveAll(final String sqlSearch, final String externalId, final Integer offset, final Integer limit,
|
public Page<LoanAccountData> retrieveAll(final SearchParameters searchParameters) {
|
||||||
final String orderBy, final String sortOrder) {
|
|
||||||
|
|
||||||
StringBuilder sqlBuilder = new StringBuilder(200);
|
StringBuilder sqlBuilder = new StringBuilder(200);
|
||||||
sqlBuilder.append("select SQL_CALC_FOUND_ROWS ");
|
sqlBuilder.append("select SQL_CALC_FOUND_ROWS ");
|
||||||
@@ -183,38 +183,32 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
|
|||||||
final Object[] objectArray = new Object[1];
|
final Object[] objectArray = new Object[1];
|
||||||
int arrayPos = 0;
|
int arrayPos = 0;
|
||||||
|
|
||||||
String sqlQueryCriteria = sqlSearch;
|
String sqlQueryCriteria = searchParameters.getSqlSearch();
|
||||||
if (StringUtils.isNotBlank(sqlQueryCriteria)) {
|
if (StringUtils.isNotBlank(sqlQueryCriteria)) {
|
||||||
sqlQueryCriteria = sqlQueryCriteria.replaceAll("accountNo", "l.account_no");
|
sqlQueryCriteria = sqlQueryCriteria.replaceAll("accountNo", "l.account_no");
|
||||||
sqlBuilder.append(" where (").append(sqlQueryCriteria).append(")");
|
sqlBuilder.append(" where (").append(sqlQueryCriteria).append(")");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(externalId)) {
|
if (StringUtils.isNotBlank(searchParameters.getExternalId())) {
|
||||||
sqlBuilder.append(" and l.external_id = ?");
|
sqlBuilder.append(" and l.external_id = ?");
|
||||||
objectArray[arrayPos] = externalId;
|
objectArray[arrayPos] = searchParameters.getExternalId();
|
||||||
arrayPos = arrayPos + 1;
|
arrayPos = arrayPos + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(orderBy)) {
|
if (searchParameters.isOrderByRequested()) {
|
||||||
sqlBuilder.append(" order by ").append(orderBy);
|
sqlBuilder.append(" order by ").append(searchParameters.getOrderBy());
|
||||||
if (StringUtils.isNotBlank(sortOrder)) {
|
|
||||||
sqlBuilder.append(' ').append(sortOrder);
|
if (searchParameters.isSortOrderProvided()) {
|
||||||
|
sqlBuilder.append(' ').append(searchParameters.getSortOrder());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (limit != null && limit > 0) {
|
if (searchParameters.isLimited()) {
|
||||||
Integer maxLimitAllowed = 200;
|
sqlBuilder.append(" limit ").append(searchParameters.getLimit());
|
||||||
if (limit < maxLimitAllowed) {
|
if (searchParameters.isOffset()) {
|
||||||
maxLimitAllowed = limit;
|
sqlBuilder.append(" offset ").append(searchParameters.getOffset());
|
||||||
}
|
}
|
||||||
sqlBuilder.append(" limit ").append(maxLimitAllowed);
|
}
|
||||||
if (offset != null) {
|
|
||||||
sqlBuilder.append(" offset ").append(offset);
|
|
||||||
}
|
|
||||||
} else if (limit != null && limit == -1) {
|
|
||||||
;
|
|
||||||
} else
|
|
||||||
sqlBuilder.append(" limit ").append(200);
|
|
||||||
|
|
||||||
final Object[] finalObjectArray = Arrays.copyOf(objectArray, arrayPos);
|
final Object[] finalObjectArray = Arrays.copyOf(objectArray, arrayPos);
|
||||||
final String sqlCountRows = "SELECT FOUND_ROWS()";
|
final String sqlCountRows = "SELECT FOUND_ROWS()";
|
||||||
|
|||||||
Reference in New Issue
Block a user