Subversion Repositories SmartDukaan

Rev

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

Rev 18716 Rev 18792
Line 32... Line 32...
32
import gdshortener
32
import gdshortener
33
from dtr.dao import AppOfferObj, UserAppBatchDrillDown, UserAppBatchDateDrillDown
33
from dtr.dao import AppOfferObj, UserAppBatchDrillDown, UserAppBatchDateDrillDown
34
import base64
34
import base64
35
from falcon.util.uri import decode
35
from falcon.util.uri import decode
36
import MySQLdb
36
import MySQLdb
37
 
-
 
-
 
37
from shop2020.clients.CatalogClient import CatalogClient  
38
alphalist = list(string.uppercase)
38
alphalist = list(string.uppercase)
39
alphalist.remove('O')
39
alphalist.remove('O')
40
numList = ['1','2','3','4','5','6','7','8','9']
40
numList = ['1','2','3','4','5','6','7','8','9']
41
codesys = [alphalist, alphalist, numList, numList, numList]
41
codesys = [alphalist, alphalist, numList, numList, numList]
42
CONTACT_PRIORITY = ['sms', 'called', 'ringing']
42
CONTACT_PRIORITY = ['sms', 'called', 'ringing']
Line 1635... Line 1635...
1635
        lgr.info( "USER_DETAIL_CALL_COUNTER " +  str(USER_DETAIL_MAP[project_name]))
1635
        lgr.info( "USER_DETAIL_CALL_COUNTER " +  str(USER_DETAIL_MAP[project_name]))
1636
        retryFlag=False
1636
        retryFlag=False
1637
        if USER_DETAIL_MAP[project_name] % TOTAL_USER >= USER_CRM_DEFAULT_FRESH_FACTOR:
1637
        if USER_DETAIL_MAP[project_name] % TOTAL_USER >= USER_CRM_DEFAULT_FRESH_FACTOR:
1638
                retryFlag=True
1638
                retryFlag=True
1639
        if project_name == 'accs_cart':
1639
        if project_name == 'accs_cart':
1640
            if retryFlag:
1640
            project_id=1
1641
                user = self.getRetryUser(1)
-
 
1642
            else:
-
 
1643
                user = self.getNewUser(1)
-
 
1644
            
-
 
1645
            if user is None:
-
 
1646
                resp.body ={}
-
 
1647
            else:        
-
 
1648
                user.status =  'assigned'
-
 
1649
                user.agent_id = req.get_param("agent_id")
-
 
1650
                user.counter=1
-
 
1651
                user.modified = datetime.now()
-
 
1652
                session.commit()
-
 
1653
                resp.body = json.dumps(todict(getUserObject(user)), encoding='utf-8')
-
 
1654
                session.close()
-
 
1655
 
-
 
1656
        if project_name == 'accs_active':
1641
        elif project_name == 'accs_active':
1657
            if retryFlag:
1642
            project_id=2
1658
                user = self.getRetryUser(2)
-
 
1659
            else:
-
 
1660
                user = self.getNewUser(2)
-
 
1661
            
-
 
1662
            if user is None:
-
 
1663
                resp.body ={}
-
 
1664
            else:        
-
 
1665
                user.status =  'assigned'
1643
        elif project_name == 'accs_order':
1666
                user.agent_id = req.get_param("agent_id")
-
 
1667
                user.counter=1
1644
            project_id=3
1668
                user.modified = datetime.now()
-
 
1669
                session.commit()
-
 
1670
                resp.body = json.dumps(todict(getUserObject(user)), encoding='utf-8')
-
 
1671
                session.close()
-
 
1672
        if project_name == 'accs_order':
-
 
1673
            if retryFlag:
1645
        if retryFlag:
1674
                user = self.getRetryUser(3)
1646
            user = self.getRetryUser(project_id)
1675
            else:
1647
        else:
1676
                user = self.getNewUser(3)
1648
            user = self.getNewUser(project_id)
1677
            
1649
        
1678
            if user is None:
1650
        if user is None:
1679
                resp.body ={}
1651
            resp.body ={}
1680
            else:        
1652
        else:        
1681
                user.status =  'assigned'
1653
            user.status =  'assigned'
1682
                user.agent_id = req.get_param("agent_id")
1654
            user.agent_id = req.get_param("agent_id")
1683
                user.counter=1
1655
            user.counter=1
1684
                user.modified = datetime.now()
1656
            user.modified = datetime.now()
1685
                session.commit()
1657
            session.commit()
1686
                resp.body = json.dumps(todict(getUserObject(user)), encoding='utf-8')
1658
            resp.body = json.dumps(todict(getUserObject(user)), encoding='utf-8')
1687
                session.close()
1659
            session.close()
1688
                    
1660
                    
1689
    def getRetryUser(self,projectId,failback=True):
1661
    def getRetryUser(self,projectId,failback=True):
1690
        status = "retry"
1662
        status = "retry"
1691
        user = session.query(UserCrmCallingData).filter_by(status=status,project_id=projectId).filter(UserCrmCallingData.next_call_time<=datetime.now()).filter(~(UserCrmCallingData.contact1).like('')).order_by(UserCrmCallingData.next_call_time).with_lockmode("update").first()
1663
        user = session.query(UserCrmCallingData).filter_by(status=status,project_id=projectId).filter(UserCrmCallingData.next_call_time<=datetime.now()).filter(~(UserCrmCallingData.contact1).like('')).order_by(UserCrmCallingData.next_call_time).with_lockmode("update").first()
1692
        
1664
        
Line 1965... Line 1937...
1965
                    if userPresent.project_id==project_id:
1937
                    if userPresent.project_id==project_id:
1966
                        if userPresent.modified.date()>=(datetime.now().date()-timedelta(days=30)):
1938
                        if userPresent.modified.date()>=(datetime.now().date()-timedelta(days=30)):
1967
                            continue
1939
                            continue
1968
                        else:
1940
                        else:
1969
                            pass    
1941
                            pass    
1970
                    elif userPresent.modified.date()>=(datetime.now().date()-timedelta(days=3)):
1942
                    elif userPresent.modified.date()>=(datetime.now().date()-timedelta(days=30)):
1971
                        continue
1943
                        continue
1972
                else:
1944
                else:
1973
                    continue     
1945
                    continue     
1974
            counter=counter+1
1946
            counter=counter+1
1975
            userMasterData = UserCrmCallingData()
1947
            userMasterData = UserCrmCallingData()
Line 1995... Line 1967...
1995
    userList=[]
1967
    userList=[]
1996
    orderUserList=[]
1968
    orderUserList=[]
1997
    userMasterMap={}
1969
    userMasterMap={}
1998
    queryfilter = {"$and":
1970
    queryfilter = {"$and":
1999
                   [
1971
                   [
2000
                    {'created':{"$gte":(to_java_date(datetime.now())-2*86400000)}},
1972
                    {'created':{"$gte":(to_java_date(datetime.now())-3*86400000)}},
2001
                    {'created':{"$lte":(to_java_date(datetime.now())- 43200000)}},
1973
                    {'created':{"$lte":(to_java_date(datetime.now())- 43200000)}},
2002
                    {"url":{"$regex" : "http://api.profittill.com/cartdetails"}}
1974
                    {"url":{"$regex" : "http://api.profittill.com/cartdetails"}}
2003
                    ]
1975
                    ]
2004
                   }
1976
                   }
2005
    result = get_mongo_connection_dtr_data().User.browsinghistories.find(queryfilter).distinct('user_id')
1977
    result = get_mongo_connection_dtr_data().User.browsinghistories.find(queryfilter).distinct('user_id')
Line 2012... Line 1984...
2012
    result = fetchResult(myquery)
1984
    result = fetchResult(myquery)
2013
    for r in result:
1985
    for r in result:
2014
        orderUserList.append(r[0])
1986
        orderUserList.append(r[0])
