FINERACT-1724: Minor cleanup around client transaction services
This commit is contained in:
committed by
Arnold Gálovics
parent
d5b4546886
commit
4b290663d3
+13
-31
@@ -35,6 +35,7 @@ import javax.ws.rs.QueryParam;
|
|||||||
import javax.ws.rs.core.Context;
|
import javax.ws.rs.core.Context;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.UriInfo;
|
import javax.ws.rs.core.UriInfo;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||||
import org.apache.fineract.commands.service.CommandWrapperBuilder;
|
import org.apache.fineract.commands.service.CommandWrapperBuilder;
|
||||||
@@ -49,12 +50,12 @@ import org.apache.fineract.infrastructure.core.service.SearchParameters;
|
|||||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||||
import org.apache.fineract.portfolio.client.data.ClientTransactionData;
|
import org.apache.fineract.portfolio.client.data.ClientTransactionData;
|
||||||
import org.apache.fineract.portfolio.client.service.ClientTransactionReadPlatformService;
|
import org.apache.fineract.portfolio.client.service.ClientTransactionReadPlatformService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Path("/clients/{clientId}/transactions")
|
@Path("/clients/{clientId}/transactions")
|
||||||
@Component
|
@Component
|
||||||
@Tag(name = "Client Transaction", description = "Client Transactions refer to transactions made directly againt a Client's internal account. Currently, these transactions are only created as a result of charge payments/waivers. You are allowed to undo a transaction, however you cannot explicitly create one. ")
|
@Tag(name = "Client Transaction", description = "Client Transactions refer to transactions made directly against a Client's internal account. Currently, these transactions are only created as a result of charge payments/waivers. You are allowed to undo a transaction, however you cannot explicitly create one. ")
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class ClientTransactionsApiResource {
|
public class ClientTransactionsApiResource {
|
||||||
|
|
||||||
private final PlatformSecurityContext context;
|
private final PlatformSecurityContext context;
|
||||||
@@ -63,19 +64,6 @@ public class ClientTransactionsApiResource {
|
|||||||
private final ApiRequestParameterHelper apiRequestParameterHelper;
|
private final ApiRequestParameterHelper apiRequestParameterHelper;
|
||||||
private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService;
|
private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public ClientTransactionsApiResource(final PlatformSecurityContext context,
|
|
||||||
final ClientTransactionReadPlatformService clientTransactionReadPlatformService,
|
|
||||||
final DefaultToApiJsonSerializer<ClientTransactionData> toApiJsonSerializer,
|
|
||||||
final ApiRequestParameterHelper apiRequestParameterHelper,
|
|
||||||
final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService) {
|
|
||||||
this.context = context;
|
|
||||||
this.clientTransactionReadPlatformService = clientTransactionReadPlatformService;
|
|
||||||
this.toApiJsonSerializer = toApiJsonSerializer;
|
|
||||||
this.apiRequestParameterHelper = apiRequestParameterHelper;
|
|
||||||
this.commandsSourceWritePlatformService = commandsSourceWritePlatformService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Consumes({ MediaType.APPLICATION_JSON })
|
@Consumes({ MediaType.APPLICATION_JSON })
|
||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
@@ -86,15 +74,14 @@ public class ClientTransactionsApiResource {
|
|||||||
public String retrieveAllClientTransactions(@PathParam("clientId") @Parameter(description = "clientId") final Long clientId,
|
public String retrieveAllClientTransactions(@PathParam("clientId") @Parameter(description = "clientId") final Long clientId,
|
||||||
@Context final UriInfo uriInfo, @QueryParam("offset") @Parameter(description = "offset") final Integer offset,
|
@Context final UriInfo uriInfo, @QueryParam("offset") @Parameter(description = "offset") final Integer offset,
|
||||||
@QueryParam("limit") @Parameter(description = "limit") final Integer limit) {
|
@QueryParam("limit") @Parameter(description = "limit") final Integer limit) {
|
||||||
this.context.authenticatedUser().validateHasReadPermission(ClientApiConstants.CLIENT_CHARGES_RESOURCE_NAME);
|
context.authenticatedUser().validateHasReadPermission(ClientApiConstants.CLIENT_CHARGES_RESOURCE_NAME);
|
||||||
|
|
||||||
SearchParameters searchParameters = SearchParameters.forPagination(offset, limit);
|
SearchParameters searchParameters = SearchParameters.forPagination(offset, limit);
|
||||||
final Page<ClientTransactionData> clientTransactions = this.clientTransactionReadPlatformService.retrieveAllTransactions(clientId,
|
final Page<ClientTransactionData> clientTransactions = clientTransactionReadPlatformService.retrieveAllTransactions(clientId,
|
||||||
searchParameters);
|
searchParameters);
|
||||||
|
|
||||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||||
return this.toApiJsonSerializer.serialize(settings, clientTransactions,
|
return toApiJsonSerializer.serialize(settings, clientTransactions, ClientApiConstants.CLIENT_TRANSACTION_RESPONSE_DATA_PARAMETERS);
|
||||||
ClientApiConstants.CLIENT_TRANSACTION_RESPONSE_DATA_PARAMETERS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@@ -109,14 +96,12 @@ public class ClientTransactionsApiResource {
|
|||||||
@PathParam("transactionId") @Parameter(description = "transactionId") final Long transactionId,
|
@PathParam("transactionId") @Parameter(description = "transactionId") final Long transactionId,
|
||||||
@Context final UriInfo uriInfo) {
|
@Context final UriInfo uriInfo) {
|
||||||
|
|
||||||
this.context.authenticatedUser().validateHasReadPermission(ClientApiConstants.CLIENT_CHARGES_RESOURCE_NAME);
|
context.authenticatedUser().validateHasReadPermission(ClientApiConstants.CLIENT_CHARGES_RESOURCE_NAME);
|
||||||
|
|
||||||
final ClientTransactionData clientTransaction = this.clientTransactionReadPlatformService.retrieveTransaction(clientId,
|
final ClientTransactionData clientTransaction = clientTransactionReadPlatformService.retrieveTransaction(clientId, transactionId);
|
||||||
transactionId);
|
|
||||||
|
|
||||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||||
return this.toApiJsonSerializer.serialize(settings, clientTransaction,
|
return toApiJsonSerializer.serialize(settings, clientTransaction, ClientApiConstants.CLIENT_TRANSACTION_RESPONSE_DATA_PARAMETERS);
|
||||||
ClientApiConstants.CLIENT_TRANSACTION_RESPONSE_DATA_PARAMETERS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@@ -131,19 +116,16 @@ public class ClientTransactionsApiResource {
|
|||||||
@QueryParam("command") @Parameter(description = "command") final String commandParam,
|
@QueryParam("command") @Parameter(description = "command") final String commandParam,
|
||||||
@Parameter(hidden = true) final String apiRequestBodyAsJson) {
|
@Parameter(hidden = true) final String apiRequestBodyAsJson) {
|
||||||
|
|
||||||
String json = "";
|
|
||||||
if (is(commandParam, ClientApiConstants.CLIENT_TRANSACTION_COMMAND_UNDO)) {
|
if (is(commandParam, ClientApiConstants.CLIENT_TRANSACTION_COMMAND_UNDO)) {
|
||||||
final CommandWrapper commandRequest = new CommandWrapperBuilder().undoClientTransaction(clientId, transactionId)
|
final CommandWrapper commandRequest = new CommandWrapperBuilder().undoClientTransaction(clientId, transactionId)
|
||||||
.withJson(apiRequestBodyAsJson).build();
|
.withJson(apiRequestBodyAsJson).build();
|
||||||
|
|
||||||
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
final CommandProcessingResult result = commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
||||||
|
|
||||||
json = this.toApiJsonSerializer.serialize(result);
|
return toApiJsonSerializer.serialize(result);
|
||||||
} else {
|
} else {
|
||||||
throw new UnrecognizedQueryParamException("command", commandParam, ClientApiConstants.CLIENT_TRANSACTION_COMMAND_UNDO);
|
throw new UnrecognizedQueryParamException("command", commandParam, ClientApiConstants.CLIENT_TRANSACTION_COMMAND_UNDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
return json;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean is(final String commandParam, final String commandValue) {
|
private boolean is(final String commandParam, final String commandValue) {
|
||||||
|
|||||||
+2
-7
@@ -20,10 +20,10 @@ package org.apache.fineract.portfolio.client.domain;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||||
import org.apache.fineract.portfolio.client.exception.ClientNotActiveException;
|
import org.apache.fineract.portfolio.client.exception.ClientNotActiveException;
|
||||||
import org.apache.fineract.portfolio.client.exception.ClientNotFoundException;
|
import org.apache.fineract.portfolio.client.exception.ClientNotFoundException;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -33,17 +33,12 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class ClientRepositoryWrapper {
|
public class ClientRepositoryWrapper {
|
||||||
|
|
||||||
private final ClientRepository repository;
|
private final ClientRepository repository;
|
||||||
private final PlatformSecurityContext context;
|
private final PlatformSecurityContext context;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public ClientRepositoryWrapper(final ClientRepository repository, final PlatformSecurityContext context) {
|
|
||||||
this.repository = repository;
|
|
||||||
this.context = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public Client findOneWithNotFoundDetection(final Long id) {
|
public Client findOneWithNotFoundDetection(final Long id) {
|
||||||
return this.findOneWithNotFoundDetection(id, false);
|
return this.findOneWithNotFoundDetection(id, false);
|
||||||
|
|||||||
+2
-8
@@ -18,24 +18,18 @@
|
|||||||
*/
|
*/
|
||||||
package org.apache.fineract.portfolio.client.domain;
|
package org.apache.fineract.portfolio.client.domain;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.fineract.organisation.office.domain.OrganisationCurrencyRepositoryWrapper;
|
import org.apache.fineract.organisation.office.domain.OrganisationCurrencyRepositoryWrapper;
|
||||||
import org.apache.fineract.portfolio.client.exception.ClientTransactionNotFoundException;
|
import org.apache.fineract.portfolio.client.exception.ClientTransactionNotFoundException;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class ClientTransactionRepositoryWrapper {
|
public class ClientTransactionRepositoryWrapper {
|
||||||
|
|
||||||
private final ClientTransactionRepository repository;
|
private final ClientTransactionRepository repository;
|
||||||
private final OrganisationCurrencyRepositoryWrapper organisationCurrencyRepository;
|
private final OrganisationCurrencyRepositoryWrapper organisationCurrencyRepository;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public ClientTransactionRepositoryWrapper(final ClientTransactionRepository repository,
|
|
||||||
final OrganisationCurrencyRepositoryWrapper currencyRepositoryWrapper) {
|
|
||||||
this.repository = repository;
|
|
||||||
this.organisationCurrencyRepository = currencyRepositoryWrapper;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ClientTransaction findOneWithNotFoundDetection(final Long clientId, final Long transactionId) {
|
public ClientTransaction findOneWithNotFoundDetection(final Long clientId, final Long transactionId) {
|
||||||
final ClientTransaction clientTransaction = this.repository.findById(transactionId)
|
final ClientTransaction clientTransaction = this.repository.findById(transactionId)
|
||||||
.orElseThrow(() -> new ClientTransactionNotFoundException(clientId, transactionId));
|
.orElseThrow(() -> new ClientTransactionNotFoundException(clientId, transactionId));
|
||||||
|
|||||||
+3
-12
@@ -23,6 +23,7 @@ import java.sql.ResultSet;
|
|||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.commons.lang3.BooleanUtils;
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||||
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
||||||
@@ -37,30 +38,20 @@ import org.apache.fineract.portfolio.charge.service.ChargeEnumerations;
|
|||||||
import org.apache.fineract.portfolio.client.api.ClientApiConstants;
|
import org.apache.fineract.portfolio.client.api.ClientApiConstants;
|
||||||
import org.apache.fineract.portfolio.client.data.ClientChargeData;
|
import org.apache.fineract.portfolio.client.data.ClientChargeData;
|
||||||
import org.apache.fineract.portfolio.client.exception.ClientChargeNotFoundException;
|
import org.apache.fineract.portfolio.client.exception.ClientChargeNotFoundException;
|
||||||
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;
|
||||||
import org.springframework.jdbc.core.RowMapper;
|
import org.springframework.jdbc.core.RowMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class ClientChargeReadPlatformServiceImpl implements ClientChargeReadPlatformService {
|
public class ClientChargeReadPlatformServiceImpl implements ClientChargeReadPlatformService {
|
||||||
|
|
||||||
private final PaginationHelper paginationHelper;
|
private final PaginationHelper paginationHelper;
|
||||||
private final JdbcTemplate jdbcTemplate;
|
private final JdbcTemplate jdbcTemplate;
|
||||||
private final DatabaseSpecificSQLGenerator sqlGenerator;
|
private final DatabaseSpecificSQLGenerator sqlGenerator;
|
||||||
private final PlatformSecurityContext context;
|
private final PlatformSecurityContext context;
|
||||||
private final ClientChargeMapper clientChargeMapper;
|
private final ClientChargeMapper clientChargeMapper = new ClientChargeMapper();
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public ClientChargeReadPlatformServiceImpl(final PlatformSecurityContext context, final JdbcTemplate jdbcTemplate,
|
|
||||||
DatabaseSpecificSQLGenerator sqlGenerator, PaginationHelper paginationHelper) {
|
|
||||||
this.context = context;
|
|
||||||
this.jdbcTemplate = jdbcTemplate;
|
|
||||||
this.sqlGenerator = sqlGenerator;
|
|
||||||
this.clientChargeMapper = new ClientChargeMapper();
|
|
||||||
this.paginationHelper = paginationHelper;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final class ClientChargeMapper implements RowMapper<ClientChargeData> {
|
public static final class ClientChargeMapper implements RowMapper<ClientChargeData> {
|
||||||
|
|
||||||
|
|||||||
+6
-30
@@ -26,6 +26,8 @@ import java.util.LinkedHashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.fineract.accounting.journalentry.service.JournalEntryWritePlatformService;
|
import org.apache.fineract.accounting.journalentry.service.JournalEntryWritePlatformService;
|
||||||
import org.apache.fineract.infrastructure.configuration.domain.ConfigurationDomainService;
|
import org.apache.fineract.infrastructure.configuration.domain.ConfigurationDomainService;
|
||||||
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
||||||
@@ -36,7 +38,6 @@ import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
|
|||||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||||
import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
|
import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
|
||||||
import org.apache.fineract.infrastructure.core.service.DateUtils;
|
import org.apache.fineract.infrastructure.core.service.DateUtils;
|
||||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
|
||||||
import org.apache.fineract.organisation.holiday.domain.HolidayRepositoryWrapper;
|
import org.apache.fineract.organisation.holiday.domain.HolidayRepositoryWrapper;
|
||||||
import org.apache.fineract.organisation.monetary.domain.Money;
|
import org.apache.fineract.organisation.monetary.domain.Money;
|
||||||
import org.apache.fineract.organisation.workingdays.domain.WorkingDaysRepositoryWrapper;
|
import org.apache.fineract.organisation.workingdays.domain.WorkingDaysRepositoryWrapper;
|
||||||
@@ -54,20 +55,16 @@ import org.apache.fineract.portfolio.client.domain.ClientTransaction;
|
|||||||
import org.apache.fineract.portfolio.client.domain.ClientTransactionRepository;
|
import org.apache.fineract.portfolio.client.domain.ClientTransactionRepository;
|
||||||
import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
|
import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
|
||||||
import org.apache.fineract.portfolio.paymentdetail.service.PaymentDetailWritePlatformService;
|
import org.apache.fineract.portfolio.paymentdetail.service.PaymentDetailWritePlatformService;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.dao.DataIntegrityViolationException;
|
import org.springframework.dao.DataIntegrityViolationException;
|
||||||
import org.springframework.dao.NonTransientDataAccessException;
|
import org.springframework.dao.NonTransientDataAccessException;
|
||||||
import org.springframework.orm.jpa.JpaSystemException;
|
import org.springframework.orm.jpa.JpaSystemException;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ClientChargeWritePlatformServiceJpaRepositoryImpl implements ClientChargeWritePlatformService {
|
@RequiredArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
public class ClientChargeWritePlatformServiceImpl implements ClientChargeWritePlatformService {
|
||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(ClientChargeWritePlatformServiceJpaRepositoryImpl.class);
|
|
||||||
|
|
||||||
private final PlatformSecurityContext context;
|
|
||||||
private final ChargeRepositoryWrapper chargeRepository;
|
private final ChargeRepositoryWrapper chargeRepository;
|
||||||
private final ClientRepositoryWrapper clientRepository;
|
private final ClientRepositoryWrapper clientRepository;
|
||||||
private final ClientChargeDataValidator clientChargeDataValidator;
|
private final ClientChargeDataValidator clientChargeDataValidator;
|
||||||
@@ -79,27 +76,6 @@ public class ClientChargeWritePlatformServiceJpaRepositoryImpl implements Client
|
|||||||
private final PaymentDetailWritePlatformService paymentDetailWritePlatformService;
|
private final PaymentDetailWritePlatformService paymentDetailWritePlatformService;
|
||||||
private final JournalEntryWritePlatformService journalEntryWritePlatformService;
|
private final JournalEntryWritePlatformService journalEntryWritePlatformService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public ClientChargeWritePlatformServiceJpaRepositoryImpl(final PlatformSecurityContext context,
|
|
||||||
final ChargeRepositoryWrapper chargeRepository, final ClientChargeDataValidator clientChargeDataValidator,
|
|
||||||
final ClientRepositoryWrapper clientRepository, final HolidayRepositoryWrapper holidayRepositoryWrapper,
|
|
||||||
final ConfigurationDomainService configurationDomainService, final ClientChargeRepositoryWrapper clientChargeRepository,
|
|
||||||
final WorkingDaysRepositoryWrapper workingDaysRepository, final ClientTransactionRepository clientTransactionRepository,
|
|
||||||
final PaymentDetailWritePlatformService paymentDetailWritePlatformService,
|
|
||||||
final JournalEntryWritePlatformService journalEntryWritePlatformService) {
|
|
||||||
this.context = context;
|
|
||||||
this.chargeRepository = chargeRepository;
|
|
||||||
this.clientChargeDataValidator = clientChargeDataValidator;
|
|
||||||
this.clientRepository = clientRepository;
|
|
||||||
this.holidayRepository = holidayRepositoryWrapper;
|
|
||||||
this.configurationDomainService = configurationDomainService;
|
|
||||||
this.clientChargeRepository = clientChargeRepository;
|
|
||||||
this.workingDaysRepository = workingDaysRepository;
|
|
||||||
this.clientTransactionRepository = clientTransactionRepository;
|
|
||||||
this.paymentDetailWritePlatformService = paymentDetailWritePlatformService;
|
|
||||||
this.journalEntryWritePlatformService = journalEntryWritePlatformService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommandProcessingResult addCharge(Long clientId, JsonCommand command) {
|
public CommandProcessingResult addCharge(Long clientId, JsonCommand command) {
|
||||||
try {
|
try {
|
||||||
@@ -447,7 +423,7 @@ public class ClientChargeWritePlatformServiceJpaRepositoryImpl implements Client
|
|||||||
"clientChargeId", clientChargeId);
|
"clientChargeId", clientChargeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG.error("Error occured.", dve);
|
log.error("Error occured.", dve);
|
||||||
throw new PlatformDataIntegrityException("error.msg.client.charges.unknown.data.integrity.issue",
|
throw new PlatformDataIntegrityException("error.msg.client.charges.unknown.data.integrity.issue",
|
||||||
"Unknown data integrity issue with resource.");
|
"Unknown data integrity issue with resource.");
|
||||||
}
|
}
|
||||||
+3
-11
@@ -23,6 +23,7 @@ import java.sql.ResultSet;
|
|||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||||
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
||||||
import org.apache.fineract.infrastructure.core.service.Page;
|
import org.apache.fineract.infrastructure.core.service.Page;
|
||||||
@@ -36,29 +37,20 @@ import org.apache.fineract.portfolio.client.domain.ClientTransactionType;
|
|||||||
import org.apache.fineract.portfolio.client.exception.ClientTransactionNotFoundException;
|
import org.apache.fineract.portfolio.client.exception.ClientTransactionNotFoundException;
|
||||||
import org.apache.fineract.portfolio.paymentdetail.data.PaymentDetailData;
|
import org.apache.fineract.portfolio.paymentdetail.data.PaymentDetailData;
|
||||||
import org.apache.fineract.portfolio.paymenttype.data.PaymentTypeData;
|
import org.apache.fineract.portfolio.paymenttype.data.PaymentTypeData;
|
||||||
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;
|
||||||
import org.springframework.jdbc.core.RowMapper;
|
import org.springframework.jdbc.core.RowMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class ClientTransactionReadPlatformServiceImpl implements ClientTransactionReadPlatformService {
|
public class ClientTransactionReadPlatformServiceImpl implements ClientTransactionReadPlatformService {
|
||||||
|
|
||||||
private final JdbcTemplate jdbcTemplate;
|
private final JdbcTemplate jdbcTemplate;
|
||||||
private final DatabaseSpecificSQLGenerator sqlGenerator;
|
private final DatabaseSpecificSQLGenerator sqlGenerator;
|
||||||
private final ClientTransactionMapper clientTransactionMapper;
|
private final ClientTransactionMapper clientTransactionMapper = new ClientTransactionMapper();
|
||||||
private final PaginationHelper paginationHelper;
|
private final PaginationHelper paginationHelper;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public ClientTransactionReadPlatformServiceImpl(final JdbcTemplate jdbcTemplate, DatabaseSpecificSQLGenerator sqlGenerator,
|
|
||||||
PaginationHelper paginationHelper) {
|
|
||||||
this.jdbcTemplate = jdbcTemplate;
|
|
||||||
this.sqlGenerator = sqlGenerator;
|
|
||||||
this.clientTransactionMapper = new ClientTransactionMapper();
|
|
||||||
this.paginationHelper = paginationHelper;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final class ClientTransactionMapper implements RowMapper<ClientTransactionData> {
|
private static final class ClientTransactionMapper implements RowMapper<ClientTransactionData> {
|
||||||
|
|
||||||
private final String schemaSql;
|
private final String schemaSql;
|
||||||
|
|||||||
+2
-12
@@ -20,6 +20,7 @@ package org.apache.fineract.portfolio.client.service;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.fineract.accounting.journalentry.service.JournalEntryWritePlatformService;
|
import org.apache.fineract.accounting.journalentry.service.JournalEntryWritePlatformService;
|
||||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
|
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
|
||||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder;
|
import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder;
|
||||||
@@ -31,10 +32,10 @@ import org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper;
|
|||||||
import org.apache.fineract.portfolio.client.domain.ClientTransaction;
|
import org.apache.fineract.portfolio.client.domain.ClientTransaction;
|
||||||
import org.apache.fineract.portfolio.client.domain.ClientTransactionRepositoryWrapper;
|
import org.apache.fineract.portfolio.client.domain.ClientTransactionRepositoryWrapper;
|
||||||
import org.apache.fineract.portfolio.client.exception.ClientTransactionCannotBeUndoneException;
|
import org.apache.fineract.portfolio.client.exception.ClientTransactionCannotBeUndoneException;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class ClientTransactionWritePlatformServiceJpaRepositoryImpl implements ClientTransactionWritePlatformService {
|
public class ClientTransactionWritePlatformServiceJpaRepositoryImpl implements ClientTransactionWritePlatformService {
|
||||||
|
|
||||||
private final ClientTransactionRepositoryWrapper clientTransactionRepository;
|
private final ClientTransactionRepositoryWrapper clientTransactionRepository;
|
||||||
@@ -43,17 +44,6 @@ public class ClientTransactionWritePlatformServiceJpaRepositoryImpl implements C
|
|||||||
private final OrganisationCurrencyRepositoryWrapper organisationCurrencyRepository;
|
private final OrganisationCurrencyRepositoryWrapper organisationCurrencyRepository;
|
||||||
private final JournalEntryWritePlatformService journalEntryWritePlatformService;
|
private final JournalEntryWritePlatformService journalEntryWritePlatformService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public ClientTransactionWritePlatformServiceJpaRepositoryImpl(final ClientTransactionRepositoryWrapper clientTransactionRepository,
|
|
||||||
final ClientRepositoryWrapper clientRepositoryWrapper,
|
|
||||||
final OrganisationCurrencyRepositoryWrapper organisationCurrencyRepositoryWrapper,
|
|
||||||
JournalEntryWritePlatformService journalEntryWritePlatformService) {
|
|
||||||
this.clientTransactionRepository = clientTransactionRepository;
|
|
||||||
this.clientRepository = clientRepositoryWrapper;
|
|
||||||
this.organisationCurrencyRepository = organisationCurrencyRepositoryWrapper;
|
|
||||||
this.journalEntryWritePlatformService = journalEntryWritePlatformService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommandProcessingResult undo(Long clientId, Long transactionId) {
|
public CommandProcessingResult undo(Long clientId, Long transactionId) {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user