Subversion Repositories SmartDukaan

Rev

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

Rev 14766 Rev 14791
Line 10... Line 10...
10
from dtr.utils.utils import to_java_date
10
from dtr.utils.utils import to_java_date
11
from elixir import *
11
from elixir import *
12
from operator import itemgetter
12
from operator import itemgetter
13
import pymongo
13
import pymongo
14
import re
14
import re
-
 
15
import traceback
15
 
16
 
16
con = None
17
con = None
17
 
18
 
18
DataService.initialize(db_hostname="localhost")
19
DataService.initialize(db_hostname="localhost")
19
mc = MemCache("127.0.0.1")
20
mc = MemCache("127.0.0.1")
Line 426... Line 427...
426
                continue
427
                continue
427
    mc.set("featured_deals_category_"+str(0), all_category_fd, 3600)
428
    mc.set("featured_deals_category_"+str(0), all_category_fd, 3600)
428
    mc.set("featured_deals_category_"+str(3), mobile_fd, 3600)
429
    mc.set("featured_deals_category_"+str(3), mobile_fd, 3600)
429
    mc.set("featured_deals_category_"+str(5), tablet_fd, 3600)
430
    mc.set("featured_deals_category_"+str(5), tablet_fd, 3600)
430
 
431
 
431
def getNewDeals(userId, category_id, offset, limit, sort, direction):
432
def getNewDeals(userId, category_id, offset, limit, sort, direction, filterData=None):
432
    if not bool(mc.get("category_cash_back")):
433
    if not bool(mc.get("category_cash_back")):
433
        populateCashBack()
434
        populateCashBack()
434
    
435
    
435
    try:
436
    try:
436
        if mc.get("featured_deals_category_"+str(category_id)) is None:
437
        if mc.get("featured_deals_category_"+str(category_id)) is None:
Line 458... Line 459...
458
                rev = True
459
                rev = True
459
            else:
460
            else:
460
                rev = False
461
                rev = False
461
            sorted_deals = sorted(category_specific_deals, key = lambda x: (x['available_price']),reverse=rev)
462
            sorted_deals = sorted(category_specific_deals, key = lambda x: (x['available_price']),reverse=rev)
462
    
463
    
-
 
464
    
-
 
465
    print "before filtering ",sorted_deals
-
 
466
    print "============================"
-
 
467
    if filterData is not None:
-
 
468
        try:
-
 
469
            sorted_deals = filterDeals(sorted_deals, filterData)
-
 
470
        except:
-
 
471
            print traceback.print_exc()    
-
 
472
    
463
    for d in sorted_deals[offset:offset+limit]:
473
    for d in sorted_deals[offset:offset+limit]:
464
        item = list(get_mongo_connection().Catalog.MasterData.find({'_id':d['_id']}))
474
        item = list(get_mongo_connection().Catalog.MasterData.find({'_id':d['_id']}))
465
        if not dealsMap.has_key(item[0]['identifier']):
475
        if not dealsMap.has_key(item[0]['identifier']):
466
            item[0]['dealRank'] = rank
476
            item[0]['dealRank'] = rank
467
            item[0]['persPoints'] = d['persPoints']
477
            item[0]['persPoints'] = d['persPoints']
Line 482... Line 492...
482
            dealsMap[item[0]['identifier']] = item[0]
492
            dealsMap[item[0]['identifier']] = item[0]
483
            
493
            
484
            rank +=1
494
            rank +=1
485
    return sorted(dealsMap.values(), key=itemgetter('dealRank'))
495
    return sorted(dealsMap.values(), key=itemgetter('dealRank'))
486
 
496
 
-
 
497
 
-
 
498
def filterDeals(deals, filterData):
-
 
499
    dealFiltered = []
-
 
500
    brandsFiltered = []
-
 
501
    filterArray = filterData.split('|')
-
 
502
    for data in filterArray:
-
 
503
        try:
-
 
504
            filter, info = data.split(':')
-
 
505
        except Exception as ex:
-
 
506
            traceback.print_exc()
-
 
507
            continue
-
 
508
        if filter == 'dealFilter':
-
 
509
            toFilter = info.split('^')
-
 
510
            print "deal filter ",toFilter
-
 
511
            if 'deals' in toFilter:
-
 
512
                dealFiltered = deals
-
 
513
                continue
-
 
514
            for filterVal in toFilter:
-
 
515
                if filterVal == 'dod':
-
 
516
                    for deal in deals:
-
 
517
                        if deal['dealType'] == 1:
-
 
518
                            dealFiltered.append(deal)
-
 
519
        elif filter == 'brandFilter':
-
 
520
            toFilter = info.split('^')
-
 
521
            print "brand filter ",toFilter
-
 
522
            if len(toFilter) == 0 or (len(toFilter)==1 and toFilter[0]==''):
-
 
523
                brandsFiltered = deals
-
 
524
            for deal in deals:
-
 
525
                if str(deal['brand_id']) in toFilter:
-
 
526
                    brandsFiltered.append(deal)
-
 
527
    return [i for i in dealFiltered for j in brandsFiltered if i['_id']==j['_id']]
-
 
528
    
-
 
529
 
487
def getDeals(userId, category_id, offset, limit, sort, direction):
530
def getDeals(userId, category_id, offset, limit, sort, direction):
488
    if not bool(mc.get("category_cash_back")):
531
    if not bool(mc.get("category_cash_back")):
489
        populateCashBack()
532
        populateCashBack()
490
    rank = 1
533
    rank = 1
491
    deals = {}
534
    deals = {}