예제 #1
0
    def is_effect_rpt_correct(cls, shop_info):
        rpt_effect_db = RptEffectDB(mongoConn, str(shop_info['sid']))
        summary_rpt = rpt_effect_db.get_one_day_summary_rpt(RptAll.YESTERDAY)

        summary_rpt_stand = {}
        for campaign_id in shop_info['campaign_ids']:
            rpt_effect_yesterday = SimbaRptCampaignEffectGet.get_yesterday_rpt_campaigneffect_list(
                shop_info['nick'], campaign_id, 'SEARCH,CAT', '1,2',
                shop_info['access_token'], shop_info['subway_token'])

            summary_rpt_stand[campaign_id] = {
                'pay': rpt_effect_yesterday['pay'],
                'paycount': rpt_effect_yesterday['paycount'],
                'fav': rpt_effect_yesterday['fav']
            }

        for campaign_id in summary_rpt_stand.keys():
            if summary_rpt_stand[campaign_id]['pay'] == 0 and summary_rpt_stand[campaign_id]['paycount'] == 0 \
                    and summary_rpt_stand[campaign_id]['fav'] == 0:
                continue
            if not summary_rpt.has_key(campaign_id):
                return False
            if summary_rpt_stand[campaign_id] != summary_rpt[campaign_id]:
                return False
        return True
예제 #2
0
    def is_effect_rpt_correct(cls, shop_info):
        rpt_effect_db = RptEffectDB(mongoConn, str(shop_info["sid"]))
        summary_rpt = rpt_effect_db.get_one_day_summary_rpt(RptAll.YESTERDAY)

        summary_rpt_stand = {}
        for campaign_id in shop_info["campaign_ids"]:
            rpt_effect_yesterday = SimbaRptCampaignEffectGet.get_yesterday_rpt_campaigneffect_list(
                shop_info["nick"],
                campaign_id,
                "SEARCH,CAT",
                "1,2",
                shop_info["access_token"],
                shop_info["subway_token"],
            )

            summary_rpt_stand[campaign_id] = {
                "pay": rpt_effect_yesterday["pay"],
                "paycount": rpt_effect_yesterday["paycount"],
                "fav": rpt_effect_yesterday["fav"],
            }

        for campaign_id in summary_rpt_stand.keys():
            if (
                summary_rpt_stand[campaign_id]["pay"] == 0
                and summary_rpt_stand[campaign_id]["paycount"] == 0
                and summary_rpt_stand[campaign_id]["fav"] == 0
            ):
                continue
            if not summary_rpt.has_key(campaign_id):
                return False
            if summary_rpt_stand[campaign_id] != summary_rpt[campaign_id]:
                return False
        return True
예제 #3
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')
예제 #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")
예제 #5
0
        #获取下载链接, 下载报表并存储
        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):
        """
        根据店铺信息获得店铺所有的计划信息
        """
        campaigns = SimbaCampaignsGet.get_campaign_list(
            shop_info['access_token'], shop_info['nick'])
        campaign_ids = []
예제 #6
0
        # 获取下载链接, 下载报表并存储
        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):
        """
        根据店铺信息获得店铺所有的计划信息
        """
        campaigns = SimbaCampaignsGet.get_campaign_list(shop_info["access_token"], shop_info["nick"])
        campaign_ids = []
        for campaign in campaigns: