| Line 10... |
Line 10... |
| 10 |
import org.springframework.beans.factory.annotation.Autowired;
|
10 |
import org.springframework.beans.factory.annotation.Autowired;
|
| 11 |
import org.springframework.stereotype.Component;
|
11 |
import org.springframework.stereotype.Component;
|
| 12 |
|
12 |
|
| 13 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
13 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
| 14 |
import com.spice.profitmandi.common.model.ProfitMandiConstants;
|
14 |
import com.spice.profitmandi.common.model.ProfitMandiConstants;
|
| 15 |
import com.spice.profitmandi.dao.entity.catalog.PrivateDeal;
|
- |
|
| 16 |
import com.spice.profitmandi.dao.entity.catalog.TagListing;
|
15 |
import com.spice.profitmandi.dao.entity.catalog.TagListing;
|
| 17 |
import com.spice.profitmandi.dao.entity.dtr.GadgetCopsInsuranceCalc;
|
16 |
import com.spice.profitmandi.dao.entity.dtr.GadgetCopsInsuranceCalc;
|
| - |
|
17 |
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
|
| 18 |
import com.spice.profitmandi.dao.entity.user.Address;
|
18 |
import com.spice.profitmandi.dao.entity.user.Address;
|
| 19 |
import com.spice.profitmandi.dao.repository.catalog.PinCodeTagRepository;
|
19 |
import com.spice.profitmandi.dao.repository.catalog.PinCodeTagRepository;
|
| 20 |
import com.spice.profitmandi.dao.repository.catalog.PrivateDealRepository;
|
- |
|
| 21 |
import com.spice.profitmandi.dao.repository.catalog.RetailerTagRepository;
|
20 |
import com.spice.profitmandi.dao.repository.catalog.RetailerTagRepository;
|
| 22 |
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
|
21 |
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
|
| 23 |
import com.spice.profitmandi.dao.repository.dtr.GadgetCopsInsuranceCalcRepository;
|
22 |
import com.spice.profitmandi.dao.repository.dtr.GadgetCopsInsuranceCalcRepository;
|
| 24 |
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
|
23 |
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
|
| 25 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
|
24 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
|
| - |
|
25 |
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
|
| 26 |
import com.spice.profitmandi.dao.repository.user.AddressRepository;
|
26 |
import com.spice.profitmandi.dao.repository.user.AddressRepository;
|
| 27 |
import com.spice.profitmandi.service.tag.TagService;
|
27 |
import com.spice.profitmandi.service.tag.TagService;
|
| 28 |
|
28 |
|
| 29 |
@Component
|
29 |
@Component
|
| 30 |
public class PricingServiceImpl implements PricingService{
|
30 |
public class PricingServiceImpl implements PricingService{
|
| Line 52... |
Line 52... |
| 52 |
|
52 |
|
| 53 |
@Autowired
|
53 |
@Autowired
|
| 54 |
GadgetCopsInsuranceCalcRepository gadgetCopsInsuranceCalcRepository;
|
54 |
GadgetCopsInsuranceCalcRepository gadgetCopsInsuranceCalcRepository;
|
| 55 |
|
55 |
|
| 56 |
@Autowired
|
56 |
@Autowired
|
| 57 |
PrivateDealRepository privateDealRepository;
|
57 |
InventoryItemRepository inventoryItemRepository;
|
| 58 |
|
58 |
|
| 59 |
@Override
|
59 |
@Override
|
| 60 |
public Map<Integer, Float> getPrices(Set<Integer> itemIds, int retailerId) {
|
60 |
public Map<Integer, Float> getPrices(Set<Integer> itemIds, int retailerId) {
|
| 61 |
return getMopOrSellingPrice(itemIds, retailerId, false);
|
61 |
return getMopOrSellingPrice(itemIds, retailerId, false);
|
| 62 |
}
|
62 |
}
|
| Line 133... |
Line 133... |
| 133 |
}else{
|
133 |
}else{
|
| 134 |
throw new ProfitMandiBusinessException(ProfitMandiConstants.PROVIDER_NAME, providerName, "");
|
134 |
throw new ProfitMandiBusinessException(ProfitMandiConstants.PROVIDER_NAME, providerName, "");
|
| 135 |
}
|
135 |
}
|
| 136 |
return pricesMap;
|
136 |
return pricesMap;
|
| 137 |
}
|
137 |
}
|
| 138 |
|
138 |
|
| 139 |
@Override
|
139 |
@Override
|
| 140 |
public Map<Integer, Float> getPrivateDealPrices(Set<Integer> itemIds) {
|
140 |
public Map<Integer, Float> getPurchasePrices(Set<Integer> itemIds, int retailerId) {
|
| 141 |
List<PrivateDeal> privateDeals = privateDealRepository.selectByItemIds(itemIds);
|
141 |
Map<Integer, Float> purchasePriceMap = this.preparePriceDefaultValues(itemIds);
|
| 142 |
Map<Integer, Float> privateDealsPriceMap = new HashMap<>();
|
142 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByFofoIdItemIds(retailerId, itemIds);
|
| 143 |
for(PrivateDeal privateDeal : privateDeals){
|
143 |
for(InventoryItem inventoryItem : inventoryItems){
|
| - |
|
144 |
if(inventoryItem.getUnitPrice() < purchasePriceMap.get(inventoryItem.getUnitPrice())){
|
| 144 |
privateDealsPriceMap.put(privateDeal.getItemId(), privateDeal.getDealPrice());
|
145 |
purchasePriceMap.put(inventoryItem.getItemId(), inventoryItem.getUnitPrice());
|
| - |
|
146 |
}
|
| 145 |
}
|
147 |
}
|
| 146 |
return privateDealsPriceMap;
|
148 |
return purchasePriceMap;
|
| 147 |
}
|
149 |
}
|
| 148 |
|
150 |
|
| 149 |
@Override
|
151 |
@Override
|
| 150 |
public Map<Integer, Float> getPrivateDealPriceMopPriceNotFound(Set<Integer> itemIds, int retailerId) {
|
152 |
public Map<Integer, Float> getPurchasePriceMopPriceNotFound(Set<Integer> itemIds, int retailerId) {
|
| 151 |
Map<Integer, Float> mopPriceMap = this.getMopPrices(itemIds, retailerId);
|
153 |
Map<Integer, Float> mopPriceMap = this.getMopPrices(itemIds, retailerId);
|
| 152 |
boolean fetchPrivateDealPrice = false;
|
154 |
boolean fetchPurchasePrice = false;
|
| 153 |
for(Map.Entry<Integer, Float> entry : mopPriceMap.entrySet()){
|
155 |
for(Map.Entry<Integer, Float> entry : mopPriceMap.entrySet()){
|
| 154 |
if(entry.getValue() == Float.MAX_VALUE){
|
156 |
if(entry.getValue() == Float.MAX_VALUE){
|
| 155 |
fetchPrivateDealPrice = true;
|
157 |
fetchPurchasePrice = true;
|
| 156 |
break;
|
158 |
break;
|
| 157 |
}
|
159 |
}
|
| 158 |
}
|
160 |
}
|
| 159 |
if(fetchPrivateDealPrice){
|
161 |
if(fetchPurchasePrice){
|
| 160 |
Map<Integer, Float> privateDealsPriceMap = this.getPrivateDealPrices(itemIds);
|
162 |
Map<Integer, Float> privateDealsPriceMap = this.getPurchasePrices(itemIds, retailerId);
|
| 161 |
for(Map.Entry<Integer, Float> entry : mopPriceMap.entrySet()){
|
163 |
for(Map.Entry<Integer, Float> entry : mopPriceMap.entrySet()){
|
| 162 |
if(entry.getValue() == Float.MAX_VALUE){
|
164 |
if(entry.getValue() == Float.MAX_VALUE){
|
| 163 |
entry.setValue(privateDealsPriceMap.get(entry.getKey()));
|
165 |
entry.setValue(privateDealsPriceMap.get(entry.getKey()));
|
| 164 |
}
|
166 |
}
|
| 165 |
}
|
167 |
}
|