Subversion Repositories SmartDukaan

Rev

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

Rev 13572 Rev 14705
Line 1... Line 1...
1
import time
1
import time
-
 
2
import pymongo
-
 
3
 
-
 
4
#TODO Need to add messy stuff to conf.
-
 
5
 
-
 
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
2
 
16
 
3
def to_java_date(py_timestamp):
17
def to_java_date(py_timestamp):
4
    try:
18
    try:
5
        java_date =  int(time.mktime(py_timestamp.timetuple())) * 1000 + py_timestamp.microsecond / 1000
19
        java_date =  int(time.mktime(py_timestamp.timetuple())) * 1000 + py_timestamp.microsecond / 1000
6
        return java_date
20
        return java_date
7
    except:
21
    except:
8
        return None
-
 
9
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
 
-
 
68