Subversion Repositories SmartDukaan

Rev

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

Rev 25616 Rev 25694
Line 127... Line 127...
127
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
127
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
128
import com.spice.profitmandi.dao.repository.transaction.UserWalletHistoryRepository;
128
import com.spice.profitmandi.dao.repository.transaction.UserWalletHistoryRepository;
129
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
129
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
130
import com.spice.profitmandi.dao.repository.user.AddressRepository;
130
import com.spice.profitmandi.dao.repository.user.AddressRepository;
131
import com.spice.profitmandi.service.PartnerInvestmentService;
131
import com.spice.profitmandi.service.PartnerInvestmentService;
-
 
132
import com.spice.profitmandi.service.integrations.toffee.ToffeeService;
132
import com.spice.profitmandi.service.inventory.InventoryService;
133
import com.spice.profitmandi.service.inventory.InventoryService;
133
import com.spice.profitmandi.service.order.OrderService;
134
import com.spice.profitmandi.service.order.OrderService;
134
import com.spice.profitmandi.service.pricing.PriceDropService;
135
import com.spice.profitmandi.service.pricing.PriceDropService;
135
import com.spice.profitmandi.service.recharge.provider.OxigenRechargeProviderService;
136
import com.spice.profitmandi.service.recharge.provider.OxigenRechargeProviderService;
136
import com.spice.profitmandi.service.recharge.provider.ThinkWalnutDigitalRechargeProviderService;
137
import com.spice.profitmandi.service.recharge.provider.ThinkWalnutDigitalRechargeProviderService;
Line 162... Line 163...
162
	private PriceDropService priceDropService;
163
	private PriceDropService priceDropService;
163
 
164
 
164
	@Autowired
165
	@Autowired
165
	private CsService csService;
166
	private CsService csService;
166
 
167
 
-
 
168
	@Autowired
-
 
169
	private ToffeeService toffeeService;
-
 
170
 
167
	@Value("${oxigen.recharge.auth.key}")
171
	@Value("${oxigen.recharge.auth.key}")
168
	private String oxigenRechargeAuthKey;
172
	private String oxigenRechargeAuthKey;
169
 
173
 
170
	@Value("${oxigen.recharge.validation.url}")
174
	@Value("${oxigen.recharge.validation.url}")
171
	private String oxigenRechargeValidationUrl;
175
	private String oxigenRechargeValidationUrl;
Line 1453... Line 1457...
1453
	public void grouping() throws Exception {
1457
	public void grouping() throws Exception {
1454
		DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MM-dd-yyyy hh:mm");
1458
		DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MM-dd-yyyy hh:mm");
1455
		List<PriceDropIMEI> priceDropImeis = priceDropIMEIRepository.selectByStatus(PriceDropImeiStatus.APPROVED);
1459
		List<PriceDropIMEI> priceDropImeis = priceDropIMEIRepository.selectByStatus(PriceDropImeiStatus.APPROVED);
1456
		System.out.println(String.join("\t",
1460
		System.out.println(String.join("\t",
1457
				Arrays.asList("IMEI", "ItemId", "Brand", "Model Name", "Model Number", "Franchise Id", "Franchise Name",
1461
				Arrays.asList("IMEI", "ItemId", "Brand", "Model Name", "Model Number", "Franchise Id", "Franchise Name",
1458
						"Grn On", "Price Dropped On", "Approved On", "Returned On","Price Drop Paid",  "Is Doa")));
1462
						"Grn On", "Price Dropped On", "Approved On", "Returned On", "Price Drop Paid", "Is Doa")));
1459
		Map<Integer, CustomRetailer> retailersMap = retailerService.getFofoRetailers();
1463
		Map<Integer, CustomRetailer> retailersMap = retailerService.getFofoRetailers();
1460
		for (PriceDropIMEI priceDropIMEI : priceDropImeis) {
1464
		for (PriceDropIMEI priceDropIMEI : priceDropImeis) {
1461
			if(priceDropIMEI.getPartnerId()==0) continue;
1465
			if (priceDropIMEI.getPartnerId() == 0)
-
 
1466
				continue;
1462
			HashSet<String> imeis = new HashSet<>();
1467
			HashSet<String> imeis = new HashSet<>();
1463
			PriceDrop priceDrop = priceDropRepository.selectById(priceDropIMEI.getPriceDropId());
1468
			PriceDrop priceDrop = priceDropRepository.selectById(priceDropIMEI.getPriceDropId());
1464
			imeis.add(priceDropIMEI.getImei());
1469
			imeis.add(priceDropIMEI.getImei());
1465
			List<InventoryItem> inventoryItems = inventoryItemRepository
1470
			List<InventoryItem> inventoryItems = inventoryItemRepository
1466
					.selectByFofoIdSerialNumbers(priceDropIMEI.getPartnerId(), imeis, false);
1471
					.selectByFofoIdSerialNumbers(priceDropIMEI.getPartnerId(), imeis, false);
1467
			if(inventoryItems.size() == 0) {
1472
			if (inventoryItems.size() == 0) {
1468
				LOGGER.info("Need to investigate partnerId - {} imeis - {}" , priceDropIMEI.getPartnerId(), imeis);
1473
				LOGGER.info("Need to investigate partnerId - {} imeis - {}", priceDropIMEI.getPartnerId(), imeis);
1469
				continue;
1474
				continue;
1470
			}
1475
			}
1471
			InventoryItem inventoryItem = inventoryItems.get(0);
1476
			InventoryItem inventoryItem = inventoryItems.get(0);
1472
			CustomRetailer customRetailer = retailersMap.get(inventoryItem.getFofoId());
1477
			CustomRetailer customRetailer = retailersMap.get(inventoryItem.getFofoId());
1473
			if (inventoryItem.getLastScanType().equals(ScanType.DOA_OUT)
1478
			if (inventoryItem.getLastScanType().equals(ScanType.DOA_OUT)
Line 1481... Line 1486...
1481
							Arrays.asList(priceDropIMEI.getImei(), inventoryItem.getItemId() + "", item.getBrand(),
1486
							Arrays.asList(priceDropIMEI.getImei(), inventoryItem.getItemId() + "", item.getBrand(),
1482
									item.getModelName(), item.getModelNumber(), inventoryItem.getFofoId() + "",
1487
									item.getModelName(), item.getModelNumber(), inventoryItem.getFofoId() + "",
1483
									customRetailer.getBusinessName(), inventoryItem.getCreateTimestamp().format(dtf),
1488
									customRetailer.getBusinessName(), inventoryItem.getCreateTimestamp().format(dtf),
1484
									priceDrop.getAffectedOn().format(dtf),
1489
									priceDrop.getAffectedOn().format(dtf),
1485
									priceDropIMEI.getUpdateTimestamp().format(dtf),
1490
									priceDropIMEI.getUpdateTimestamp().format(dtf),
1486
									inventoryItem.getUpdateTimestamp().format(dtf),
1491
									inventoryItem.getUpdateTimestamp().format(dtf), priceDrop.getPartnerPayout() + "",
1487
									priceDrop.getPartnerPayout() + "",
-
 
1488
									inventoryItem.getLastScanType().equals(ScanType.DOA_OUT) + "")));
1492
									inventoryItem.getLastScanType().equals(ScanType.DOA_OUT) + "")));
1489
				}
1493
				}
