Example #1
0
 def get_effect_data_topats(cls, shop_info_list):
     """
     获取店铺的所有计划的base数据
     """
     # 初始化异步报表下载
     fail_shop_info_list = []
     rpt_topats_list_mid = []
     shop_info_list_mid = []
     for shop_info in shop_info_list:
         try:
             campaign_ids = shop_info["campaign_ids"]
             effect_rpt_topats = EffectRptTopatsGet(
                 shop_info["sid"],
                 shop_info["nick"],
                 shop_info["access_token"],
                 shop_info["subway_token"],
                 campaign_ids,
             )
             effect_rpt_topats.generate_effect_task_id()
         except Exception, data:
             report_logger.exception("初始化异步报表出错")
             fail_shop_info_list.append(shop_info)
             continue
         rpt_topats_list_mid.append(effect_rpt_topats)
         shop_info_list_mid.append(shop_info)
         time.sleep(0.1)
Example #2
0
 def get_shop_infos_by_shop_ids(cls, in_shop_id_list):
     """
     根据店铺id获得店铺相应信息包括access_token,subway_token,nick
     """
     shop_info_list = []
     shop_info_db = ShopInfoDB(mongoConn)
     for shop_id in in_shop_id_list:
         shop_info = shop_info_db.get_shop_info_by_shop_id(shop_id)
         try:
             shop_info.update({"campaign_ids": RptAll.get_campaigns_by_shop_info(shop_info)})
         except InvalidAccessTokenException, data:
             report_logger.error("nick [%s] access_token expired", shop_info["nick"])
             continue
         except Exception, data:
             report_logger.exception("get campaign_ids failed")
             continue
Example #3
0
 def get_shop_infos_by_shop_ids(cls, in_shop_id_list):
     """
     根据店铺id获得店铺相应信息包括access_token,subway_token,nick
     """
     shop_info_list = []
     shop_info_db = ShopInfoDB(mongoConn)
     for shop_id in in_shop_id_list:
         shop_info = shop_info_db.get_shop_info_by_shop_id(shop_id)
         try:
             shop_info.update({
                 'campaign_ids':
                 RptAll.get_campaigns_by_shop_info(shop_info)
             })
         except InvalidAccessTokenException, data:
             report_logger.error("nick [%s] access_token expired",
                                 shop_info['nick'])
             continue
         except Exception, data:
             report_logger.exception('get campaign_ids failed')
             continue
Example #4
0
    def get_effect_data(cls, shop_info_list):

        for shop_info in shop_info_list:
            try:
                if RptAll.is_effect_rpt_correct(shop_info):
                    continue

                report_logger.info("店铺  [%s] 需要重新获取效果报表", shop_info["nick"])
                rpt_effect_db = RptEffectDB(mongoConn, str(shop_info["sid"]))
                rpt_effect_db.clear_one_day_ago_rpt(RptAll.ONE_WEEK_AGO)
                rpt_effect_db.clear_one_day_rpt(RptAll.YESTERDAY)

                effect_rpt_get = EffectRptGet(
                    shop_info["nick"], shop_info["access_token"], shop_info["subway_token"], shop_info["campaign_ids"]
                )

                effect_rpt_list = effect_rpt_get.yesterday_rpt_get()
                rpt_effect_db.save_records(effect_rpt_list)
                report_logger.info("店铺  [%s] 重新获取效果报表完成,条数 %d", shop_info["nick"], len(effect_rpt_list))
            except Exception, data:
                report_logger.exception("get effect data exception")
Example #5
0
 def get_effect_data_topats(cls, shop_info_list):
     """
     获取店铺的所有计划的base数据
     """
     #初始化异步报表下载
     fail_shop_info_list = []
     rpt_topats_list_mid = []
     shop_info_list_mid = []
     for shop_info in shop_info_list:
         try:
             campaign_ids = shop_info['campaign_ids']
             effect_rpt_topats = EffectRptTopatsGet(
                 shop_info['sid'], shop_info['nick'],
                 shop_info['access_token'], shop_info['subway_token'],
                 campaign_ids)
             effect_rpt_topats.generate_effect_task_id()
         except Exception, data:
             report_logger.exception('初始化异步报表出错')
             fail_shop_info_list.append(shop_info)
             continue
         rpt_topats_list_mid.append(effect_rpt_topats)
         shop_info_list_mid.append(shop_info)
         time.sleep(0.1)
Example #6
0
    def get_effect_data(cls, shop_info_list):

        for shop_info in shop_info_list:
            try:
                if RptAll.is_effect_rpt_correct(shop_info):
                    continue

                report_logger.info("店铺  [%s] 需要重新获取效果报表", shop_info['nick'])
                rpt_effect_db = RptEffectDB(mongoConn, str(shop_info['sid']))
                rpt_effect_db.clear_one_day_ago_rpt(RptAll.ONE_WEEK_AGO)
                rpt_effect_db.clear_one_day_rpt(RptAll.YESTERDAY)

                effect_rpt_get = EffectRptGet(shop_info['nick'],
                                              shop_info['access_token'],
                                              shop_info['subway_token'],
                                              shop_info['campaign_ids'])

                effect_rpt_list = effect_rpt_get.yesterday_rpt_get()
                rpt_effect_db.save_records(effect_rpt_list)
                report_logger.info("店铺  [%s] 重新获取效果报表完成,条数 %d",
                                   shop_info['nick'], len(effect_rpt_list))
            except Exception, data:
                report_logger.exception('get effect data exception')
