This is an automated email from the ASF dual-hosted git repository.

taskain pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new 273787d24 [FINERACT-1678] LoanCOBFilterHelper call service instead of 
repository
273787d24 is described below

commit 273787d249ca2b721a3dc6828cf53d72010f6b4f
Author: taskain7 <[email protected]>
AuthorDate: Fri Jul 7 00:15:07 2023 +0200

    [FINERACT-1678] LoanCOBFilterHelper call service instead of repository
---
 .../RetrieveAllNonClosedLoanIdServiceImpl.java     |  5 ++++
 .../fineract/cob/loan/RetrieveLoanIdService.java   |  2 ++
 .../jobs/filter/LoanCOBFilterHelper.java           |  6 ++--
 .../jobs/filter/LoanCOBApiFilterTest.java          | 33 ++++++++++------------
 4 files changed, 26 insertions(+), 20 deletions(-)

diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/cob/loan/RetrieveAllNonClosedLoanIdServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/cob/loan/RetrieveAllNonClosedLoanIdServiceImpl.java
index d4553d3de..d7fa9e07f 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/cob/loan/RetrieveAllNonClosedLoanIdServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/cob/loan/RetrieveAllNonClosedLoanIdServiceImpl.java
@@ -67,6 +67,11 @@ public class RetrieveAllNonClosedLoanIdServiceImpl 
implements RetrieveLoanIdServ
         return new LoanCOBPartition(rs.getLong("min"), rs.getLong("max"), 
rs.getLong("page"), rs.getLong("count"));
     }
 
+    @Override
+    public List<LoanIdAndLastClosedBusinessDate> 
retrieveLoanIdsBehindDate(LocalDate businessDate, List<Long> loanIds) {
+        return 
loanRepository.findAllNonClosedLoansBehindByLoanIds(businessDate, loanIds);
+    }
+
     @Override
     public List<LoanIdAndLastClosedBusinessDate> 
retrieveLoanIdsBehindDateOrNull(LocalDate businessDate, List<Long> loanIds) {
         return 
loanRepository.findAllNonClosedLoansBehindOrNullByLoanIds(businessDate, 
loanIds);
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/cob/loan/RetrieveLoanIdService.java
 
b/fineract-provider/src/main/java/org/apache/fineract/cob/loan/RetrieveLoanIdService.java
index 4eef38322..82df2c73c 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/cob/loan/RetrieveLoanIdService.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/cob/loan/RetrieveLoanIdService.java
@@ -30,6 +30,8 @@ public interface RetrieveLoanIdService {
 
     List<LoanCOBPartition> retrieveLoanCOBPartitions(Long numberOfDays, 
LocalDate businessDate, boolean isCatchUp, int partitionSize);
 
+    List<LoanIdAndLastClosedBusinessDate> retrieveLoanIdsBehindDate(LocalDate 
businessDate, List<Long> loanIds);
+
     List<LoanIdAndLastClosedBusinessDate> 
retrieveLoanIdsBehindDateOrNull(LocalDate businessDate, List<Long> loanIds);
 
     List<LoanIdAndLastClosedBusinessDate> 
retrieveLoanIdsOldestCobProcessed(LocalDate businessDate);
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/filter/LoanCOBFilterHelper.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/filter/LoanCOBFilterHelper.java
index 67822c888..89173cf6a 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/filter/LoanCOBFilterHelper.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/filter/LoanCOBFilterHelper.java
@@ -29,6 +29,7 @@ import lombok.RequiredArgsConstructor;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.fineract.cob.data.LoanIdAndLastClosedBusinessDate;
+import org.apache.fineract.cob.loan.RetrieveLoanIdService;
 import org.apache.fineract.cob.service.InlineLoanCOBExecutorServiceImpl;
 import org.apache.fineract.cob.service.LoanAccountLockService;
 import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType;
@@ -55,6 +56,7 @@ public class LoanCOBFilterHelper {
     private final InlineLoanCOBExecutorServiceImpl 
inlineLoanCOBExecutorService;
     private final LoanRepository loanRepository;
     private final FineractProperties fineractProperties;
+    private final RetrieveLoanIdService retrieveLoanIdService;
 
     private final LoanRescheduleRequestRepository 
loanRescheduleRequestRepository;
 
@@ -128,8 +130,8 @@ public class LoanCOBFilterHelper {
     public boolean isLoanBehind(List<Long> loanIds) {
         List<LoanIdAndLastClosedBusinessDate> loanIdAndLastClosedBusinessDates 
= new ArrayList<>();
         List<List<Long>> partitions = Lists.partition(loanIds, 
fineractProperties.getQuery().getInClauseParameterSizeLimit());
-        partitions.forEach(partition -> 
loanIdAndLastClosedBusinessDates.addAll(loanRepository
-                
.findAllNonClosedLoansBehindByLoanIds(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE),
 partition)));
+        partitions.forEach(partition -> 
loanIdAndLastClosedBusinessDates.addAll(retrieveLoanIdService
+                
.retrieveLoanIdsBehindDate(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE),
 partition)));
         return CollectionUtils.isNotEmpty(loanIdAndLastClosedBusinessDates);
     }
 
diff --git 
a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/jobs/filter/LoanCOBApiFilterTest.java
 
b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/jobs/filter/LoanCOBApiFilterTest.java
index 8ddfdc10c..f99f300c0 100644
--- 
a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/jobs/filter/LoanCOBApiFilterTest.java
+++ 
b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/jobs/filter/LoanCOBApiFilterTest.java
@@ -41,6 +41,7 @@ import java.util.HashMap;
 import java.util.Optional;
 import java.util.UUID;
 import org.apache.fineract.cob.data.LoanIdAndLastClosedBusinessDate;
+import org.apache.fineract.cob.loan.RetrieveLoanIdService;
 import org.apache.fineract.cob.service.InlineLoanCOBExecutorServiceImpl;
 import org.apache.fineract.cob.service.LoanAccountLockService;
 import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType;
@@ -91,6 +92,8 @@ class LoanCOBApiFilterTest {
     private FineractProperties.FineractQueryProperties fineractQueryProperties;
     @Mock
     private LoanRescheduleRequestRepository loanRescheduleRequestRepository;
+    @Mock
+    private RetrieveLoanIdService retrieveLoanIdService;
 
     @BeforeEach
     public void setUp() {
@@ -157,9 +160,8 @@ class LoanCOBApiFilterTest {
         given(context.authenticatedUser()).willReturn(appUser);
         
given(fineractProperties.getQuery()).willReturn(fineractQueryProperties);
         
given(fineractQueryProperties.getInClauseParameterSizeLimit()).willReturn(65000);
-        given(loanRepository.findAllNonClosedLoansBehindOrNullByLoanIds(
-                
eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)), 
anyList()))
-                .willReturn(Collections.emptyList());
+        
given(retrieveLoanIdService.retrieveLoanIdsBehindDate(eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)),
+                anyList())).willReturn(Collections.emptyList());
 
         testObj.doFilterInternal(request, response, filterChain);
         verify(filterChain, times(1)).doFilter(request, response);
@@ -200,9 +202,8 @@ class LoanCOBApiFilterTest {
         given(context.authenticatedUser()).willReturn(appUser);
         
given(fineractProperties.getQuery()).willReturn(fineractQueryProperties);
         
given(fineractQueryProperties.getInClauseParameterSizeLimit()).willReturn(65000);
-        given(loanRepository.findAllNonClosedLoansBehindOrNullByLoanIds(
-                
eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)), 
anyList()))
-                .willReturn(Collections.emptyList());
+        
given(retrieveLoanIdService.retrieveLoanIdsBehindDate(eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)),
+                anyList())).willReturn(Collections.emptyList());
 
         testObj.doFilterInternal(request, response, filterChain);
         verify(filterChain, times(1)).doFilter(request, response);
