renyupeng před 3 roky
rodič
revize
5e8f7e3cb4
1 změnil soubory, kde provedl 132 přidání a 110 odebrání
  1. 132 110
      Apietl/task/AppBytedanceAccountBaseInfoDsD.py

+ 132 - 110
Apietl/task/AppBytedanceAccountBaseInfoDsD.py

@@ -54,7 +54,115 @@ class AppBytedanceAccountBaseInfoDsD:
             trust_campaign_num,
             trust_unit_num
             )
-            select 
+         select stat_date,
+       t1.account_id,
+       bei.account_name,
+       bei.project_id,
+       bei.project_name,
+       bei.product_id,
+       bei.product_name,
+       bei.user_id,
+       bei.user_name,
+       bei.leader_id,
+       bei.leader_name,
+       bei.company_id,
+       bei.company_name,
+       bei.dept_id,
+       bei.dept_name,
+       (ifnull(t1.all_campaign_num, 0) + ifnull(t3.campain_num, 0)) as all_campaign_num,
+       t3.campain_num                                                  new_campaign_num,
+       (ifnull(t1.all_ad_num, 0) + ifnull(t2.ad_num, 0))            as all_ad_num,
+       t2.ad_num                                                       new_ad_num,
+       (ifnull(t1.all_video_num, 0) + ifnull(t3.day_num, 0))        as all_video_num,
+       t3.day_num                                                      new_video_num,
+       (ifnull(t1.effect_num, 0) + ifnull(t4.new_eff_material, 0))     effect_num,
+       ifnull(t4.new_eff_material, 0)                               as new_effect_num,
+       (ifnull(t1.hot_num, 0) + ifnull(t5.new_hot_material, 0))     as hot_num,
+       ifnull(t5.new_hot_material, 0)                               as new_hot_num,
+       0                                                            as put_campaign_num,
+       0                                                            as put_unit_num,
+       0                                                            as trust_campaign_num,
+       0                                                            as trust_unit_num
+from (select *
+      from `application`.`app_bytedance_account_base_info_d`
+      where stat_date = date_sub({date_time}, INTERVAL 1 DAY)) t1
+         left join
+     (select account_id, count(id) ad_num
+      from `media_api`.bytedance_ad_get
+      where date_format(ad_create_time, '%Y%m%d') = {date_time}
+      group by account_id) t2
+     on t1.account_id = t2.account_id
+         left join (select advertiser_id, count(campaign_id) campain_num
+                    from media_api.bytedance_campaign_get
+                    where date_format(campaign_create_time, '%Y%m%d') = {date_time}
+                    group by advertiser_id) t3
+                   on t1.account_id = t3.advertiser_id
+         left join
+     (select advertiser_id account_id, count(distinct signature) day_num
+      from `media_api`.bytedance_file_video_get
+      where date_format(create_time, '%Y%m%d') = {date_time}
+      group by advertiser_id) t3
+     on t1.account_id = t3.account_id
+         left join
+     (select t2.account_id, count(distinct t1.material_id) new_eff_material
+      from (select material_id from application.app_bytedance_material_info where effect_date = {date_time}) t1
+               inner join
+           (select distinct advertiser_id account_id, signature
+            from `media_api`.bytedance_file_video_get
+            where date_format(create_time, '%Y%m%d') >=
+                  date_sub({date_time}, INTERVAL 29 DAY)) t2
+           on t1.material_id = t2.signature
+      group by t2.account_id) t4
+     on t1.account_id = t4.account_id
+         left join
+     (select t2.account_id, count(distinct t1.material_id) new_hot_material
+      from (select material_id from application.app_bytedance_material_info where faddish_date = {date_time}) t1
+               inner join
+           (select distinct advertiser_id account_id, signature
+            from `media_api`.bytedance_file_video_get
+            where date_format(create_time, '%Y%m%d') >=
+                  date_sub({date_time}, INTERVAL 29 DAY)) t2
+           on t1.material_id = t2.signature
+      group by t2.account_id) t5
+     on t1.account_id = t5.account_id
+         left join
+     (
+         SELECT cua.account_id   id,
+                cua.account_id,
+                cp.id            project_id,
+                product.id       product_id,
+                product.product_name,
+                ca.id            advertiser_id,
+                uc.company_id    company_id,
+                cua.auth_name    account_name,
+                cp.project_name  project_name,
+                ca.`name`        advertiser_name,
+                uc.company_name  company_name,
+                cp.sale_id       sale_id,
+                su.id            user_id,
+                su.realname      user_name,
+                su.leader_id,
+                lea.realname     leader_name,
+                su.org_code      org_code,
+                dep.dep_id       dept_id,
+                part.depart_name dept_name
+         FROM `jeecg-boot`.ctop_user_allocation cua
+                  LEFT JOIN `jeecg-boot`.ctop_project cp ON cua.project_id = cp.id
+                  LEFT JOIN `jeecg-boot`.ctop_advertiser ca ON ca.id = cua.advertiser_id
+                  LEFT JOIN `jeecg-boot`.sys_user su ON su.id = cua.user_id
+                  LEFT JOIN `jeecg-boot`.sys_user lea ON lea.id = su.leader_id
+                  LEFT JOIN `jeecg-boot`.user_company uc ON uc.user_id = cua.user_id
+                  LEFT JOIN `jeecg-boot`.ctop_product product ON product.id = cp.product_id
+                  LEFT JOIN `jeecg-boot`.sys_user_depart dep ON cua.user_id = dep.user_id
+                  LEFT JOIN `jeecg-boot`.sys_depart part ON dep.dep_id = part.id
+         WHERE cua.account_id IS NOT NULL
+           and cua.account_status = 0
+           and cua.media_id = 1
+     ) bei
+     ON t1.account_id = bei.account_id
+where bei.account_id is not null
+union all
+            select
             {date_time} stat_date,
             t1.account_id,
             bei.account_name,
