Subversion Repositories SmartDukaan

Rev

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

Rev 31747 Rev 31748
Line 9... Line 9...
9
import com.spice.profitmandi.dao.entity.catalog.Offer;
9
import com.spice.profitmandi.dao.entity.catalog.Offer;
10
import com.spice.profitmandi.dao.entity.catalog.TagListing;
10
import com.spice.profitmandi.dao.entity.catalog.TagListing;
11
import com.spice.profitmandi.dao.entity.catalog.TargetSlab;
11
import com.spice.profitmandi.dao.entity.catalog.TargetSlab;
12
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
12
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
13
import com.spice.profitmandi.dao.entity.fofo.OfferPayout;
13
import com.spice.profitmandi.dao.entity.fofo.OfferPayout;
-
 
14
import com.spice.profitmandi.dao.entity.fofo.Purchase;
14
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
15
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
15
import com.spice.profitmandi.dao.enumuration.catalog.AmountType;
16
import com.spice.profitmandi.dao.enumuration.catalog.AmountType;
16
import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;
17
import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;
17
import com.spice.profitmandi.dao.enumuration.transaction.SchemePayoutStatus;
18
import com.spice.profitmandi.dao.enumuration.transaction.SchemePayoutStatus;
18
import com.spice.profitmandi.dao.model.CreateOfferRequest;
19
import com.spice.profitmandi.dao.model.CreateOfferRequest;
19
import com.spice.profitmandi.dao.model.ItemCriteriaPayout;
20
import com.spice.profitmandi.dao.model.ItemCriteriaPayout;
20
import com.spice.profitmandi.dao.repository.catalog.*;
21
import com.spice.profitmandi.dao.repository.catalog.*;
21
import com.spice.profitmandi.dao.repository.fofo.OfferPayoutRepository;
22
import com.spice.profitmandi.dao.repository.fofo.OfferPayoutRepository;
-
 
23
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
22
import com.spice.profitmandi.service.user.RetailerService;
24
import com.spice.profitmandi.service.user.RetailerService;
23
import com.spice.profitmandi.service.wallet.WalletService;
25
import com.spice.profitmandi.service.wallet.WalletService;
24
import in.shop2020.model.v1.order.WalletReferenceType;
26
import in.shop2020.model.v1.order.WalletReferenceType;
25
import org.apache.logging.log4j.LogManager;
27
import org.apache.logging.log4j.LogManager;
26
import org.apache.logging.log4j.Logger;
28
import org.apache.logging.log4j.Logger;
Line 77... Line 79...
77
    @Autowired
79
    @Autowired
78
    CacheManager thirtyMinsTimeOutCacheManager;
80
    CacheManager thirtyMinsTimeOutCacheManager;
79
 
81
 
80
 
82
 
81
    private static final Logger LOGGER = LogManager.getLogger(OfferServiceImpl.class);
83
    private static final Logger LOGGER = LogManager.getLogger(OfferServiceImpl.class);
-
 
84
    private PurchaseRepository purchaseRepository;
82
 
85
 
83
    @Override
86
    @Override
84
    public void addOfferService(CreateOfferRequest createOfferRequest) throws ProfitMandiBusinessException {
87
    public void addOfferService(CreateOfferRequest createOfferRequest) throws ProfitMandiBusinessException {
85
        LOGGER.info("createOfferRequest  -- {}", createOfferRequest);
88
        LOGGER.info("createOfferRequest  -- {}", createOfferRequest);
86
        this.createOffer(createOfferRequest);
89
        this.createOffer(createOfferRequest);
Line 243... Line 246...
243
    private WalletService walletService;
246
    private WalletService walletService;
244
 
247
 
245
    @Override
248
    @Override
246
    public void reverseAdditionalSelloutSchemes(int fofoId, List<InventoryItem> inventoryItems) throws ProfitMandiBusinessException {
249
    public void reverseAdditionalSelloutSchemes(int fofoId, List<InventoryItem> inventoryItems) throws ProfitMandiBusinessException {
247
        List<OfferPayout> offerPayouts = new ArrayList<>();
250
        List<OfferPayout> offerPayouts = new ArrayList<>();
-
 
251
        LOGGER.info("Reversing schemes for fofoId {}, InventoryItems {}", fofoId, inventoryItems);
248
        //As of now we are not handling non-serialised items
252
        //As of now we are not handling non-serialised items
249
        inventoryItems = inventoryItems.stream().filter(x -> x.getSerialNumber() != null).collect(Collectors.toList());
253
        inventoryItems = inventoryItems.stream().filter(x -> x.getSerialNumber() != null).collect(Collectors.toList());
-
 
254
        Purchase purchase = purchaseRepository.selectById(inventoryItems.get(0).getPurchaseId());
250
        for (InventoryItem inventoryItem : inventoryItems) {
255
        for (InventoryItem inventoryItem : inventoryItems) {
251
            offerPayouts.addAll(offerPayoutRepository.selectAllBySerialNumber(inventoryItem.getFofoId(), inventoryItem.getSerialNumber())
256
            offerPayouts.addAll(offerPayoutRepository.selectAllBySerialNumber(inventoryItem.getFofoId(), inventoryItem.getSerialNumber())
252
                    .stream()
257
                    .stream()
253
                    .filter(x -> x.getRejectTimestamp() == null)
258
                    .filter(x -> x.getRejectTimestamp() == null)
254
                    .collect(Collectors.toList()));
259
                    .collect(Collectors.toList()));
Line 261... Line 266...
261
        for (Map.Entry<Long, Double> offerPayoutEntry : offerPayoutAmountMap.entrySet()) {
266
        for (Map.Entry<Long, Double> offerPayoutEntry : offerPayoutAmountMap.entrySet()) {
262
            List<UserWalletHistory> histories = walletService.getAllByReference(fofoId, offerPayoutEntry.getKey().intValue(), WalletReferenceType.ADDITIONAL_SCHEME);
267
            List<UserWalletHistory> histories = walletService.getAllByReference(fofoId, offerPayoutEntry.getKey().intValue(), WalletReferenceType.ADDITIONAL_SCHEME);
263
            if (histories.size() > 0) {
268
            if (histories.size() > 0) {
264
 
269
 
265
                walletService.rollbackAmountFromWallet(fofoId, offerPayoutEntry.getValue().floatValue(), offerPayoutEntry.getKey().intValue(),
270
                walletService.rollbackAmountFromWallet(fofoId, offerPayoutEntry.getValue().floatValue(), offerPayoutEntry.getKey().intValue(),
266
                        WalletReferenceType.ADDITIONAL_SCHEME, "Imeis for corresponding schemes are returned", LocalDateTime.now());
271
                        WalletReferenceType.ADDITIONAL_SCHEME, "Models/Imeis for corresponding schemes were returned", LocalDateTime.now());
267
            }
272
            }
268
        }
273
        }
269
    }
274
    }
270
 
275
 
271
    private void createTargetSlabs(CreateOfferRequest createOfferRequest) throws ProfitMandiBusinessException {
276
    private void createTargetSlabs(CreateOfferRequest createOfferRequest) throws ProfitMandiBusinessException {