@@ -228,9 +229,8 @@ class LoanCOBApiFilterTest {
         given(loanRepository.findIdByExternalId(any())).willReturn(2L);
         
given(fineractProperties.getQuery()).willReturn(fineractQueryProperties);
         
given(fineractQueryProperties.getInClauseParameterSizeLimit()).willReturn(65000);
-        given(loanRepository.findAllNonClosedLoansBehindOrNullByLoanIds(
-                
eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)), 
anyList()))
-                .willReturn(Collections.emptyList());
+        
given(retrieveLoanIdService.retrieveLoanIdsBehindDate(eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)),
+                anyList())).willReturn(Collections.emptyList());
 
         testObj.doFilterInternal(request, response, filterChain);
         verify(filterChain, times(1)).doFilter(request, response);
@@ -258,9 +258,8 @@ class LoanCOBApiFilterTest {
         
given(loanRescheduleRequestRepository.getLoanIdByRescheduleRequestId(resourceId)).willReturn(Optional.of(2L));
         given(context.authenticatedUser()).willReturn(appUser);
 
-        given(loanRepository.findAllNonClosedLoansBehindOrNullByLoanIds(
-                
eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)), 
anyList()))
-                .willReturn(Collections.emptyList());
+        
given(retrieveLoanIdService.retrieveLoanIdsBehindDate(eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)),
+                anyList())).willReturn(Collections.emptyList());
 
         testObj.doFilterInternal(request, response, filterChain);
         verify(filterChain, times(1)).doFilter(request, response);
@@ -288,9 +287,8 @@ class LoanCOBApiFilterTest {
         given(loanAccountLockService.isLoanHardLocked(2L)).willReturn(false);
         
given(fineractProperties.getQuery()).willReturn(fineractQueryProperties);
         
given(fineractQueryProperties.getInClauseParameterSizeLimit()).willReturn(65000);
-        given(loanRepository.findAllNonClosedLoansBehindByLoanIds(
-                
eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)), 
anyList()))
-                .willReturn(Collections.singletonList(result));
+        
given(retrieveLoanIdService.retrieveLoanIdsBehindDate(eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)),
+                anyList())).willReturn(Collections.singletonList(result));
         given(context.authenticatedUser()).willReturn(appUser);
 
         testObj.doFilterInternal(request, response, filterChain);
@@ -319,9 +317,8 @@ class LoanCOBApiFilterTest {
         given(loanAccountLockService.isLoanHardLocked(2L)).willReturn(false);
         
given(fineractProperties.getQuery()).willReturn(fineractQueryProperties);
         
given(fineractQueryProperties.getInClauseParameterSizeLimit()).willReturn(65000);
-        given(loanRepository.findAllNonClosedLoansBehindOrNullByLoanIds(
-                
eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)), 
anyList()))
-                .willReturn(Collections.emptyList());
+        
given(retrieveLoanIdService.retrieveLoanIdsBehindDate(eq(ThreadLocalContextUtil.getBusinessDateByType(BusinessDateType.COB_DATE)),
+                anyList())).willReturn(Collections.emptyList());
 
         given(context.authenticatedUser()).willReturn(appUser);
 

Reply via email to