@@ -70,100 +178,8 @@ class AppBytedanceAccountBaseInfoDsD:
             bei.company_name,
             bei.dept_id,
             bei.dept_name,
-            (ifnull(t1.all_campaign_num,0)+ifnull(t2.cam_num,0)) as all_campaign_num ,
-            t2.cam_num new_campaign_num,
-            (ifnull(t1.all_ad_num,0)+ifnull(t2.ad_num,0)) as all_ad_num,
-            t2.ad_num new_ad_num,
-            (ifnull(t1.all_video_num,0)+ifnull(t3.day_num,0)) as all_video_num,
-            t3.day_num new_video_num,
-            (ifnull(t1.effect_num,0)+ifnull(t4.new_eff_material,0)) effect_num,
-            ifnull(t4.new_eff_material,0) as new_effect_num,
-            (ifnull(t1.hot_num,0)+ifnull(t5.new_hot_material,0)) as hot_num,
-            ifnull(t5.new_hot_material,0) as new_hot_num,
-            t1.put_campaign_num,
-            t1.put_unit_num,
-            t1.trust_campaign_num,
-            t1.trust_unit_num
-            from (select * from `application`.`app_bytedance_account_base_info_d` where stat_date= date_sub({date_time}, INTERVAL 1 DAY)) t1
-            left join 
-            (select account_id,count(distinct campaign_id) cam_num,count(id) ad_num from  `media_api`.bytedance_ad_get 
-            where date_format(ad_create_time,'%Y%m%d')={date_time} group by account_id) t2
-            on t1.account_id=t2.account_id
-            left join 
-            (select  advertiser_id account_id,count(distinct signature) day_num from `media_api`.bytedance_file_video_get  
-            where date_format(create_time,'%Y%m%d')={date_time} group by advertiser_id) t3
-            on t1.account_id=t3.account_id
-            left join 
-            (select t2.account_id,count(distinct t1.material_id) new_eff_material from 
-            (select material_id from application.app_bytedance_material_info where effect_date={date_time}) t1
-            inner join 
-            (select distinct advertiser_id account_id,signature from `media_api`.bytedance_file_video_get where date_format(create_time,'%Y%m%d')>=
-            date_sub({date_time},INTERVAL 29 DAY)) t2
-            on t1.material_id=t2.signature group by t2.account_id) t4
-            on t1.account_id=t4.account_id
-            left join 
-            (select t2.account_id,count(distinct t1.material_id) new_hot_material from 
-            (select material_id from application.app_bytedance_material_info where faddish_date={date_time}) t1
-            inner join 
-            (select distinct advertiser_id account_id,signature from `media_api`.bytedance_file_video_get where date_format(create_time,'%Y%m%d')>=
-            date_sub({date_time},INTERVAL 29 DAY)) t2
-            on t1.material_id=t2.signature group by t2.account_id) t5
-            on t1.account_id=t5.account_id
-         left join 
-            (
-            SELECT
-            cua.account_id id,
-            cua.account_id,
-            cp.id project_id,
-            product.id product_id,
-            product.product_name,
-            ca.id advertiser_id,
-            uc.company_id company_id,
-            cua.auth_name account_name,
-            cp.project_name project_name,
-            ca.`name` advertiser_name,
-            uc.company_name company_name,
-            cp.sale_id sale_id,
-            su.id user_id,
-            su.realname user_name,
-            su.leader_id,
-            lea.realname leader_name,
-            su.org_code org_code,
-            dep.dep_id dept_id,
-            part.depart_name dept_name
-            FROM
-            `jeecg-boot`.ctop_user_allocation cua
-            LEFT JOIN `jeecg-boot`.ctop_project cp ON cua.project_id = cp.id
-            LEFT JOIN `jeecg-boot`.ctop_advertiser ca ON ca.id = cua.advertiser_id
-            LEFT JOIN `jeecg-boot`.sys_user su ON su.id = cua.user_id
-            LEFT JOIN `jeecg-boot`.sys_user lea ON lea.id = su.leader_id 
-            LEFT JOIN `jeecg-boot`.user_company uc ON uc.user_id = cua.user_id
-            LEFT JOIN `jeecg-boot`.ctop_product product ON product.id = cp.product_id
-            LEFT JOIN `jeecg-boot`.sys_user_depart dep ON cua.user_id=dep.user_id
-            LEFT JOIN `jeecg-boot`.sys_depart part  ON dep.dep_id=part.id
-            WHERE
-            cua.account_id IS NOT NULL and cua.account_status=0 and cua.media_id=1
-            ) bei
-            ON t1.account_id = bei.account_id  where bei.account_id is not null
-            union all
-            select 
-            {date_time} stat_date,
-            t1.account_id,
-            bei.account_name,
-            bei.project_id,
-            bei.project_name,
-            bei.product_id,
-            bei.product_name,
-            bei.user_id,
-            bei.user_name,
-            bei.leader_id,
-            bei.leader_name,
-            bei.company_id,
-            bei.company_name,
-            bei.dept_id,
-            bei.dept_name,
-            t2.cam_num as all_campaign_num ,
-            t2.cam_num new_campaign_num,
+            t3.campaign_num as all_campaign_num ,
+            t3.campaign_num new_campaign_num,
             t2.ad_num as all_ad_num,
             t2.ad_num as new_ad_num,
             t3.day_num as all_video_num,
