Rev 13572 | Rev 14708 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
import timeimport pymongo#TODO Need to add messy stuff to conf.def get_mongo_connection(host='localhost', port=27017):global conif con is None:print "Establishing connection %s host and port %d" %(host,port)try:con = pymongo.MongoClient(host, port)except Exception, e:print ereturn Nonereturn condef to_java_date(py_timestamp):try:java_date = int(time.mktime(py_timestamp.timetuple())) * 1000 + py_timestamp.microsecond / 1000return java_dateexcept:return Nonedef getCashBack(skuId, source_id, category_id, mc, mongoHost):if not bool(mc.get("category_cash_back")):populateCashBack(mc, mongoHost)itemCashBackMap = mc.get("item_cash_back")itemCashBack = itemCashBackMap.get(skuId)if itemCashBack is not None:return itemCashBackcashBackMap = mc.get("category_cash_back")sourceCashBack = cashBackMap.get(source_id)if sourceCashBack is not None and len(sourceCashBack) > 0:for cashBack in sourceCashBack:if cashBack.get(category_id) is None:continueelse:return cashBack.get(category_id)else:return {}def populateCashBack(mc, mongoHost):print "Populating cashback"cashBackMap = {}itemCashBackMap = {}cashBack = list(get_mongo_connection(host=mongoHost).Catalog.CategoryCashBack.find())for row in cashBack:temp_map = {}temp_list = []if cashBackMap.has_key(row['source_id']):arr = cashBackMap.get(row['source_id'])for val in arr:temp_list.append(val)temp_map[row['category_id']] = rowtemp_list.append(temp_map)cashBackMap[row['source_id']] = temp_listelse:temp_map[row['category_id']] = rowtemp_list.append(temp_map)cashBackMap[row['source_id']] = temp_listitemCashBack = list(get_mongo_connection(host=mongoHost).Catalog.ItemCashBack.find())for row in itemCashBack:if not itemCashBackMap.has_key(row['skuId']):itemCashBackMap[row['skuId']] = rowmc.set("item_cash_back", itemCashBackMap, 24 * 60 * 60)mc.set("category_cash_back", cashBackMap, 24 * 60 * 60)