Subversion Repositories SmartDukaan

Rev

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

Rev 22243 Rev 22251
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
			}