| Line 6... |
Line 6... |
| 6 |
import com.spice.profitmandi.dao.entity.catalog.Item;
|
6 |
import com.spice.profitmandi.dao.entity.catalog.Item;
|
| 7 |
import com.spice.profitmandi.dao.entity.catalog.TagListing;
|
7 |
import com.spice.profitmandi.dao.entity.catalog.TagListing;
|
| 8 |
import com.spice.profitmandi.dao.entity.dtr.GadgetCopsInsuranceCalc;
|
8 |
import com.spice.profitmandi.dao.entity.dtr.GadgetCopsInsuranceCalc;
|
| 9 |
import com.spice.profitmandi.dao.entity.user.Address;
|
9 |
import com.spice.profitmandi.dao.entity.user.Address;
|
| 10 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
10 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
| - |
|
11 |
import com.spice.profitmandi.dao.repository.catalog.ModelHotDealRepository;
|
| 11 |
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
|
12 |
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
|
| 12 |
import com.spice.profitmandi.dao.repository.dtr.GadgetCopsInsuranceCalcRepository;
|
13 |
import com.spice.profitmandi.dao.repository.dtr.GadgetCopsInsuranceCalcRepository;
|
| 13 |
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
|
14 |
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
|
| 14 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
|
15 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
|
| 15 |
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
|
16 |
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
|
| Line 22... |
Line 23... |
| 22 |
import org.apache.logging.log4j.Logger;
|
23 |
import org.apache.logging.log4j.Logger;
|
| 23 |
import org.springframework.beans.factory.annotation.Autowired;
|
24 |
import org.springframework.beans.factory.annotation.Autowired;
|
| 24 |
import org.springframework.beans.factory.annotation.Qualifier;
|
25 |
import org.springframework.beans.factory.annotation.Qualifier;
|
| 25 |
import org.springframework.stereotype.Component;
|
26 |
import org.springframework.stereotype.Component;
|
| 26 |
|
27 |
|
| - |
|
28 |
import java.time.LocalDate;
|
| 27 |
import java.util.*;
|
29 |
import java.util.*;
|
| 28 |
|
30 |
|
| 29 |
@Component
|
31 |
@Component
|
| 30 |
public class PricingServiceImpl implements PricingService{
|
32 |
public class PricingServiceImpl implements PricingService{
|
| 31 |
|
33 |
|
| Line 35... |
Line 37... |
| 35 |
@Autowired
|
37 |
@Autowired
|
| 36 |
private AddressRepository addressRepository;
|
38 |
private AddressRepository addressRepository;
|
| 37 |
|
39 |
|
| 38 |
@Autowired
|
40 |
@Autowired
|
| 39 |
private ItemRepository itemRepository;
|
41 |
private ItemRepository itemRepository;
|
| - |
|
42 |
|
| - |
|
43 |
@Autowired
|
| - |
|
44 |
private ModelHotDealRepository modelHotDealRepository;
|
| 40 |
|
45 |
|
| 41 |
@Autowired
|
46 |
@Autowired
|
| 42 |
private SchemeService schemeService;
|
47 |
private SchemeService schemeService;
|
| 43 |
|
48 |
|
| 44 |
@Autowired
|
49 |
@Autowired
|
| Line 153... |
Line 158... |
| 153 |
@Override
|
158 |
@Override
|
| 154 |
public Map<Integer, PriceModel> getMopPrices(Set<Integer> itemIds, int retailerId) throws ProfitMandiBusinessException {
|
159 |
public Map<Integer, PriceModel> getMopPrices(Set<Integer> itemIds, int retailerId) throws ProfitMandiBusinessException {
|
| 155 |
//Set Price with max value
|
160 |
//Set Price with max value
|
| 156 |
Map<Integer, PriceModel> itemPriceMap = this.preparePriceModelDefaultValues(itemIds);
|
161 |
Map<Integer, PriceModel> itemPriceMap = this.preparePriceModelDefaultValues(itemIds);
|
| 157 |
List<TagListing> tagListings = this.getTagListing(itemIds, retailerId);
|
162 |
List<TagListing> tagListings = this.getTagListing(itemIds, retailerId);
|
| - |
|
163 |
//Hot deals live in catalog.model_hot_deal (date-windowed), not tag_listing.hot_deals
|
| - |
|
164 |
Set<Integer> hotDealCatalogIds = modelHotDealRepository.selectActiveCatalogIds(LocalDate.now());
|
| 158 |
for(TagListing tagListing : tagListings){
|
165 |
for(TagListing tagListing : tagListings){
|
| 159 |
Item item = null;
|
166 |
Item item = null;
|
| 160 |
try {
|
167 |
try {
|
| 161 |
item = itemRepository.selectById(tagListing.getItemId());
|
168 |
item = itemRepository.selectById(tagListing.getItemId());
|
| 162 |
} catch (Exception e) {
|
169 |
} catch (Exception e) {
|
| Line 165... |
Line 172... |
| 165 |
}
|
172 |
}
|
| 166 |
PriceModel priceModel = itemPriceMap.get(tagListing.getItemId());
|
173 |
PriceModel priceModel = itemPriceMap.get(tagListing.getItemId());
|
| 167 |
//In case of hot deal mop is set to retailer buying price
|
174 |
//In case of hot deal mop is set to retailer buying price
|
| 168 |
priceModel.setPurchasePrice(tagListing.getSellingPrice());
|
175 |
priceModel.setPurchasePrice(tagListing.getSellingPrice());
|
| 169 |
priceModel.setMrp(tagListing.getMrp());
|
176 |
priceModel.setMrp(tagListing.getMrp());
|
| 170 |
if(tagListing.isHotDeals()) {
|
177 |
if(hotDealCatalogIds.contains(item.getCatalogItemId())) {
|
| 171 |
priceModel.setMop(true);
|
178 |
priceModel.setMop(true);
|
| 172 |
priceModel.setPrice(tagListing.getSellingPrice());
|
179 |
priceModel.setPrice(tagListing.getSellingPrice());
|
| 173 |
} else if (itemPriceMap.get(tagListing.getItemId()).getPrice() > tagListing.getMop()) {
|
180 |
} else if (itemPriceMap.get(tagListing.getItemId()).getPrice() > tagListing.getMop()) {
|
| 174 |
priceModel.setPrice(tagListing.getMop());
|
181 |
priceModel.setPrice(tagListing.getMop());
|
| 175 |
priceModel.setMop(true);
|
182 |
priceModel.setMop(true);
|