renyupeng 2 年之前
父节点
当前提交
c07093b701

+ 1 - 1
Apietl/task/AppBytedanceMaterialProjectRalation.py

@@ -30,7 +30,7 @@ select project_id, signature,create_time,row_number() over (partition by signatu
 from (select advertiser_id, signature,create_time
       from media_api.bytedance_file_video_get where  advertiser_id ={account_id} 
       and create_time>=date_format(date_sub(now(),interval 3 day),'%Y-%m-%d')
-      and signature is not null
+      and signature is not null and source='AD_SITE'
       group by advertiser_id, signature) a
          left join
      (select account_id, project_id from `jeecg-boot`.ctop_user_allocation where media_id != 2) b

+ 45 - 30
Apietl/task/AppKuaishouAccountBaseInfoDsD.py

@@ -55,7 +55,7 @@ trust_campaign_num,
 trust_unit_num
 )
 select * from (
-select 
+select
 {date_time} stat_date,
 t1.account_id,
 bei.account_name,
@@ -83,34 +83,41 @@ ifnull(t4.new_eff_material,0) as new_effect_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
+trush_cam_num,
+trust_unit_num
 from (select * from `application`.`app_kuaishou_account_base_info_d` where stat_date= date_sub({date_time}, INTERVAL 1 DAY)) t1
-left join 
+left join
 (select advertiser_id account_id,count(distinct campaign_id) cam_num ,count(unit_id) unit_num   from  `media_api`.kuaishou_ad_unit_list where date_format(create_time,'%Y%m%d')={date_time}
 group by advertiser_id) t2
 on t1.account_id=t2.account_id
-left join 
-(select account_id,count(distinct signature) day_num from `media_api`.kuaishou_video_list  
+left join
+(select account_id,count(distinct signature) day_num from `media_api`.kuaishou_video_list
 where date_format(stat_date,'%Y%m%d')={date_time} group by account_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_kuaishou_material_info where effect_date={date_time}) t1
-inner join 
+inner join
 (select distinct account_id,signature from `media_api`.kuaishou_video_list where date_format(stat_date,'%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_kuaishou_material_info where faddish_date={date_time}) t1
-inner join 
+inner join
 (select distinct account_id,signature from `media_api`.kuaishou_video_list where date_format(stat_date,'%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 advertiser_id account_id,count(unit_id) trush_unit_num, count(distinct campaign_id) trush_cam_num  from  `media_api`.kuaishou_ad_unit_list where date_format(create_time,'%Y%m%d')={date_time}
+   and unit_source=1
+group by advertiser_id
+    )trush
+    on t1.account_id=trush.account_id
+left join
 (
 SELECT
 cua.account_id id,
@@ -137,7 +144,7 @@ FROM
 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
@@ -147,7 +154,7 @@ cua.account_id IS NOT NULL and cua.account_status=0 and cua.media_id=2
 ) bei
 ON t1.account_id = bei.account_id  where bei.account_id is not null
 union all
-select 
+select
 {date_time} stat_date,
 t1.account_id,
 bei.account_name,
@@ -175,38 +182,45 @@ 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 
+ trush_cam_num,
+ trush_unit_num
+from
 (select distinct account_id,signature from `media_api`.kuaishou_video_list where date_format(stat_date,'%Y%m%d')={date_time}) t1
-left join 
+left join
 (select * from `application`.`app_kuaishou_account_base_info_d` where stat_date= date_sub({date_time}, INTERVAL 1 DAY)) tt
 on t1.account_id=tt.account_id
-left join 
+left join
 (select advertiser_id account_id,count(distinct campaign_id) cam_num ,count(unit_id) unit_num   from  `media_api`.kuaishou_ad_unit_list where date_format(create_time,'%Y%m%d')={date_time}
 group by advertiser_id) t2
 on t1.account_id=t2.account_id
-left join 
-(select account_id,count(distinct signature) day_num from `media_api`.kuaishou_video_list  
+left join
+(select account_id,count(distinct signature) day_num from `media_api`.kuaishou_video_list
 where date_format(stat_date,'%Y%m%d')={date_time} group by account_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_kuaishou_material_info where effect_date={date_time}) t1
-inner join 
+inner join
 (select distinct account_id,signature from `media_api`.kuaishou_video_list where date_format(stat_date,'%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_kuaishou_material_info where faddish_date={date_time}) t1
-inner join 
+inner join
 (select distinct account_id,signature from `media_api`.kuaishou_video_list where date_format(stat_date,'%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 advertiser_id account_id,count(unit_id) trush_unit_num, count(distinct campaign_id) trush_cam_num  from  `media_api`.kuaishou_ad_unit_list where date_format(create_time,'%Y%m%d')={date_time}
+   and unit_source=1
+group by advertiser_id
+    )trush
+    on t1.account_id=trush.account_id
+left join
 (
 SELECT
 cua.account_id id,
@@ -233,7 +247,7 @@ FROM
 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
@@ -242,6 +256,7 @@ WHERE
 cua.account_id IS NOT NULL and cua.account_status=0 and cua.media_id=2
 ) bei
 ON t1.account_id = bei.account_id  where tt.account_id is null and bei.account_id is not null) m;
+
    """.format(date_time=self.date_time)
             TidbConn.upsert(conn=self.conn, sql_buff=sql)
             self.conn.commit()

+ 84 - 0
Apietl/task/AppKuaishouAccountTodayBaseInfoD.py

@@ -0,0 +1,84 @@
+# Author zhaohailiang
+# coding=utf-8
+# @Time    : 2022/01/19 21:10 下午
+# @Site    :
+# @File    : AppKuaishouAccountTodayBaseInfoD.py
+# @Software: PyCharm
+# @contact: zhaohailiang@c-top.com.cn
+# @Tel 18201631162
+import datetime
+import logging
+
+from Apietl.conn.TidbConn import TidbConn
+from Apietl.utlis.Utils import Utils
+
+
+class AppKuaishouAccountTodayBaseInfoD:
+    def __init__(self):
+        self.conn = TidbConn.get_connection()
+        self.date_time = (datetime.date.today() + datetime.timedelta(0)).strftime("%Y%m%d")
+
+    def taskHandler(self):
+        try:
+            sql = """
+replace into application.app_kuaishou_account_today_base_info_d(stat_date, hour, project_id, account_id, user_id,
+                                                                user_name, leader_id, leader_name, new_all_unit_num,
+                                                                new_unit_num, new_trush_unit_num, account_name,
+                                                                project_name)
+select stat_date,
+       hour,
+       project_id,
+       a.advertiser_id,
+       info.user_id,
+       user.realname as user_name,
+       user.leader_id,
+       leader.realname,
+       all_unit_num,
+       unit_num,
+       trush_unit_num,
+       auth_name     as acount_name,
+       pro.project_name
+from (select stat_date,
+             advertiser_id,
+             hour,
+             count(distinct unit_id) as all_unit_num,
+             sum(unit_num)           as unit_num,
+             sum(trush_unit_num)     as trush_unit_num
+      from (
+               select date_format(create_time, '%Y%m%d') as stat_date,
+                      advertiser_id,
+                      unit_id,
+                      create_time,
+                      hour(create_time)                  as hour,
+                      if(unit_source = 0, 1, 0)          as unit_num,
+                      if(unit_source = 1, 1, 0)          as trush_unit_num
+               from media_api.kuaishou_ad_unit_list
+               where date_format(create_time, '%Y%m%d') = {date_time}) t
+      group by advertiser_id, hour) a
+         left join `jeecg-boot`.ctop_user_allocation info
+                   on a.advertiser_id = info.account_id
+         left join `jeecg-boot`.ctop_project pro
+                   on info.project_id = pro.id
+         left join `jeecg-boot`.sys_user user
+                   on info.user_id = user.id
+         left join `jeecg-boot`.sys_user leader
+                   on user.leader_id = leader.id
+            """.format(date_time=self.date_time)
+            print(sql)
+            TidbConn.upsert(conn=self.conn, sql_buff=sql)
+            self.conn.commit()
+            TidbConn.conn_close(conn=self.conn)
+            return 0
+        except Exception as e:
+            logging.error(e)
+            return -1
+
+
+if __name__ == '__main__':
+    status = AppKuaishouAccountTodayBaseInfoD().taskHandler()
+    if status == 0:
+        print("作业执行成功")
+        exit(0)
+    else:
+        print("作业执行失败")
+        exit(-1)

+ 142 - 0
Apietl/task/TodayMaterialUploadNum.py

@@ -0,0 +1,142 @@
+# Author zhaohailiang
+# coding=utf-8
+# @Time    : 2022/01/19 21:10 下午
+# @Site    :
+# @File    : TodayMaterialUploadNum.py
+# @Software: PyCharm
+# @contact: renyupeng@c-top.com.cn
+# @Tel 15011435553
+import datetime
+import logging
+
+from Apietl.conn.TidbConn import TidbConn
+from Apietl.utlis.Utils import Utils
+
+
+class TodayMaterialUploadNum:
+    def __init__(self):
+        self.conn = TidbConn.get_connection()
+        self.date_time = (datetime.date.today() + datetime.timedelta(0)).strftime("%Y%m%d")
+
+    def taskHandler(self):
+        try:
+            sql = """
+replace into application.today_material_upload_num(stat_date, hour, type_id, dimension, dimension_name,
+                                                   material_upload_adsp_num, material_upload_media_num)
+select stat_date,
+       hour,
+       type_id,
+       project_id,
+       project_name,
+       sum(material_upload_adsp_num)  as material_upload_adsp_num,
+       sum(material_upload_media_num) as material_upload_media_num
+from (
+         select date_format(create_time, '%Y%m%d') as stat_date,
+                hour(create_time)                  as hour,
+                1                                  as type_id,
+                project_id,
+                if(status = 1, 1, 0)               as material_upload_adsp_num,
+                if(sync_kuaishou = 2, 1, 0)        as material_upload_media_num
+         from `jeecg-boot`.ctop_material_info
+         where date_format(create_time, '%Y%m%d') = {stat_date}
+           and status = 1
+     ) t
+         left join `jeecg-boot`.ctop_project pro
+                   on t.project_id = pro.id
+group by stat_date, hour, project_id
+union all
+select stat_date,
+       hour,
+       type_id,
+       shot_id,
+       realname                       as shot_name,
+       sum(material_upload_adsp_num)  as material_upload_adsp_num,
+       sum(material_upload_media_num) as material_upload_media_num
+from (
+         select date_format(info.create_time, '%Y%m%d') as stat_date,
+                hour(info.create_time)                  as hour,
+                2                                       as type_id,
+                shot_id,
+                if(status = 1, 1, 0)                    as material_upload_adsp_num,
+                if(sync_kuaishou = 2, 1, 0)             as material_upload_media_num
+         from `jeecg-boot`.ctop_material_info info
+                  left join `jeecg-boot`.ctop_material_ascription design
+                            on info.code = design.material_id
+         where date_format(info.create_time, '%Y%m%d') = {stat_date}
+           and status = 1
+     ) t
+         left join `jeecg-boot`.sys_user user
+                   on t.shot_id = user.id
+where shot_id != ''
+group by stat_date, hour, shot_id
+
+union all
+
+select stat_date,
+       hour,
+       type_id,
+       plan_id,
+       realname                       as plan_name,
+       sum(material_upload_adsp_num)  as material_upload_adsp_num,
+       sum(material_upload_media_num) as material_upload_media_num
+from (
+         select date_format(info.create_time, '%Y%m%d') as stat_date,
+                hour(info.create_time)                  as hour,
+                3                                       as type_id,
+                plan_id,
+                if(status = 1, 1, 0)                    as material_upload_adsp_num,
+                if(sync_kuaishou = 2, 1, 0)             as material_upload_media_num
+         from `jeecg-boot`.ctop_material_info info
+                  left join `jeecg-boot`.ctop_material_ascription design
+                            on info.code = design.material_id
+         where date_format(info.create_time, '%Y%m%d') = {stat_date}
+           and status = 1
+     ) t
+         left join `jeecg-boot`.sys_user user
+                   on t.plan_id = user.id
+where plan_id != ''
+group by stat_date, hour, plan_id
+union all
+select stat_date,
+       hour,
+       type_id,
+       clip_id,
+       realname                       as clip_name,
+       sum(material_upload_adsp_num)  as material_upload_adsp_num,
+       sum(material_upload_media_num) as material_upload_media_num
+from (
+         select date_format(info.create_time, '%Y%m%d') as stat_date,
+                hour(info.create_time)                  as hour,
+                4                                       as type_id,
+                clip_id,
+                if(status = 1, 1, 0)                    as material_upload_adsp_num,
+                if(sync_kuaishou = 2, 1, 0)             as material_upload_media_num
+         from `jeecg-boot`.ctop_material_info info
+                  left join `jeecg-boot`.ctop_material_ascription design
+                            on info.code = design.material_id
+         where date_format(info.create_time, '%Y%m%d') = {stat_date}
+           and status = 1
+     ) t
+         left join `jeecg-boot`.sys_user user
+                   on t.clip_id = user.id
+where clip_id != ''
+group by stat_date, hour, clip_id
+            """.format(stat_date=self.date_time)
+            print(sql)
+            TidbConn.upsert(conn=self.conn, sql_buff=sql)
+            self.conn.commit()
+            TidbConn.conn_close(conn=self.conn)
+            return 0
+        except Exception as e:
+            logging.error(e)
+            return -1
+
+
+if __name__ == '__main__':
+    status = TodayMaterialUploadNum().taskHandler()
+    if status == 0:
+        print("作业执行成功")
+        exit(0)
+    else:
+        print("作业执行失败")
+        exit(-1)