Subversion Repositories SmartDukaan

Rev

Rev 36051 | Rev 36305 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 36051 Rev 36103
Line 370... Line 370...
370
                }
370
                }
371
            }
371
            }
372
        }
372
        }
373
    }
373
    }
374
 
374
 
-
 
375
    @Override
-
 
376
    public void restoreAdditionalSelloutSchemes(List<InventoryItem> inventoryItems, String restoreReason)
-
 
377
            throws ProfitMandiBusinessException {
-
 
378
        Map<Integer, List<InventoryItem>> fofoInventoryItemsMap = inventoryItems.stream()
-
 
379
                .collect(Collectors.groupingBy(InventoryItem::getFofoId));
-
 
380
        for (Map.Entry<Integer, List<InventoryItem>> entry : fofoInventoryItemsMap.entrySet()) {
-
 
381
            int fofoId = entry.getKey();
-
 
382
            List<InventoryItem> partnerItems = entry.getValue();
-
 
383
 
-
 
384
            List<InventoryItem> serializedItems = partnerItems.stream()
-
 
385
                    .filter(x -> x.getSerialNumber() != null)
-
 
386
                    .collect(Collectors.toList());
-
 
387
            if (!serializedItems.isEmpty()) {
-
 
388
                Set<String> serialNumbers = serializedItems.stream()
-
 
389
                        .map(InventoryItem::getSerialNumber).collect(Collectors.toSet());
-
 
390
                List<OfferPayout> offerPayouts = offerPayoutRepository
-
 
391
                        .selectAllBySerialNumbers(fofoId, serialNumbers).stream()
-
 
392
                        .filter(x -> x.getRejectTimestamp() != null
-
 
393
                                && SchemePayoutStatus.REJECTED.equals(x.getStatus()))
-
 
394
                        .collect(Collectors.toList());
-
 
395
 
-
 
396
                for (OfferPayout offerPayout : offerPayouts) {
-
 
397
                    offerPayout.setStatus(SchemePayoutStatus.CREDITED);
-
 
398
                    offerPayout.setRejectTimestamp(null);
-
 
399
                }
-
 
400
 
-
 
401
                Map<Long, Double> offerPayoutAmountMap = offerPayouts.stream()
-
 
402
                        .collect(Collectors.groupingBy(OfferPayout::getOfferId,
-
 
403
                                Collectors.summingDouble(OfferPayout::getAmount)));
-
 
404
                for (Map.Entry<Long, Double> offerEntry : offerPayoutAmountMap.entrySet()) {
-
 
405
                    if (offerEntry.getValue() > 0) {
-
 
406
                        walletService.addAmountToWallet(fofoId, offerEntry.getKey().intValue(),
-
 
407
                                WalletReferenceType.ADDITIONAL_SCHEME, restoreReason,
-
 
408
                                offerEntry.getValue().floatValue(), LocalDateTime.now());
-
 
409
                    }
-
 
410
                }
-
 
411
            }
-
 
412
        }
-
 
413
    }
-
 
414
 
375
    private void createTargetSlabs(CreateOfferRequest createOfferRequest) throws ProfitMandiBusinessException {
415
    private void createTargetSlabs(CreateOfferRequest createOfferRequest) throws ProfitMandiBusinessException {
376
        List<com.spice.profitmandi.dao.model.TargetSlab> targetSlabs = createOfferRequest.getTargetSlabs().stream()
416
        List<com.spice.profitmandi.dao.model.TargetSlab> targetSlabs = createOfferRequest.getTargetSlabs().stream()
377
                .filter(x -> x.validate()).collect(Collectors.toList());
417
                .filter(x -> x.validate()).collect(Collectors.toList());
378
        if (!targetSlabs.isEmpty()) {
418
        if (!targetSlabs.isEmpty()) {
379
            Collections.sort(targetSlabs);
419
            Collections.sort(targetSlabs);