Example #7
0
class RptAll(object):
    """
    根据店铺信息列表 获取所有的报表信息 
    """
    YESTERDAY = ''
    ONE_WEEK_AGO = ''

    @classmethod
    def get_day_info(cls):
        RptAll.YESTERDAY = DateHandle.date_to_string(
            DateHandle.get_yesterday_date())
        RptAll.ONE_WEEK_AGO = DateHandle.date_to_string(
            DateHandle.get_one_week_ago_date())

    @classmethod
    def get_base_data_topats(cls, shop_info_list):
        """
        获取店铺的所有计划的base数据
        """
        #初始化异步报表下载
        fail_shop_info_list = []
        rpt_topats_list_mid = []
        shop_info_list_mid = []
        for shop_info in shop_info_list:
            try:
                campaign_ids = shop_info['campaign_ids']
                base_rpt_topats = BaseRptTopatsGet(shop_info['sid'],
                                                   shop_info['nick'],
                                                   shop_info['access_token'],
                                                   shop_info['subway_token'],
                                                   campaign_ids)
                base_rpt_topats.generate_base_task_id()
            except Exception, data:
                report_logger.exception('初始化异步报表出错')
                fail_shop_info_list.append(shop_info)
                continue
            rpt_topats_list_mid.append(base_rpt_topats)
            shop_info_list_mid.append(shop_info)
            time.sleep(2)

        time.sleep(TOPATS_SLEEP_TIME)
        #time.sleep(20)

        #获取下载链接, 下载报表并存储
        for i in range(0, len(shop_info_list_mid)):
            rpt_topats = rpt_topats_list_mid[i]

            try:
                if not rpt_topats.check_task_ok():
                    fail_shop_info_list.append(shop_info_list_mid[i])
                if not rpt_topats.download_rpt():
                    fail_shop_info_list.append(shop_info_list_mid[i])
                if not rpt_topats.parse_rpt():
                    fail_shop_info_list.append(shop_info_list_mid[i])
                rpt_base_db = RptBaseDB(mongoConn,
                                        str(shop_info_list_mid[i]['sid']))
                rpt_base_db.clear_one_day_ago_rpt(RptAll.ONE_WEEK_AGO)
                rpt_base_db.clear_one_day_rpt(RptAll.YESTERDAY)
                rpt_base_db.save_records(rpt_topats.rpt_record_list)
            except Exception, data:
                report_logger.exception('获取下载链接,抓取或存储出错')
                fail_shop_info_list.append(shop_info_list_mid[i])

            time.sleep(0.2)
Example #8
0
        time.sleep(TOPATS_SLEEP_TIME)
        #time.sleep(20)

        #获取下载链接, 下载报表并存储
        for i in range(0, len(shop_info_list_mid)):
            rpt_topats = rpt_topats_list_mid[i]
            try:
                if not rpt_topats.check_task_ok():
                    fail_shop_info_list.append(shop_info_list_mid[i])
                if not rpt_topats.download_rpt():
                    fail_shop_info_list.append(shop_info_list_mid[i])
                if not rpt_topats.parse_rpt():
                    fail_shop_info_list.append(shop_info_list_mid[i])
            except Exception, data:
                report_logger.exception('获取下载链接,抓取或存储出错')
                fail_shop_info_list.append(shop_info_list_mid[i])

            rpt_effect_db = RptEffectDB(mongoConn,
                                        str(shop_info_list_mid[i]['sid']))
            rpt_effect_db.clear_one_day_ago_rpt(RptAll.ONE_WEEK_AGO)
            rpt_effect_db.clear_one_day_rpt(RptAll.YESTERDAY)
            rpt_effect_db.save_records(rpt_topats.rpt_record_list)
            time.sleep(2)

        return fail_shop_info_list

    @classmethod
    def get_campaigns_by_shop_info(cls, shop_info):
        """
        根据店铺信息获得店铺所有的计划信息
Example #9
0
        time.sleep(TOPATS_SLEEP_TIME)
        # time.sleep(20)

        # 获取下载链接, 下载报表并存储
        for i in range(0, len(shop_info_list_mid)):
            rpt_topats = rpt_topats_list_mid[i]
            try:
                if not rpt_topats.check_task_ok():
                    fail_shop_info_list.append(shop_info_list_mid[i])
                if not rpt_topats.download_rpt():
                    fail_shop_info_list.append(shop_info_list_mid[i])
                if not rpt_topats.parse_rpt():
                    fail_shop_info_list.append(shop_info_list_mid[i])
            except Exception, data:
                report_logger.exception("获取下载链接,抓取或存储出错")
                fail_shop_info_list.append(shop_info_list_mid[i])

            rpt_effect_db = RptEffectDB(mongoConn, str(shop_info_list_mid[i]["sid"]))
            rpt_effect_db.clear_one_day_ago_rpt(RptAll.ONE_WEEK_AGO)
            rpt_effect_db.clear_one_day_rpt(RptAll.YESTERDAY)
            rpt_effect_db.save_records(rpt_topats.rpt_record_list)
            time.sleep(2)

        return fail_shop_info_list

    @classmethod
    def get_campaigns_by_shop_info(cls, shop_info):
        """
        根据店铺信息获得店铺所有的计划信息
        """