Subversion Repositories SmartDukaan

Rev

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

Rev 16723 Rev 16727
Line 6... Line 6...
6
from dtr.config import PythonPropertyReader
6
from dtr.config import PythonPropertyReader
7
from dtr.storage import Mongo
7
from dtr.storage import Mongo
8
from dtr.storage.DataService import Retailers, Users, CallHistory, RetryConfig, \
8
from dtr.storage.DataService import Retailers, Users, CallHistory, RetryConfig, \
9
    RetailerLinks, Activation_Codes, Agents, Agent_Roles, AgentLoginTimings, \
9
    RetailerLinks, Activation_Codes, Agents, Agent_Roles, AgentLoginTimings, \
10
    FetchDataHistory, RetailerContacts, Orders, OnboardedRetailerChecklists,\
10
    FetchDataHistory, RetailerContacts, Orders, OnboardedRetailerChecklists,\
11
    RetailerAddresses, Pincodeavailability, app_offers, appmasters
11
    RetailerAddresses, Pincodeavailability, app_offers, appmasters, user_app_cashbacks, user_app_installs
12
from dtr.storage.Mongo import get_mongo_connection
12
from dtr.storage.Mongo import get_mongo_connection
13
from dtr.storage.Mysql import fetchResult
13
from dtr.storage.Mysql import fetchResult
14
from dtr.utils import FetchLivePrices, DealSheet as X_DealSheet, \
14
from dtr.utils import FetchLivePrices, DealSheet as X_DealSheet, \
15
    UserSpecificDeals
15
    UserSpecificDeals
16
from dtr.utils.utils import getLogger
16
from dtr.utils.utils import getLogger
Line 26... Line 26...
26
import traceback
26
import traceback
27
import urllib
27
import urllib
28
import urllib2
28
import urllib2
29
import uuid
29
import uuid
30
import gdshortener
30
import gdshortener
31
from dtr.dao import AppOfferObj
31
from dtr.dao import AppOfferObj, UserAppBatchDrillDown, UserAppBatchDateDrillDown
32
 
32
 
33
alphalist = list(string.uppercase)
33
alphalist = list(string.uppercase)
34
alphalist.remove('O')
34
alphalist.remove('O')
35
numList = ['1','2','3','4','5','6','7','8','9']
35
numList = ['1','2','3','4','5','6','7','8','9']
36
codesys = [alphalist, alphalist, numList, numList, numList]
36
codesys = [alphalist, alphalist, numList, numList, numList]
Line 1299... Line 1299...
1299
    
1299
    
1300
class AppOffers():
1300
class AppOffers():
1301
    def on_get(self, req, resp, retailerId):
1301
    def on_get(self, req, resp, retailerId):
1302
        retailerId = int(retailerId)
1302
        retailerId = int(retailerId)
1303
        nullCheckList = ['','0']
1303
        nullCheckList = ['','0']
1304
        offers = session.query(app_offers.id,app_offers.appmaster_id, app_offers.app_name, app_offers.affiliate_offer_id, app_offers.image_url, app_offers.downloads, app_offers.link, app_offers.offer_price, app_offers.offerCategory, app_offers.package_name, app_offers.promoImage, app_offers.ratings, case([(app_offers.override_payout == True, app_offers.overriden_payout)], else_=app_offers.user_payout).label('user_payout'), case([(appmasters.shortDescription != None, appmasters.shortDescription)], else_=None).label('shortDescription'), case([(appmasters.longDescription != None, appmasters.longDescription)], else_=None).label('longDescription'), appmasters.customerOneLiner, appmasters.retailerOneLiner,app_offers.priority, app_offers.offerCondition).join((appmasters,appmasters.id==app_offers.appmaster_id)).filter(app_offers.affiliate_id==retailerId).filter(app_offers.show==True).filter(app_offers.offer_active==True).filter(app_offers.offer_price>0).order_by(case([(app_offers.priority.in_(tuple(nullCheckList)), 1)], else_=0), asc(app_offers.priority),desc('user_payout')).all()
1304
        offers = session.query(app_offers.id,app_offers.appmaster_id, app_offers.app_name, app_offers.affiliate_offer_id, app_offers.image_url, app_offers.downloads, app_offers.link, app_offers.offer_price, app_offers.offerCategory, app_offers.package_name, app_offers.promoImage, app_offers.ratings, case([(app_offers.override_payout == True, app_offers.overriden_payout)], else_=app_offers.user_payout).label('user_payout'), case([(appmasters.shortDescription != None, appmasters.shortDescription)], else_=None).label('shortDescription'), case([(appmasters.longDescription != None, appmasters.longDescription)], else_=None).label('longDescription'), appmasters.customerOneLiner, appmasters.retailerOneLiner,app_offers.priority, app_offers.offerCondition).join((appmasters,appmasters.id==app_offers.appmaster_id)).filter(app_offers.affiliate_id==retailerId).filter(appmasters.showApp==True).filter(app_offers.show==True).filter(app_offers.offer_active==True).filter(app_offers.offer_price>0).order_by(case([(app_offers.priority.in_(tuple(nullCheckList)), 1)], else_=0), asc(app_offers.priority),desc('user_payout')).all()