1490
			}
1494
			}
1491
		}
1495
		}
1492
		/*
1496
		/*
Line 1506... Line 1510...
1506
		 * csService.getAuthUserPartnerEmailMapping().entrySet()) {
1510
		 * csService.getAuthUserPartnerEmailMapping().entrySet()) {
1507
		 * System.out.println(storeGuyEntry.getKey() + " = " +
1511
		 * System.out.println(storeGuyEntry.getKey() + " = " +
1508
		 * storeGuyEntry.getValue()); }
1512
		 * storeGuyEntry.getValue()); }
1509
		 */
1513
		 */
1510
	}
1514
	}
-
 
1515
 
-
 
1516
	public void testToffee() throws Exception {
-
 
1517
		LOGGER.info("{}", toffeeService.getAuthToken());
-
 
1518
		LOGGER.info("{}", toffeeService.getProducts());
-
 
1519
		LOGGER.info("{}", toffeeService.getPincodes("36103000PR"));
-
 
1520
	}
-
 
1521
 
-
 
1522
	public void schemeRollback(List<String> schemeIds) throws Exception {
-
 
1523
		List<Integer> schemeIdsInt = schemeIds.stream().map(x -> Integer.parseInt(x)).collect(Collectors.toList());
-
 
1524
		Map<Integer, Scheme> schemesMap = schemeRepository.selectBySchemeIds(schemeIdsInt, 0, 0).stream()
-
 
1525
				.collect(Collectors.toMap(x -> x.getId(), x -> x));
-
 
1526
		List<SchemeInOut> schemeInOuts = schemeInOutRepository.selectBySchemeIds(new HashSet<>(schemeIdsInt));
-
 
1527
		for (SchemeInOut sio : schemeInOuts) {
-
 
1528
			Scheme scheme = schemesMap.get(sio.getSchemeId());
-
 
1529
			if (scheme.getType().equals(SchemeType.IN)) {
-
 
1530
 
-
 
1531
			} else if (scheme.getType().equals(SchemeType.OUT)) {
-
 
1532
				InventoryItem inventoryItem = inventoryItemRepository.selectById(sio.getInventoryItemId());
-
 
1533
				List<ScanRecord> sr = scanRecordRepository.selectByInventoryItemId(sio.getInventoryItemId());
-
 
1534
				ScanRecord scanRecord = sr.stream().filter(x -> x.getType().equals(ScanType.SALE))
-
 
1535
						.max((x1, x2) -> x1.getCreateTimestamp().compareTo(x2.getCreateTimestamp())).get();
-
 
1536
				if (scanRecord.getCreateTimestamp().isAfter(scheme.getEndDateTime())
-
 
1537
						|| scanRecord.getCreateTimestamp().isBefore(scheme.getStartDateTime())) {
-
 
1538
					sio.setRolledBackTimestamp(LocalDateTime.now());
-
 
1539
					FofoOrder fofoOrder = fofoOrderRepository.selectByOrderId(scanRecord.getOrderId());
-
 
1540
					String rollbackReason = "Scheme rolledback twice for "
-
 
1541
							+ itemRepository.selectById(inventoryItem.getItemId()).getItemDescription() + "/"
-
 
1542
							+ fofoOrder.getInvoiceNumber();
-
 
1543
					walletService.rollbackAmountFromWallet(scanRecord.getFofoId(), sio.getAmount(),
-
 
1544
							scanRecord.getOrderId(), WalletReferenceType.SCHEME_OUT, rollbackReason);
-
 
1545
					System.out.printf("Amount %f,SchemeId %d,Reason %s\n", sio.getAmount(), sio.getSchemeId(),
-
 
1546
							rollbackReason);
-
 
1547
				}
-
 
1548
			}
-
 
1549
		}
-
 
1550
		throw new Exception();
-
 
1551
	}
1511
}
1552
}