Add custom Configuration class for collateralmanagement module (FINERACT-1932)
This commit is contained in:
committed by
Aleksandar Vidakovic
parent
54ca135c3f
commit
62811ad60b
+2
-12
@@ -23,6 +23,7 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.data.ClientCollateralManagementData;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.data.LoanCollateralTemplateData;
|
||||
@@ -33,25 +34,14 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepository;
|
||||
import org.apache.fineract.portfolio.loanaccount.exception.LoanTransactionNotFoundException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ClientCollateralManagementReadPlatformServiceImpl implements ClientCollateralManagementReadPlatformService {
|
||||
|
||||
private final PlatformSecurityContext context;
|
||||
private final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper;
|
||||
private final LoanTransactionRepository loanTransactionRepository;
|
||||
|
||||
@Autowired
|
||||
public ClientCollateralManagementReadPlatformServiceImpl(final PlatformSecurityContext context,
|
||||
final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper,
|
||||
final LoanTransactionRepository loanTransactionRepository) {
|
||||
this.context = context;
|
||||
this.clientCollateralManagementRepositoryWrapper = clientCollateralManagementRepositoryWrapper;
|
||||
this.loanTransactionRepository = loanTransactionRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ClientCollateralManagementData> getClientCollaterals(final Long clientId, final Long prodId) {
|
||||
return this.clientCollateralManagementRepositoryWrapper.getClientCollateralData(clientId, prodId);
|
||||
|
||||
+4
-15
@@ -23,6 +23,7 @@ import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
||||
import org.apache.fineract.infrastructure.core.data.ApiParameterError;
|
||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
|
||||
@@ -39,26 +40,14 @@ import org.apache.fineract.portfolio.collateralmanagement.exception.ClientCollat
|
||||
import org.apache.fineract.portfolio.collateralmanagement.exception.ClientCollateralNotFoundException;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.exception.CollateralNotFoundException;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ClientCollateralManagementWritePlatformServiceImpl implements ClientCollateralManagementWritePlatformService {
|
||||
|
||||
private final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper;
|
||||
private final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper;
|
||||
private final ClientRepositoryWrapper clientRepositoryWrapper;
|
||||
|
||||
@Autowired
|
||||
public ClientCollateralManagementWritePlatformServiceImpl(
|
||||
final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper,
|
||||
final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper,
|
||||
final ClientRepositoryWrapper clientRepositoryWrapper) {
|
||||
this.clientCollateralManagementRepositoryWrapper = clientCollateralManagementRepositoryWrapper;
|
||||
this.collateralManagementRepositoryWrapper = collateralManagementRepositoryWrapper;
|
||||
this.clientRepositoryWrapper = clientRepositoryWrapper;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public CommandProcessingResult addClientCollateralProduct(final JsonCommand command) {
|
||||
@@ -136,7 +125,7 @@ public class ClientCollateralManagementWritePlatformServiceImpl implements Clien
|
||||
}
|
||||
|
||||
BigDecimal totalQuantity = BigDecimal.ZERO;
|
||||
if (clientCollateralManagement.getLoanCollateralManagementSet().size() > 0) {
|
||||
if (!clientCollateralManagement.getLoanCollateralManagementSet().isEmpty()) {
|
||||
for (LoanCollateralManagement loanCollateralManagement : clientCollateralManagement.getLoanCollateralManagementSet()) {
|
||||
totalQuantity = totalQuantity.add(loanCollateralManagement.getQuantity());
|
||||
}
|
||||
@@ -167,7 +156,7 @@ public class ClientCollateralManagementWritePlatformServiceImpl implements Clien
|
||||
throw new CollateralNotFoundException(clientCollateralId);
|
||||
}
|
||||
|
||||
if (clientCollateralManagement.getLoanCollateralManagementSet().size() > 0) {
|
||||
if (!clientCollateralManagement.getLoanCollateralManagementSet().isEmpty()) {
|
||||
for (LoanCollateralManagement loanCollateralManagement : clientCollateralManagement.getLoanCollateralManagementSet()) {
|
||||
if (!loanCollateralManagement.isReleased()) {
|
||||
throw new ClientCollateralCannotBeDeletedException(
|
||||
|
||||
+2
-10
@@ -20,26 +20,18 @@ package org.apache.fineract.portfolio.collateralmanagement.service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.data.CollateralManagementData;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementRepositoryWrapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CollateralManagementReadPlatformServiceImpl implements CollateralManagementReadPlatformService {
|
||||
|
||||
private final PlatformSecurityContext context;
|
||||
private final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper;
|
||||
|
||||
@Autowired
|
||||
public CollateralManagementReadPlatformServiceImpl(final PlatformSecurityContext context,
|
||||
final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper) {
|
||||
this.context = context;
|
||||
this.collateralManagementRepositoryWrapper = collateralManagementRepositoryWrapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CollateralManagementData getCollateralProduct(Long collateralId) {
|
||||
final CollateralManagementDomain collateralManagementDomain = this.collateralManagementRepositoryWrapper
|
||||
|
||||
+2
-11
@@ -23,6 +23,7 @@ import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
||||
import org.apache.fineract.infrastructure.core.data.ApiParameterError;
|
||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
|
||||
@@ -38,25 +39,15 @@ import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManag
|
||||
import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementRepositoryWrapper;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.exception.CollateralCannotBeDeletedException;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.exception.CollateralNotFoundException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CollateralManagementWritePlatformServiceImpl implements CollateralManagementWritePlatformService {
|
||||
|
||||
private final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper;
|
||||
private final ApplicationCurrencyRepository applicationCurrencyRepository;
|
||||
private final FromJsonHelper fromApiJsonHelper;
|
||||
|
||||
@Autowired
|
||||
public CollateralManagementWritePlatformServiceImpl(final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper,
|
||||
final ApplicationCurrencyRepository applicationCurrencyRepository, final FromJsonHelper fromApiJsonHelper) {
|
||||
this.collateralManagementRepositoryWrapper = collateralManagementRepositoryWrapper;
|
||||
this.applicationCurrencyRepository = applicationCurrencyRepository;
|
||||
this.fromApiJsonHelper = fromApiJsonHelper;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public CommandProcessingResult createCollateral(final JsonCommand jsonCommand) {
|
||||
|
||||
+2
-13
@@ -25,6 +25,7 @@ import java.math.BigDecimal;
|
||||
import java.util.HashSet;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.infrastructure.codes.domain.CodeValueRepositoryWrapper;
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement;
|
||||
@@ -33,10 +34,8 @@ import org.apache.fineract.portfolio.collateralmanagement.exception.LoanCollater
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagementRepository;
|
||||
import org.apache.fineract.portfolio.loanaccount.exception.InvalidAmountOfCollateralQuantity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class LoanCollateralAssembler {
|
||||
|
||||
private final FromJsonHelper fromApiJsonHelper;
|
||||
@@ -44,16 +43,6 @@ public class LoanCollateralAssembler {
|
||||
private final LoanCollateralManagementRepository loanCollateralRepository;
|
||||
private final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper;
|
||||
|
||||
@Autowired
|
||||
public LoanCollateralAssembler(final FromJsonHelper fromApiJsonHelper, final CodeValueRepositoryWrapper codeValueRepository,
|
||||
final LoanCollateralManagementRepository loanCollateralRepository,
|
||||
final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper) {
|
||||
this.fromApiJsonHelper = fromApiJsonHelper;
|
||||
this.codeValueRepository = codeValueRepository;
|
||||
this.loanCollateralRepository = loanCollateralRepository;
|
||||
this.clientCollateralManagementRepositoryWrapper = clientCollateralManagementRepositoryWrapper;
|
||||
}
|
||||
|
||||
public Set<LoanCollateralManagement> fromParsedJson(final JsonElement element) {
|
||||
|
||||
final Set<LoanCollateralManagement> collateralItems = new HashSet<>();
|
||||
|
||||
-4
@@ -31,11 +31,8 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagementRepository;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepository;
|
||||
import org.apache.fineract.portfolio.loanaccount.exception.LoanNotFoundException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Service
|
||||
@Transactional(readOnly = true)
|
||||
public class LoanCollateralManagementReadPlatformServiceImpl implements LoanCollateralManagementReadPlatformService {
|
||||
|
||||
@@ -43,7 +40,6 @@ public class LoanCollateralManagementReadPlatformServiceImpl implements LoanColl
|
||||
private LoanCollateralManagementRepository loanCollateralManagementRepository;
|
||||
private LoanRepository loanRepository;
|
||||
|
||||
@Autowired
|
||||
public LoanCollateralManagementReadPlatformServiceImpl(final PlatformSecurityContext context,
|
||||
final LoanCollateralManagementRepository loanCollateralManagementRepository, final LoanRepository loanRepository) {
|
||||
this.context = context;
|
||||
|
||||
+2
-10
@@ -19,6 +19,7 @@
|
||||
package org.apache.fineract.portfolio.collateralmanagement.service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
|
||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder;
|
||||
@@ -26,23 +27,14 @@ import org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollatera
|
||||
import org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagementRepositoryWrapper;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagementRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class LoanCollateralManagementWritePlatformServiceImpl implements LoanCollateralManagementWritePlatformService {
|
||||
|
||||
private final LoanCollateralManagementRepository loanCollateralManagementRepository;
|
||||
private final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper;
|
||||
|
||||
@Autowired
|
||||
public LoanCollateralManagementWritePlatformServiceImpl(final LoanCollateralManagementRepository loanCollateralManagementRepository,
|
||||
final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper) {
|
||||
this.loanCollateralManagementRepository = loanCollateralManagementRepository;
|
||||
this.clientCollateralManagementRepositoryWrapper = clientCollateralManagementRepositoryWrapper;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public CommandProcessingResult deleteLoanCollateral(JsonCommand command) {
|
||||
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.apache.fineract.portfolio.collateralmanagement.starter;
|
||||
|
||||
import org.apache.fineract.infrastructure.codes.domain.CodeValueRepositoryWrapper;
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.apache.fineract.organisation.monetary.domain.ApplicationCurrencyRepository;
|
||||
import org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagementRepositoryWrapper;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementRepositoryWrapper;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.ClientCollateralManagementReadPlatformService;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.ClientCollateralManagementReadPlatformServiceImpl;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.ClientCollateralManagementWritePlatformService;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.ClientCollateralManagementWritePlatformServiceImpl;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.CollateralManagementReadPlatformService;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.CollateralManagementReadPlatformServiceImpl;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.CollateralManagementWritePlatformService;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.CollateralManagementWritePlatformServiceImpl;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralAssembler;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralManagementReadPlatformService;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralManagementReadPlatformServiceImpl;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralManagementWritePlatformService;
|
||||
import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralManagementWritePlatformServiceImpl;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagementRepository;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepository;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepository;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class CollateralManagementConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(ClientCollateralManagementReadPlatformService.class)
|
||||
public ClientCollateralManagementReadPlatformService clientCollateralManagementReadPlatformService(PlatformSecurityContext context,
|
||||
ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper,
|
||||
LoanTransactionRepository loanTransactionRepository) {
|
||||
return new ClientCollateralManagementReadPlatformServiceImpl(context, clientCollateralManagementRepositoryWrapper,
|
||||
loanTransactionRepository);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(ClientCollateralManagementWritePlatformService.class)
|
||||
public ClientCollateralManagementWritePlatformService clientCollateralManagementWritePlatformService(
|
||||
ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper,
|
||||
CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper, ClientRepositoryWrapper clientRepositoryWrapper) {
|
||||
return new ClientCollateralManagementWritePlatformServiceImpl(clientCollateralManagementRepositoryWrapper,
|
||||
collateralManagementRepositoryWrapper, clientRepositoryWrapper);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(CollateralManagementReadPlatformService.class)
|
||||
public CollateralManagementReadPlatformService collateralManagementReadPlatformService(PlatformSecurityContext context,
|
||||
CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper) {
|
||||
return new CollateralManagementReadPlatformServiceImpl(context, collateralManagementRepositoryWrapper);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(CollateralManagementWritePlatformService.class)
|
||||
public CollateralManagementWritePlatformService collateralManagementWritePlatformService(
|
||||
CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper,
|
||||
ApplicationCurrencyRepository applicationCurrencyRepository, FromJsonHelper fromApiJsonHelper) {
|
||||
return new CollateralManagementWritePlatformServiceImpl(collateralManagementRepositoryWrapper, applicationCurrencyRepository,
|
||||
fromApiJsonHelper);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(LoanCollateralAssembler.class)
|
||||
public LoanCollateralAssembler loanCollateralAssembler(FromJsonHelper fromApiJsonHelper, CodeValueRepositoryWrapper codeValueRepository,
|
||||
LoanCollateralManagementRepository loanCollateralRepository,
|
||||
ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper) {
|
||||
return new LoanCollateralAssembler(fromApiJsonHelper, codeValueRepository, loanCollateralRepository,
|
||||
clientCollateralManagementRepositoryWrapper);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(LoanCollateralManagementReadPlatformService.class)
|
||||
public LoanCollateralManagementReadPlatformService loanCollateralManagementReadPlatformService(PlatformSecurityContext context,
|
||||
LoanCollateralManagementRepository loanCollateralManagementRepository, LoanRepository loanRepository) {
|
||||
return new LoanCollateralManagementReadPlatformServiceImpl(context, loanCollateralManagementRepository, loanRepository);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(LoanCollateralManagementWritePlatformService.class)
|
||||
public LoanCollateralManagementWritePlatformService loanCollateralManagementWritePlatformService(
|
||||
LoanCollateralManagementRepository loanCollateralManagementRepository,
|
||||
ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper) {
|
||||
return new LoanCollateralManagementWritePlatformServiceImpl(loanCollateralManagementRepository,
|
||||
clientCollateralManagementRepositoryWrapper);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user