| Line 1... |
Line 1... |
| 1 |
from bson.objectid import ObjectId
|
1 |
from bson.objectid import ObjectId
|
| 2 |
from datetime import datetime, timedelta
|
2 |
from datetime import datetime, timedelta
|
| 3 |
from dtr.config import PythonPropertyReader
|
3 |
from dtr.config import PythonPropertyReader
|
| 4 |
from dtr.dao import FeaturedDeals, AppTransactions, AppOfferObj
|
4 |
from dtr.dao import FeaturedDeals, AppTransactions, AppOfferObj, Promotion
|
| 5 |
from dtr.storage import DataService
|
5 |
from dtr.storage import DataService
|
| 6 |
from dtr.storage.DataService import price_preferences, brand_preferences, \
|
6 |
from dtr.storage.DataService import price_preferences, brand_preferences, \
|
| 7 |
user_actions, Brands, app_offers, approved_app_transactions, user_app_cashbacks, \
|
7 |
user_actions, Brands, app_offers, approved_app_transactions, user_app_cashbacks, \
|
| 8 |
user_app_installs, appmasters, notification_campaigns
|
8 |
user_app_installs, appmasters, notification_campaigns
|
| 9 |
from dtr.storage.MemCache import MemCache
|
9 |
from dtr.storage.MemCache import MemCache
|
| Line 620... |
Line 620... |
| 620 |
|
620 |
|
| 621 |
for rank in blockedRanksAccessories:
|
621 |
for rank in blockedRanksAccessories:
|
| 622 |
if blockedInfoAccessories.get((featuredDealsAccessories.get(rank+1)).get('skuBundleId')) is not None:
|
622 |
if blockedInfoAccessories.get((featuredDealsAccessories.get(rank+1)).get('skuBundleId')) is not None:
|
| 623 |
rankMapAccessories[rank] = blockedInfoAccessories.get((featuredDealsAccessories.get(rank+1)).get('skuBundleId'))
|
623 |
rankMapAccessories[rank] = blockedInfoAccessories.get((featuredDealsAccessories.get(rank+1)).get('skuBundleId'))
|
| 624 |
|
624 |
|
| - |
|
625 |
specialOffer = None
|
| - |
|
626 |
promoOffer = get_mongo_connection().Catalog.PromoOffer.find_one({'user_id':userId})
|
| - |
|
627 |
try:
|
| - |
|
628 |
if promoOffer is not None:
|
| - |
|
629 |
offer = get_mongo_connection().Catalog.Promotions.find_one({'_id':promoOffer.get('offer_id')})
|
| - |
|
630 |
if offer is None:
|
| - |
|
631 |
raise
|
| - |
|
632 |
promo = Promotion(offer.get('offer_id'),offer.get('offer_name'),offer.get('offer_description') , offer.get('categories_applicable'), offer.get('sub_categories_not_applicable'),
|
| - |
|
633 |
offer.get('startDate'), offer.get('endDate'), promoOffer.get('target1'), promoOffer.get('target1_cash_back_percetage'), promoOffer.get('target2'), promoOffer.get('target2_cash_back_percetage'), promoOffer.get('maxCashBack'),offer.get('url'))
|
| - |
|
634 |
|
| - |
|
635 |
specialOffer = promo
|
| - |
|
636 |
except:
|
| - |
|
637 |
pass
|
| - |
|
638 |
|
| 625 |
|
639 |
|
| 626 |
mem_cache_val = {3:mobile_deals, 5:tablet_deals, 6: accessories_deals,"3_rankMap": rankMapMobiles,"5_rankMap": rankMapTablets,"6_rankMap": rankMapAccessories }
|
640 |
mem_cache_val = {3:mobile_deals, 5:tablet_deals, 6: accessories_deals,"3_rankMap": rankMapMobiles,"5_rankMap": rankMapTablets,"6_rankMap": rankMapAccessories, "specialOffer":specialOffer }
|
| 627 |
mc.set(str(userId), mem_cache_val)
|
641 |
mc.set(str(userId), mem_cache_val)
|
| 628 |
|
642 |
|
| 629 |
|
643 |
|
| 630 |
def __populateFeaturedDeals():
|
644 |
def __populateFeaturedDeals():
|
| 631 |
print "Populating featured deals....."
|
645 |
print "Populating featured deals....."
|
| Line 667... |
Line 681... |
| 667 |
d_object = list(get_mongo_connection().Catalog.DealObject.find({'_id':dealObject['_id']}))
|
681 |
d_object = list(get_mongo_connection().Catalog.DealObject.find({'_id':dealObject['_id']}))
|
| 668 |
if len(d_object) == 0:
|
682 |
if len(d_object) == 0:
|
| 669 |
continue
|
683 |
continue
|
| 670 |
for category_id, rank in dealObject['otherInfo'].iteritems():
|
684 |
for category_id, rank in dealObject['otherInfo'].iteritems():
|
| 671 |
d_object[0]['dealObject'] = 1
|
685 |
d_object[0]['dealObject'] = 1
|
| 672 |
f_deal = {'rank':rank,'category_id':int(category_id),'object':d_object[0]}
|
686 |
f_deal = {'rank':rank,'category_id':int(category_id),'object':d_object[0],'offer_id':dealObject.get('offer_id')}
|
| 673 |
if f_deal['category_id'] == 3:
|
687 |
if f_deal['category_id'] == 3:
|
| 674 |
featuredDealObjectMobiles[rank] = f_deal
|
688 |
featuredDealObjectMobiles[rank] = f_deal
|
| 675 |
elif f_deal['category_id']==5:
|
689 |
elif f_deal['category_id']==5:
|
| 676 |
featuredDealObjectTablets[rank] = f_deal
|
690 |
featuredDealObjectTablets[rank] = f_deal
|
| 677 |
elif f_deal['category_id']==6:
|
691 |
elif f_deal['category_id']==6:
|
| Line 761... |
Line 775... |
| 761 |
fd_dealObject = mc.get("featured_deals_deal_object")
|
775 |
fd_dealObject = mc.get("featured_deals_deal_object")
|
| 762 |
|
776 |
|
| 763 |
else:
|
777 |
else:
|
| 764 |
rankMap = {}
|
778 |
rankMap = {}
|
| 765 |
|
779 |
|
| - |
|
780 |
|
| - |
|
781 |
specialOffer = user_specific_deals.get('specialOffer')
|
| - |
|
782 |
|
| 766 |
for dealList in [rankMap.get(k, []) for k in range(offset, offset+limit)]:
|
783 |
for dealList in [rankMap.get(k, []) for k in range(offset, offset+limit)]:
|
| 767 |
if filterData is None:
|
784 |
if filterData is None:
|
| 768 |
while(True):
|
785 |
while(True):
|
| 769 |
|
786 |
|
| 770 |
rankCounter = rankCounter+1
|
787 |
rankCounter = rankCounter+1
|
| 771 |
if (fd_dealObject.get(category_id).get(rankCounter)) is not None:
|
788 |
if (fd_dealObject.get(category_id).get(rankCounter)) is not None:
|
| - |
|
789 |
if (fd_dealObject.get(category_id).get(rankCounter).get('offer_id') !=0):
|
| - |
|
790 |
#Check whether user can see offer
|
| - |
|
791 |
if specialOffer is None:
|
| - |
|
792 |
continue
|
| 772 |
deal_object_temp = []
|
793 |
deal_object_temp = []
|
| 773 |
deal_object_temp.append(fd_dealObject.get(category_id).get(rankCounter).get('object'))
|
794 |
deal_object_temp.append(fd_dealObject.get(category_id).get(rankCounter).get('object'))
|
| 774 |
dealsListMap.append(deal_object_temp)
|
795 |
dealsListMap.append(deal_object_temp)
|
| 775 |
else:
|
796 |
else:
|
| 776 |
break
|
797 |
break
|
| Line 904... |
Line 925... |
| 904 |
elif item[0]['cash_back_type'] ==2:
|
925 |
elif item[0]['cash_back_type'] ==2:
|
| 905 |
item[0]['netPriceAfterCashBack'] = item[0]['available_price'] - math.floor(item[0]['cash_back'])
|
926 |
item[0]['netPriceAfterCashBack'] = item[0]['available_price'] - math.floor(item[0]['cash_back'])
|
| 906 |
else:
|
927 |
else:
|
| 907 |
item[0]['netPriceAfterCashBack'] = item[0]['available_price']
|
928 |
item[0]['netPriceAfterCashBack'] = item[0]['available_price']
|
| 908 |
|
929 |
|
| - |
|
930 |
if specialOffer is not None:
|
| - |
|
931 |
if item[0]['category_id'] in specialOffer.categories_applicable and item[0]['subCategoryId'] not in specialOffer.sub_categories_not_applicable:
|
| - |
|
932 |
item[0]['specialOffer'] = specialOffer.__dict__
|
| - |
|
933 |
else:
|
| - |
|
934 |
item[0]['specialOffer'] = {}
|
| - |
|
935 |
|
| 909 |
temp.append(item[0])
|
936 |
temp.append(item[0])
|
| 910 |
if len(temp) > 1:
|
937 |
if len(temp) > 1:
|
| 911 |
temp = sorted(temp, key = lambda x: (x['available_price']),reverse=False)
|
938 |
temp = sorted(temp, key = lambda x: (x['available_price']),reverse=False)
|
| 912 |
dealsListMap.append(temp)
|
939 |
dealsListMap.append(temp)
|
| 913 |
return dealsListMap
|
940 |
return dealsListMap
|
| Line 2669... |
Line 2696... |
| 2669 |
else:
|
2696 |
else:
|
| 2670 |
item[0]['netPriceAfterCashBack'] = item[0]['available_price']
|
2697 |
item[0]['netPriceAfterCashBack'] = item[0]['available_price']
|
| 2671 |
|
2698 |
|
| 2672 |
return item[0]
|
2699 |
return item[0]
|
| 2673 |
|
2700 |
|
| - |
|
2701 |
def getOfferForUser(userId):
|
| - |
|
2702 |
specialOffer = {}
|
| - |
|
2703 |
promoOffer = get_mongo_connection().Catalog.PromoOffer.find_one({'user_id':userId})
|
| - |
|
2704 |
try:
|
| - |
|
2705 |
if promoOffer is not None:
|
| - |
|
2706 |
offer = get_mongo_connection().Catalog.Promotions.find_one({'_id':promoOffer.get('offer_id')})
|
| - |
|
2707 |
if offer is None:
|
| - |
|
2708 |
raise
|
| - |
|
2709 |
promo = Promotion(offer.get('offer_id'),offer.get('offer_name'),offer.get('offer_description') , offer.get('categories_applicable'), offer.get('sub_categories_not_applicable'),
|
| - |
|
2710 |
offer.get('startDate'), offer.get('endDate'), promoOffer.get('target1'), promoOffer.get('target1_cash_back_percetage'), promoOffer.get('target2'), promoOffer.get('target2_cash_back_percetage'), promoOffer.get('maxCashBack'), offer.get('url'))
|
| - |
|
2711 |
|
| - |
|
2712 |
specialOffer = promo.__dict__
|
| - |
|
2713 |
except:
|
| - |
|
2714 |
pass
|
| - |
|
2715 |
return specialOffer
|
| - |
|
2716 |
|
| 2674 |
|
2717 |
|
| 2675 |
def main():
|
2718 |
def main():
|
| 2676 |
getDealsForSearchText("20", 'Samsung', 0, 10)
|
2719 |
getDealsForSearchText("20", 'Samsung', 0, 10)
|
| 2677 |
|
2720 |
|
| 2678 |
if __name__=='__main__':
|
2721 |
if __name__=='__main__':
|