renyupeng 3 éve
szülő
commit
edc4af75c7
1 módosított fájl, 68 hozzáadás és 126 törlés
  1. 68 126
      Apietl/task/AppBytedanceAccountBaseInfoDsD.py

+ 68 - 126
Apietl/task/AppBytedanceAccountBaseInfoDsD.py

@@ -54,7 +54,7 @@ class AppBytedanceAccountBaseInfoDsD:
             trust_campaign_num,
             trust_unit_num
             )
-         select stat_date,
+select {date_time}                       stat_date,
        t1.account_id,
        bei.account_name,
        bei.project_id,
@@ -69,62 +69,105 @@ class AppBytedanceAccountBaseInfoDsD:
        bei.company_name,
        bei.dept_id,
        bei.dept_name,
-       (ifnull(t1.all_campaign_num, 0) + ifnull(cam.campain_num, 0)) as all_campaign_num,
-       cam.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(20220627, INTERVAL 1 DAY)) t1
+       sum_cam.cam_num                as all_campaign_num,
+       cam.campain_num                   new_campaign_num,
+       sum_ad.ad_num                  as all_ad_num,
+       t2.ad_num                         new_ad_num,
+       video_num                      as all_video_num,
+       t3.day_num                        new_video_num,
+       sum_eff.new_eff_material          effect_num,
+       ifnull(t4.new_eff_material, 0) as new_effect_num,
+       sum_hot.new_hot_material       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 `jeecg-boot`.ctop_user_allocation where media_id = 1) 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') = 20220627
+      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 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
+) sum_ad on t1.account_id = sum_ad.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') = 20220627
+                    where date_format(campaign_create_time, '%Y%m%d') = {date_time}
                     group by advertiser_id) cam
                    on t1.account_id = cam.advertiser_id
+         left join(
+    select advertiser_id, count(campaign_id) cam_num
+    from `media_api`.bytedance_campaign_get
+    where date_format(campaign_create_time, '%Y%m%d') <= {date_time}
+    group by advertiser_id
+) sum_cam on t1.account_id = sum_cam.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') = 20220627
+      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 advertiser_id account_id, count(distinct signature) video_num
+      from `media_api`.bytedance_file_video_get
+      where date_format(create_time, '%Y%m%d') <= {date_time}
+
+      group by advertiser_id) all_video
+     on t1.account_id = all_video.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 = 20220627) t1
+      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(20220627, INTERVAL 29 DAY)) t2
+                  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_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_time}) t2
+           on t1.material_id = t2.signature
+      group by t2.account_id) sum_eff
+     on t1.account_id = sum_eff.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 = 20220627) t1
+      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(20220627, INTERVAL 29 DAY)) t2
+                  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 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_time}) t2
+           on t1.material_id = t2.signature
+      group by t2.account_id) sum_hot
+     on t1.account_id = sum_hot.account_id
+
+
          left join
      (
          SELECT cua.account_id   id,
@@ -161,107 +204,6 @@ from (select *
      ) bei
      ON t1.account_id = bei.account_id
 where bei.account_id is not null
-union all
-            select
-            20220627 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,
-            cam.campaign_num as all_campaign_num ,
-            cam.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,
-            t3.day_num new_video_num,
-            ifnull(t4.new_eff_material,0) as effect_num,
-            ifnull(t4.new_eff_material,0) as new_effect_num,
-            ifnull(t5.new_hot_material,0) as hot_num,
-            ifnull(t5.new_hot_material,0) as new_hot_num,
-            0 put_campaign_num,
-            0 put_unit_num,
-            0 trust_campaign_num,
-            0 trust_unit_num
-            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')=20220627) t1
-            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')=20220627 group by account_id) t2
-            on t1.account_id=t2.account_id
-                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')=20220627 group by advertiser_id) cam
-            on t1.account_id=cam.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')=20220627 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=20220627) 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(20220627,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=20220627) 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(20220627,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 tt.account_id is null and bei.account_id is not null
-            group by t1.account_id;
             """.format(date_time=self.date_time)
             print(sql)
             TidbConn.upsert(conn=self.conn, sql_buff=sql)