Subversion Repositories SmartDukaan

Rev

Rev 14705 | Rev 14736 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
13572 kshitij.so 1
import time
14705 kshitij.so 2
import pymongo
13572 kshitij.so 3
 
14705 kshitij.so 4
#TODO Need to add messy stuff to conf.
14708 kshitij.so 5
con=None
14705 kshitij.so 6
def get_mongo_connection(host='localhost', port=27017):
7
    global con
8
    if con is None:
9
        print "Establishing connection %s host and port %d" %(host,port)
10
        try:
11
            con = pymongo.MongoClient(host, port)
12
        except Exception, e:
13
            print e
14
            return None
15
    return con
16
 
13572 kshitij.so 17
def to_java_date(py_timestamp):
18
    try:
19
        java_date =  int(time.mktime(py_timestamp.timetuple())) * 1000 + py_timestamp.microsecond / 1000
20
        return java_date
21
    except:
14705 kshitij.so 22
        return None
23
 
24
def getCashBack(skuId, source_id, category_id, mc, mongoHost):
25
    if not bool(mc.get("category_cash_back")):
26
        populateCashBack(mc, mongoHost)
27
    itemCashBackMap = mc.get("item_cash_back")
28
    itemCashBack = itemCashBackMap.get(skuId)
29
    if itemCashBack is not None:
30
        return itemCashBack
31
    cashBackMap = mc.get("category_cash_back")
32
    sourceCashBack = cashBackMap.get(source_id)
33
    if sourceCashBack is not None and len(sourceCashBack) > 0:
34
        for cashBack in sourceCashBack:
35
            if cashBack.get(category_id) is None:
36
                continue
37
            else:
38
                return cashBack.get(category_id)
39
    else:
40
        return {}
41
 
42
def populateCashBack(mc, mongoHost):
43
    print "Populating cashback"
44
    cashBackMap = {}
45
    itemCashBackMap = {}
46
    cashBack = list(get_mongo_connection(host=mongoHost).Catalog.CategoryCashBack.find())
47
    for row in cashBack:
48
        temp_map = {}
49
        temp_list = []
50
        if cashBackMap.has_key(row['source_id']):
51
            arr = cashBackMap.get(row['source_id'])
52
            for val in arr:
53
                temp_list.append(val)
54
            temp_map[row['category_id']] = row
55
            temp_list.append(temp_map)
56
            cashBackMap[row['source_id']] = temp_list 
57
        else:
58
            temp_map[row['category_id']] = row
59
            temp_list.append(temp_map)
60
            cashBackMap[row['source_id']] = temp_list
61
    itemCashBack = list(get_mongo_connection(host=mongoHost).Catalog.ItemCashBack.find())
62
    for row in itemCashBack:
63
        if not itemCashBackMap.has_key(row['skuId']):
64
            itemCashBackMap[row['skuId']] = row
65
    mc.set("item_cash_back", itemCashBackMap, 24 * 60 * 60)
66
    mc.set("category_cash_back", cashBackMap, 24 * 60 * 60)
67