@@ -176,35 +192,40 @@ class AppBytedanceAccountBaseInfoDsD:
             0 put_unit_num,
             0 trust_campaign_num,
             0 trust_unit_num
-            from 
+            from
+              (select distinct account_id from `application`.`app_bytedance_account_base_info_d`) tt
+                              left join
             (select distinct advertiser_id account_id,signature from `media_api`.bytedance_file_video_get where date_format(create_time,'%Y%m%d')={date_time}) t1
-            left join (select distinct account_id from `application`.`app_bytedance_account_base_info_d`) tt
-            on t1.account_id=tt.account_id 
-            left join 
-            (select account_id,count(distinct campaign_id) cam_num,count(id) ad_num from  `media_api`.bytedance_ad_get 
+            on tt.account_id=t1.account_id
+            left join
+            (select account_id,count(id) ad_num from  `media_api`.bytedance_ad_get
             where date_format(ad_create_time,'%Y%m%d')={date_time} group by account_id) t2
             on t1.account_id=t2.account_id
-            left join 
-            (select  advertiser_id account_id,count(distinct signature) day_num from `media_api`.bytedance_file_video_get  
+                left join
+                    (select advertiser_id,count(campaign_id) campaign_num from  `media_api`.bytedance_campaign_get
+            where date_format(campaign_create_time,'%Y%m%d')={date_time} group by advertiser_id) t3
+            on t1.account_id=t3.advertiser_id
+            left join
+            (select  advertiser_id account_id,count(distinct signature) day_num from `media_api`.bytedance_file_video_get
             where date_format(create_time,'%Y%m%d')={date_time} group by advertiser_id) t3
             on t1.account_id=t3.account_id
-            left join 
-            (select t2.account_id,count(distinct t1.material_id) new_eff_material from 
+            left join
+            (select t2.account_id,count(distinct t1.material_id) new_eff_material from
             (select material_id from application.app_bytedance_material_info where effect_date={date_time}) t1
-            inner join 
+            inner join
             (select distinct advertiser_id account_id,signature from `media_api`.bytedance_file_video_get where date_format(create_time,'%Y%m%d')>=
             date_sub({date_time},INTERVAL 29 DAY)) t2
             on t1.material_id=t2.signature group by t2.account_id) t4
             on t1.account_id=t4.account_id
-            left join 
-            (select t2.account_id,count(distinct t1.material_id) new_hot_material from 
+            left join
+            (select t2.account_id,count(distinct t1.material_id) new_hot_material from
             (select material_id from application.app_bytedance_material_info where faddish_date={date_time}) t1
-            inner join 
+            inner join
             (select distinct advertiser_id account_id,signature from `media_api`.bytedance_file_video_get where date_format(create_time,'%Y%m%d')>=
             date_sub({date_time},INTERVAL 29 DAY)) t2
             on t1.material_id=t2.signature group by t2.account_id) t5
             on t1.account_id=t5.account_id
-            left join 
+            left join
             (
             SELECT
             cua.account_id id,
@@ -231,7 +252,7 @@ class AppBytedanceAccountBaseInfoDsD:
             LEFT JOIN `jeecg-boot`.ctop_project cp ON cua.project_id = cp.id
             LEFT JOIN `jeecg-boot`.ctop_advertiser ca ON ca.id = cua.advertiser_id
             LEFT JOIN `jeecg-boot`.sys_user su ON su.id = cua.user_id
-            LEFT JOIN `jeecg-boot`.sys_user lea ON lea.id = su.leader_id 
+            LEFT JOIN `jeecg-boot`.sys_user lea ON lea.id = su.leader_id
             LEFT JOIN `jeecg-boot`.user_company uc ON uc.user_id = cua.user_id
             LEFT JOIN `jeecg-boot`.ctop_product product ON product.id = cp.product_id
             LEFT JOIN `jeecg-boot`.sys_user_depart dep ON cua.user_id=dep.user_id
@@ -241,6 +262,7 @@ class AppBytedanceAccountBaseInfoDsD:
             ) bei
             ON t1.account_id = bei.account_id  where tt.account_id is null and bei.account_id is not null
             group by t1.account_id;
+
             """.format(date_time=self.date_time)
             TidbConn.upsert(conn=self.conn, sql_buff=sql)
             self.conn.commit()