| 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 |
|