2015
    finalUserList  = list(set(userList) - set(orderUserList))
1987
    finalUserList  = list(set(userList) - set(orderUserList))
2016
    
1988
    
-
 
1989
    userCartIdMap={}
-
 
1990
    fetchCartId = "select user_id,account_key from user_accounts where account_type='cartId' and user_id in (%s)" % ",".join(map(str,finalUserList))
-
 
1991
    result = fetchResult(fetchCartId)
-
 
1992
    for r in result:
-
 
1993
        userCartIdMap[r[1]] = r[0]
-
 
1994
    
-
 
1995
    client = CatalogClient().get_client()
-
 
1996
    userMapReturned = client.getCartByValue(userCartIdMap.keys())
-
 
1997
    print userMapReturned
2017
    queryfilternew = {"$and":
1998
#     queryfilternew = {"$and":
2018
                   [
1999
#                    [
2019
                    {'user_id':{"$in":finalUserList}},
2000
#                     {'user_id':{"$in":finalUserList}},
2020
                    {'created':{"$gte":(to_java_date(datetime.now())-2*86400000)}},
2001
#                     {'created':{"$gte":(to_java_date(datetime.now())-2*86400000)}},
2021
                    {'created':{"$lte":(to_java_date(datetime.now())- 43200000)}},
2002
#                     {'created':{"$lte":(to_java_date(datetime.now())- 43200000)}},
2022
                    {"url":{"$regex" : "http://api.profittill.com/cartdetails"}}
2003
#                     {"url":{"$regex" : "http://api.profittill.com/cartdetails"}}
2023
                    ]
2004
#                     ]
2024
                   }
2005
#                    }
2025
    itemIds = list(get_mongo_connection_dtr_data().User.browsinghistories.find(queryfilternew))
2006
#     itemIds = list(get_mongo_connection_dtr_data().User.browsinghistories.find(queryfilternew))
2026
     
2007
#      
2027
    for i in itemIds:
2008
#     for i in itemIds:
2028
        if(userMasterMap.has_key(i.get('user_id'))):
2009
#         if(userMasterMap.has_key(i.get('user_id'))):
2029
            if userMasterMap.get(i.get('user_id')) > i.get('created'):
2010
#             if userMasterMap.get(i.get('user_id')) > i.get('created'):
2030
                userMasterMap[i.get('user_id')]=i.get('created')
2011
#                 userMasterMap[i.get('user_id')]=i.get('created')
2031
        else:
2012
#         else:
2032
            userMasterMap[i.get('user_id')]=i.get('created')
2013
#             userMasterMap[i.get('user_id')]=i.get('created')
2033
            
2014
#             
2034
    d_sorted = sorted(zip(userMasterMap.values(), userMasterMap.keys()))
2015
#     d_sorted = sorted(zip(userMasterMap.values(), userMasterMap.keys()))
2035
    addUserToTable(d_sorted,1)
2016
#     addUserToTable(d_sorted,1)
2036
 
2017
 
2037
def addUserToTable(userList,projectId):
2018
def addUserToTable(userList,projectId):
2038
    counter=0
2019
    counter=0
2039
    for i in userList:
2020
    for i in userList:
2040
        try:
2021
        try:
2041
            userId=i[1]
2022
            userId=i
2042
            if counter==20:
2023
            if counter==20:
2043
                break
2024
                break
2044
            userPresent = session.query(UserCrmCallingData).filter_by(user_id=userId).order_by(desc(UserCrmCallingData.modified)).first()
2025
            userPresent = session.query(UserCrmCallingData).filter_by(user_id=userId).order_by(desc(UserCrmCallingData.modified)).first()
2045
            if userPresent is not None:
2026
            if userPresent is not None:
2046
                if userPresent.user_available==1:
2027
                if userPresent.user_available==1:
2047
                    if userPresent.project_id==projectId:
2028
                    if userPresent.project_id==projectId:
2048
                        continue
2029
                        continue
2049
                    elif userPresent.modified.date()>=(datetime.now().date()-timedelta(days=3)):