1305
        offersJsonArray = []
1305
        offersJsonArray = []
1306
        if offers is None or len(offers)==0:
1306
        if offers is None or len(offers)==0:
1307
            resp.body = json.dumps("{}")
1307
            resp.body = json.dumps("{}")
1308
        else:
1308
        else:
1309
            for offer in offers:
1309
            for offer in offers:
Line 1312... Line 1312...
1312
                
1312
                
1313
        if session.is_active:
1313
        if session.is_active:
1314
            print "session is active. closing it."
1314
            print "session is active. closing it."
1315
            session.close()
1315
            session.close()
1316
        resp.body = json.dumps({"AppOffers":offersJsonArray}, encoding='utf-8')
1316
        resp.body = json.dumps({"AppOffers":offersJsonArray}, encoding='utf-8')
-
 
1317
        
-
 
1318
class AppUserBatchRefund():
-
 
1319
    def on_get(self, req, resp, batchId, userId):
-
 
1320
        batchId = long(batchId)
-
 
1321
        userId = long(userId)
-
 
1322
        userBatchCashback = user_app_cashbacks.get_by(user_id=userId, batchCreditId=batchId)
-
 
1323
        if session.is_active:
-
 
1324
            print "session is active. closing it."
-
 
1325
            session.close()
-
 
1326
        if userBatchCashback is None:
-
 
1327
            resp.body = json.dumps("{}")
-
 
1328
        else:
-
 
1329
            resp.body = json.dumps(todict(userBatchCashback), encoding='utf-8')
-
 
1330
          
-
 
1331
class AppUserBatchDrillDown():
-
 
1332
    def on_get(self, req, resp, batchId, userId):
-
 
1333
        batchId = long(batchId)
-
 
1334
        userId = long(userId)
-
 
1335
        appUserBatchDrillDown = session.query(user_app_installs.transaction_date, func.sum(user_app_installs.installCount).label('downloads'), func.sum(user_app_installs.payoutAmount).label('amount')).join((user_app_cashbacks,user_app_cashbacks.user_id==user_app_installs.user_id)).filter(user_app_cashbacks.fortnightOfYear==user_app_installs.fortnightOfYear).filter(user_app_cashbacks.user_id==userId).filter(user_app_cashbacks.batchCreditId==batchId).group_by(user_app_installs.transaction_date).all()
-
 
1336
        cashbackArray = []
-
 
1337
        if session.is_active:
-
 
1338
            print "session is active. closing it."
-
 
1339
            session.close()
-
 
1340
        if appUserBatchDrillDown is None or len(appUserBatchDrillDown)==0:
-
 
1341
            resp.body = json.dumps("{}")
-
 
1342
        else:
-
 
1343
            for appcashBack in appUserBatchDrillDown:
-
 
1344
                userAppBatchDrillDown = UserAppBatchDrillDown(str(appcashBack[0]),long(appcashBack[1]), long(appcashBack[2]))
-
 
1345
                cashbackArray.append(todict(userAppBatchDrillDown))
-
 
1346
            resp.body = json.dumps({"UserAppCashBackInBatch":cashbackArray}, encoding='utf-8')
-
 
1347
            
-
 
1348
class AppUserBatchDateDrillDown():
-
 
1349
    def on_get(self, req, resp, userId, date):
-
 
1350
        userId = long(userId)
-
 
1351
        date = str(date)
-
 
1352
        date = datetime.strptime(date, '%Y-%m-%d')
-
 
1353
        appUserBatchDateDrillDown = session.query(user_app_installs.app_name, func.sum(user_app_installs.installCount).label('downloads'), func.sum(user_app_installs.payoutAmount).label('amount')).filter(user_app_installs.user_id==userId).filter(user_app_installs.transaction_date==date).group_by(user_app_installs.app_name).all()
-
 
1354
        cashbackArray = []
-
 
1355
        if session.is_active:
-
 
1356
            print "session is active. closing it."
-
 
1357
            session.close()
-
 
1358
        if appUserBatchDateDrillDown is None or len(appUserBatchDateDrillDown)==0:
-
 
1359
            resp.body = json.dumps("{}")
-
 
1360
        else:
-
 
1361
            for appcashBack in appUserBatchDateDrillDown:
-
 
1362
                userAppBatchDateDrillDown = UserAppBatchDateDrillDown(str(appcashBack[0]),long(appcashBack[1]),long(appcashBack[2]))
-
 
1363
                cashbackArray.append(todict(userAppBatchDateDrillDown))
-
 
1364
            resp.body = json.dumps({"UserAppCashBackDateWise":cashbackArray}, encoding='utf-8')
1317
 
1365
 
1318
def main():
1366
def main():
1319
    #tagActivatedReatilers()
1367
    #tagActivatedReatilers()
1320
    a = RetailerDetail()
1368
    a = RetailerDetail()
1321
    retailer = a.getNotActiveRetailer()
1369
    retailer = a.getNotActiveRetailer()