| Line 275... |
Line 275... |
| 275 |
|
275 |
|
| 276 |
}
|
276 |
}
|
| 277 |
|
277 |
|
| 278 |
|
278 |
|
| 279 |
|
279 |
|
| 280 |
private Map<Integer, Integer> toInventoryItemIdFofoOrderMap(List<FofoLineItem> fofoLineItems, Map<Integer, FofoOrderItem> fofoOrderItemIdFofoOrderItemMap){
|
280 |
private Map<Integer, Integer> toInventoryItemIdFofoOrderIdMap(List<FofoLineItem> fofoLineItems, Map<Integer, FofoOrderItem> fofoOrderItemIdFofoOrderItemMap){
|
| 281 |
Map<Integer, Integer> inventoryItemIdFofoOrderIdMap = new HashMap<>();
|
281 |
Map<Integer, Integer> inventoryItemIdFofoOrderIdMap = new HashMap<>();
|
| 282 |
|
282 |
|
| 283 |
for(FofoLineItem fofoLineItem : fofoLineItems){
|
283 |
for(FofoLineItem fofoLineItem : fofoLineItems){
|
| 284 |
inventoryItemIdFofoOrderIdMap.put(
|
284 |
inventoryItemIdFofoOrderIdMap.put(
|
| 285 |
fofoLineItem.getInventoryItemId(),
|
285 |
fofoLineItem.getInventoryItemId(),
|
| Line 293... |
Line 293... |
| 293 |
|
293 |
|
| 294 |
Map<Integer, FofoOrderItem> fofoOrderItemIdFofoOrderItemMap = this.toFofoOrderItemIdFofoOrderItemMap(fofoOrderItems);
|
294 |
Map<Integer, FofoOrderItem> fofoOrderItemIdFofoOrderItemMap = this.toFofoOrderItemIdFofoOrderItemMap(fofoOrderItems);
|
| 295 |
|
295 |
|
| 296 |
List<FofoLineItem> fofoLineItems = fofoLineItemRepository.selectByFofoOrderItemIds(fofoOrderItemIdFofoOrderItemMap.keySet());
|
296 |
List<FofoLineItem> fofoLineItems = fofoLineItemRepository.selectByFofoOrderItemIds(fofoOrderItemIdFofoOrderItemMap.keySet());
|
| 297 |
|
297 |
|
| 298 |
Map<Integer, Integer> inventoryItemIdFofoOrderIdMap = this.toInventoryItemIdFofoOrderMap(fofoLineItems, fofoOrderItemIdFofoOrderItemMap);
|
298 |
Map<Integer, Integer> inventoryItemIdFofoOrderIdMap = this.toInventoryItemIdFofoOrderIdMap(fofoLineItems, fofoOrderItemIdFofoOrderItemMap);
|
| 299 |
|
299 |
|
| 300 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByIds(inventoryItemIdFofoOrderIdMap.keySet());
|
300 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByIds(inventoryItemIdFofoOrderIdMap.keySet());
|
| 301 |
|
301 |
|
| 302 |
List<Integer> itemIds = schemeItemRepository.selectItemIdsBySchemeId(scheme.getId());
|
302 |
List<Integer> itemIds = schemeItemRepository.selectItemIdsBySchemeId(scheme.getId());
|
| 303 |
|
303 |
|
| Line 305... |
Line 305... |
| 305 |
|
305 |
|
| 306 |
|
306 |
|
| 307 |
if(scheme.isRetailerAll()){
|
307 |
if(scheme.isRetailerAll()){
|
| 308 |
for(InventoryItem inventoryItem : completedInventoryItems){
|
308 |
for(InventoryItem inventoryItem : completedInventoryItems){
|
| 309 |
float cashback = this.createSchemeInOut(scheme, inventoryItem);
|
309 |
float cashback = this.createSchemeInOut(scheme, inventoryItem);
|
| 310 |
walletService.addAmountToWallet(inventoryItem.getFofoId(), inventoryItem.getPurchaseId(), WalletReferenceType.SCHEME_IN, "Added for SCHEME_IN", cashback);
|
310 |
walletService.addAmountToWallet(inventoryItem.getFofoId(), inventoryItem.getPurchaseId(), WalletReferenceType.SCHEME_OUT, "Added for SCHEME_OUT", cashback);
|
| 311 |
}
|
311 |
}
|
| 312 |
}else{
|
312 |
}else{
|
| 313 |
List<Integer> retailerIds = retailerSchemeRepository.selectRetailerIdsBySchemeId(scheme.getId());
|
313 |
List<Integer> retailerIds = retailerSchemeRepository.selectRetailerIdsBySchemeId(scheme.getId());
|
| 314 |
for(InventoryItem inventoryItem : completedInventoryItems){
|
314 |
for(InventoryItem inventoryItem : completedInventoryItems){
|
| 315 |
if(retailerIds.contains(inventoryItem.getFofoId())){
|
315 |
if(retailerIds.contains(inventoryItem.getFofoId())){
|
| 316 |
float cashback = this.createSchemeInOut(scheme, inventoryItem);
|
316 |
float cashback = this.createSchemeInOut(scheme, inventoryItem);
|
| 317 |
walletService.addAmountToWallet(inventoryItem.getFofoId(), inventoryItemIdFofoOrderIdMap.get(inventoryItem.getId()), WalletReferenceType.SCHEME_IN, "Added for SCHEME_IN", cashback);
|
317 |
walletService.addAmountToWallet(inventoryItem.getFofoId(), inventoryItemIdFofoOrderIdMap.get(inventoryItem.getId()), WalletReferenceType.SCHEME_OUT, "Added for SCHEME_OUT", cashback);
|
| 318 |
}
|
318 |
}
|
| 319 |
}
|
319 |
}
|
| 320 |
}
|
320 |
}
|
| 321 |
}
|
321 |
}
|
| 322 |
|
322 |
|
| Line 331... |
Line 331... |
| 331 |
private List<InventoryItem> toFilteredPurchaseCompletedInventoryItems(List<InventoryItem> inventoryItems, List<Integer> itemIds, boolean purchase){
|
331 |
private List<InventoryItem> toFilteredPurchaseCompletedInventoryItems(List<InventoryItem> inventoryItems, List<Integer> itemIds, boolean purchase){
|
| 332 |
List<InventoryItem> completedInventoryItems = new ArrayList<>();
|
332 |
List<InventoryItem> completedInventoryItems = new ArrayList<>();
|
| 333 |
for(InventoryItem inventoryItem : inventoryItems){
|
333 |
for(InventoryItem inventoryItem : inventoryItems){
|
| 334 |
if(purchase && inventoryItem.getPurchase().getCompleteTimestamp() != null && itemIds.contains(inventoryItem.getItemId())){
|
334 |
if(purchase && inventoryItem.getPurchase().getCompleteTimestamp() != null && itemIds.contains(inventoryItem.getItemId())){
|
| 335 |
completedInventoryItems.add(inventoryItem);
|
335 |
completedInventoryItems.add(inventoryItem);
|
| 336 |
}else if(itemIds.contains(inventoryItem.getItemId())){
|
336 |
}else if(!purchase && itemIds.contains(inventoryItem.getItemId())){
|
| 337 |
|
337 |
completedInventoryItems.add(inventoryItem);
|
| 338 |
}
|
338 |
}
|
| 339 |
}
|
339 |
}
|
| 340 |
return completedInventoryItems;
|
340 |
return completedInventoryItems;
|
| 341 |
}
|
341 |
}
|
| 342 |
|
342 |
|
| 343 |
//private List<InventoryItem> to
|
- |
|
| 344 |
|
- |
|
| 345 |
@Override
|
343 |
@Override
|
| 346 |
public void expireSchemeById(int schemeId) throws ProfitMandiBusinessException {
|
344 |
public void expireSchemeById(int schemeId) throws ProfitMandiBusinessException {
|
| 347 |
Scheme scheme = schemeRepository.selectById(schemeId);
|
345 |
Scheme scheme = schemeRepository.selectById(schemeId);
|
| 348 |
if(scheme.getActiveTimestamp() == null){
|
346 |
if(scheme.getActiveTimestamp() == null){
|
| 349 |
throw new ProfitMandiBusinessException(ProfitMandiConstants.ACTIVE_TIMESTAMP, scheme.getActiveTimestamp(), "SCHM_1007");
|
347 |
throw new ProfitMandiBusinessException(ProfitMandiConstants.ACTIVE_TIMESTAMP, scheme.getActiveTimestamp(), "SCHM_1007");
|
| Line 625... |
Line 623... |
| 625 |
if(totalCashback > 0){
|
623 |
if(totalCashback > 0){
|
| 626 |
walletService.addAmountToWallet(retailerId, fofoOrderId, WalletReferenceType.SCHEME_OUT, "Added for SCHEME_OUT", totalCashback);
|
624 |
walletService.addAmountToWallet(retailerId, fofoOrderId, WalletReferenceType.SCHEME_OUT, "Added for SCHEME_OUT", totalCashback);
|
| 627 |
}
|
625 |
}
|
| 628 |
return totalCashback;
|
626 |
return totalCashback;
|
| 629 |
}
|
627 |
}
|
| 630 |
|
628 |
|
| 631 |
}
|
629 |
}
|