2030
                    elif userPresent.modified.date()>=(datetime.now().date()-timedelta(days=30)):
2050
                        continue
2031
                        continue
2051
                else:
2032
                else:
2052
                    continue     
2033
                    continue     
2053
            counter=counter+1
2034
            counter=counter+1
2054
            userMasterData = UserCrmCallingData()
2035
            userMasterData = UserCrmCallingData()
Line 2122... Line 2103...
2122
                userMasterMap[i.get('user_id')]=i.get('created')
2103
                userMasterMap[i.get('user_id')]=i.get('created')
2123
        else:
2104
        else:
2124
            userMasterMap[i.get('user_id')]=i.get('created')
2105
            userMasterMap[i.get('user_id')]=i.get('created')
2125
 
2106
 
2126
    d_sorted = sorted(zip(userMasterMap.values(), userMasterMap.keys()))
2107
    d_sorted = sorted(zip(userMasterMap.values(), userMasterMap.keys()))
-
 
2108
    userFinalList=[]
-
 
2109
    for i in d_sorted:
-
 
2110
        userFinalList.append(i[1])
2127
    addUserToTable(d_sorted,2)
2111
    addUserToTable(userFinalList,2)
2128
    
2112
    
2129
def getUserContactDetails(userId):
2113
def getUserContactDetails(userId):
2130
    try:
-
 
2131
        r = session.query(Users.mobile_number).filter_by(id=userId).first()
2114
    r = session.query(Users.mobile_number).filter_by(id=userId).first()
2132
        if r is None:
2115
    if r is None:
2133
            return None
2116
        return None
2134
        else:
2117
    else:
2135
            return r[0]
2118
        return r[0]
2136
    finally:
-
 
2137
        session.close()
-
 
2138
            
2119
            
2139
def getUsername(userId):
2120
def getUsername(userId):
2140
    try:
-
 
2141
        r = session.query(Users.first_name).filter_by(id=userId).first()
2121
    r = session.query(Users.first_name).filter_by(id=userId).first()
2142
        if r is None:
2122
    if r is None:
2143
            return None
2123
        return None
2144
        else:
2124
    else:
2145
            return r[0]
2125
        return r[0]
2146
    finally:
2126
 
2147
        session.close() 
-
 
2148
def checkPincodeServicable(userId):
2127
def checkPincodeServicable(userId):
2149
    checkAddressUser = "select distinct pincode from all_user_addresses where user_id= (%s)"
2128
    checkAddressUser = "select distinct pincode from all_user_addresses where user_id= (%s)"
2150
    result = fetchResult(checkAddressUser,userId)
2129
    result = fetchResult(checkAddressUser,userId)
2151
    if len(result)==0:
2130
    if len(result)==0:
2152
        return True
2131
        return True
Line 2247... Line 2226...
2247
    a = RetailerDetail()
2226
    a = RetailerDetail()
2248
    retailer = a.getNotActiveRetailer()
2227
    retailer = a.getNotActiveRetailer()
2249
    otherContacts = [r for r, in session.query(RetailerContacts.mobile_number).filter_by(retailer_id=retailer.id).order_by(RetailerContacts.contact_type).all()]
2228
    otherContacts = [r for r, in session.query(RetailerContacts.mobile_number).filter_by(retailer_id=retailer.id).order_by(RetailerContacts.contact_type).all()]
2250
    print json.dumps(todict(getRetailerObj(retailer, otherContacts, 'fresh')), encoding='utf-8')
2229
    print json.dumps(todict(getRetailerObj(retailer, otherContacts, 'fresh')), encoding='utf-8')
2251
#     a = GetUserCrmApplication()
2230
#     a = GetUserCrmApplication()
2252
#     a.getUser("accs_cart", 1)
2231
#     a.getUser("accs_active", 2)
2253
    
2232
    
2254
if __name__ == '__main__':
2233
if __name__ == '__main__':
2255
    main()
2234
    main()
2256
        
2235
        
2257
2236