| 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);
|