renyupeng il y a 3 ans
Parent
commit
0e378a89f4

+ 2 - 2
Apietl/kwai_etl/Q4Task/AppKuaishouAccountReportBusi.py

@@ -25,7 +25,7 @@ class AppKuaishouAccountReportBusi:
             SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
 REPLACE INTO application.app_kuaishou_account_report_busi_{day_count}d 
 SELECT
-concat(date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d'),'-',{date_time}) start_end_time,
+concat(date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d'),'-',{date_time}) start_end_time,
 report.account_id,
 bei.project_id,
 bei.product_id,
@@ -293,7 +293,7 @@ round(sum(ad_photo_played_2s_ratio)/ {day_count}*100,3) ad_photo_played_2s_ratio
 round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
 sum(event_ad_watch_times) event_ad_watch_times
 from 
- media_api.kuaishou_account_report_daily a  where stat_date >= date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d')
+ media_api.kuaishou_account_report_daily a  where stat_date >= date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d')
  group by advertiser_id) report
 LEFT JOIN (
 SELECT

+ 2 - 2
Apietl/kwai_etl/Q4Task/AppKuaishouCampaignReportBusi.py

@@ -26,7 +26,7 @@ SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_
 
 REPLACE INTO app_kuaishou_campaign_report_busi_{day_count}d 
 SELECT
-concat(date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d'),'-',{date_time}) start_end_time,
+concat(date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d'),'-',{date_time}) start_end_time,
 report.account_id,
 bei.advertiser_id,
 report.campaign_id,
@@ -298,7 +298,7 @@ round(sum(ad_photo_played_2s_ratio)/{day_count}*100,3) ad_photo_played_2s_ratio,
 round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
 sum(event_ad_watch_times) event_ad_watch_times
 from 
- media_api.kuaishou_campaign_report_daily  a  where stat_date >= date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d')
+ media_api.kuaishou_campaign_report_daily  a  where stat_date >= date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d')
  group by advertiser_id,campaign_id,campaign_name) report
 LEFT JOIN (
 /{day_count}SELECT

+ 347 - 0
Apietl/kwai_etl/Q4Task/AppKuaishouCampaignReportBusiMonth.py

@@ -0,0 +1,347 @@
+# Author renyupeng
+# coding=utf-8
+# @Time    : 2021/11/10 3:37 下午
+# @Site    :
+# @File    : AppKuaishouCampaignReportBusiMonth.py
+# @Software: PyCharm
+# @contact: renyupeng@c-top.com.cn
+# @Tel 1501435553
+import logging
+
+from Apietl.conn.TidbConn import TidbConn
+from Apietl.utlis.Utils import Utils
+
+
+class AppKuaishouCampaignReportBusiMonth:
+    def __init__(self):
+        self.conn = TidbConn.get_connection()
+        self.parm = Utils.get_task_args()
+        self.date_time = self.parm[0]
+        self.day_count = Utils.get_days()
+
+    def taskHandler(self):
+        try:
+            sql = """#插入数据
+SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
+
+REPLACE INTO app_kuaishou_campaign_report_busi_m
+SELECT
+date_format({date_time},'%Y%m') as stat_mon,
+report.account_id,
+bei.advertiser_id,
+report.campaign_id,
+report.campaign_name,
+bei.project_id,
+bei.product_id,
+bei.company_id,
+bei.account_name,
+bei.project_name,
+bei.advertiser_name,
+bei.company_name,
+bei.sale_id,
+bei.user_id,
+bei.leader_id,
+bei.org_code,
+report.charge,
+report.`show`,
+report.photo_click,
+report.aclick,
+report.bclick,
+report.photo_click_ratio,
+report.play_3s_ratio,
+report.action_ratio,
+report.impression_1k_cost,
+report.photo_click_cost,
+report.action_cost,
+report.`share`,
+report.`comment`,
+report.`like`,
+report.follow,
+report.cancel_follow,
+report.report,
+report.block,
+report.negative,
+report.submit,
+report.download_started,
+report.download_completed,
+report.activation,
+report.event_pay_first_day,
+report.event_pay_purchase_amount_first_day,
+report.event_pay_first_day_roi,
+report.event_pay,
+report.event_pay_purchase_amount,
+report.event_pay_roi,
+report.event_register,
+report.event_register_cost,
+report.event_register_ratio,
+report.event_jin_jian_app,
+report.event_jin_jian_app_cost,
+report.event_credit_grant_app,
+report.event_credit_grant_app_cost,
+report.event_credit_grant_app_ratio,
+report.event_order_paid,
+report.event_order_paid_purchase_amount,
+report.event_order_paid_cost,
+report.event_next_day_stay,
+report.event_next_day_stay_cost,
+report.event_next_day_stay_ratio,
+report.form_count,
+report.form_cost,
+report.form_action_ratio,
+report.event_jin_jian_landing_page,
+report.event_jin_jian_landing_page_cost,
+report.event_credit_grant_landing_page,
+report.event_credit_grant_landing_page_cost,
+report.event_credit_grant_landing_page_ratio,
+report.event_valid_clues,
+report.event_valid_clues_cost,
+report.event_add_wechat,
+report.event_add_wechat_cost,
+report.event_add_wechat_ratio,
+report.event_get_through,
+report.event_get_through_cost,
+report.event_get_through_ratio,
+report.event_app_invoked,
+report.event_app_invoked_cost,
+report.event_app_invoked_ratio,
+report.event_credit_grant_landing_ratio,
+report.play_5s_ratio,
+report.play_end_ratio,
+report.event_new_user_pay,
+report.event_new_user_pay_cost,
+report.event_new_user_pay_ratio,
+report.click_1k_cost,
+report.ad_product_cnt,
+report.event_goods_view,
+report.merchant_reco_fans,
+report.event_order_amount_roi,
+report.event_goods_view_cost,
+report.merchant_reco_fans_cost,
+report.event_button_click,
+report.event_button_click_cost,
+report.event_button_click_ratio,
+report.event_order_paid_roi,
+report.event_new_user_jinjian_app,
+report.event_new_user_jinjian_app_cost,
+report.event_new_user_jinjian_app_roi,
+report.event_new_user_credit_grant_app,
+report.event_new_user_credit_grant_app_cost,
+report.event_new_user_credit_grant_app_roi,
+report.event_new_user_jinjian_page,
+report.event_new_user_jinjian_page_cost,
+report.event_new_user_jinjian_page_roi,
+report.event_new_user_credit_grant_page,
+report.event_new_user_credit_grant_page_cost,
+report.event_new_user_credit_grant_page_roi,
+report.event_appoint_form,
+report.event_appoint_form_cost,
+report.event_appoint_form_ratio,
+report.event_appoint_jump_click,
+report.event_appoint_jump_click_cost,
+report.event_appoint_jump_click_ratio,
+report.union_event_pay_purchase_amount_7d,
+report.union_event_pay_purchase_amount_7d_roi,
+report.event_order_successed,
+report.ad_photo_played_10s_ratio,
+report.key_action_cost,
+report.event_add_shopping_cart_cost,
+report.event_ad_watch_times_ratio,
+report.event_outbound_call_cost,
+report.event_outbound_call,
+report.action_new_ratio,
+report.event_watch_app_ad,
+report.event_multi_conversion_cost,
+report.event_phone_card_activate,
+report.ad_photo_played_75percent_ratio,
+report.key_action_ratio,
+report.event_ad_watch_times_cost,
+report.event_add_shopping_cart,
+report.key_action,
+report.event_multi_conversion,
+report.event_wechat_connected,
+report.event_dsp_gift_form,
+report.event_intention_confirmed,
+report.event_phone_get_through,
+report.event_multi_conversion_ratio,
+report.event_measurement_house,
+report.ad_photo_played_2s_ratio,
+report.event_outbound_call_ratio,
+report.event_ad_watch_times
+from 
+(select 
+advertiser_id account_id,
+campaign_id,
+campaign_name,
+sum(charge) charge,
+sum(`show`) `show`,
+sum(photo_click)photo_click,
+sum(aclick)  aclick,
+sum(bclick) bclick,
+round(sum(photo_click)/sum(`show`),3) photo_click_ratio,
+round(sum(play_3s_ratio)/{day_count}*100,3)  play_3s_ratio,
+round(sum(bclick)/sum(aclick)*100,3) action_ratio,
+round(sum(impression_1k_cost)/{day_count},3) impression_1k_cost,
+round(sum(charge)/sum(photo_click),3) photo_click_cost,
+round(sum(charge)/sum(bclick),3) action_cost,
+sum(`share`) `share`,
+sum(`comment`) `comment`,
+sum(`like`)  `like`,
+sum(follow) follow,
+sum(cancel_follow)  cancel_follow,
+sum(report) report,
+sum(block) block,
+sum(negative) negative,
+sum(submit) submit,
+sum(download_started) download_started,
+sum(download_completed) download_completed,
+sum(activation) activation,
+sum(event_pay_first_day) event_pay_first_day,
+sum(event_pay_purchase_amount_first_day) event_pay_purchase_amount_first_day,
+round(sum(event_pay_purchase_amount_first_day)/sum(charge)*100,3) event_pay_first_day_roi ,
+sum(event_pay) event_pay,
+sum(event_pay_purchase_amount) event_pay_purchase_amount,
+round(sum(event_pay_purchase_amount)/sum(charge)*100,3) event_pay_roi,
+sum(event_register) event_register,
+round(sum(charge)/sum(event_register),3) event_register_cost,
+round(sum(event_register)/sum(activation)*100,3) event_register_ratio,
+sum(event_jin_jian_app) event_jin_jian_app,
+round(sum(charge)/sum(event_jin_jian_app),3) event_jin_jian_app_cost,
+sum(event_credit_grant_app) event_credit_grant_app,
+round(sum(charge)/sum(event_credit_grant_app),3) event_credit_grant_app_cost ,
+round(sum(event_credit_grant_app_ratio)/{day_count}*100,3) event_credit_grant_app_ratio,
+sum(event_order_paid) event_order_paid,
+sum(event_order_paid_purchase_amount) event_order_paid_purchase_amount,
+round(sum(event_order_paid_purchase_amount)/sum(event_order_paid) ,3) event_order_paid_cost,
+sum(event_next_day_stay) event_next_day_stay,
+round(sum(charge)/sum(event_next_day_stay),3) event_next_day_stay_cost,
+round(sum(event_next_day_stay)/sum(activation)*100,3) event_next_day_stay_ratio,
+sum(form_count) form_count,
+round(sum(charge)/sum(form_count),3) form_cost,
+round(sum(form_count)/sum(`bclick`)*100,3) form_action_ratio,
+sum(event_jin_jian_landing_page) event_jin_jian_landing_page,
+round(sum(charge)/sum(event_jin_jian_landing_page),3) event_jin_jian_landing_page_cost,
+sum(event_credit_grant_landing_page) event_credit_grant_landing_page,
+round(sum(charge)/sum(event_credit_grant_landing_page),3) event_credit_grant_landing_page_cost,
+round(sum(event_credit_grant_landing_page)/{day_count}*100,3) event_credit_grant_landing_page_ratio,
+sum(event_valid_clues) event_valid_clues,
+round(sum(charge)/sum(event_valid_clues),3) event_valid_clues_cost,
+sum(event_add_wechat) event_add_wechat,
+round(sum(charge)/sum(event_add_wechat),3) event_add_wechat_cost,
+round(sum(event_add_wechat)/sum(bclick)*100,3) event_add_wechat_ratio,
+sum(event_get_through) event_get_through,
+round(sum(charge)/sum(event_get_through),3) event_get_through_cost,
+round(sum(event_get_through)/sum(bclick)*100,3) event_get_through_ratio,
+sum(event_app_invoked) event_app_invoked,
+round(sum(charge)/sum(event_app_invoked),3) event_app_invoked_cost ,
+round(sum(event_app_invoked)/sum(bclick)*100,3) event_app_invoked_ratio,
+round(sum(event_credit_grant_landing_ratio)/{day_count}*100,3) event_credit_grant_landing_ratio,
+round(sum(play_5s_ratio)/{day_count}*100,3) play_5s_ratio,
+round(sum(play_end_ratio)/{day_count}*100,3) play_end_ratio,
+sum(event_new_user_pay) event_new_user_pay,
+round(sum(charge)/sum(event_new_user_pay),3) event_new_user_pay_cost,
+round(sum(event_new_user_pay)/sum(activation)*100,3) event_new_user_pay_ratio,
+round(sum(click_1k_cost)/{day_count}*100) click_1k_cost,
+sum(ad_product_cnt) ad_product_cnt,
+sum(event_goods_view) event_goods_view,
+sum(merchant_reco_fans) merchant_reco_fans,
+round(sum(event_order_amount_roi)/{day_count}*100,3) event_order_amount_roi,
+round(sum(charge)/sum(event_goods_view) ,3) event_goods_view_cost,
+round(sum(charge)/sum(merchant_reco_fans),3) merchant_reco_fans_cost,
+sum(event_button_click) event_button_click,
+round(sum(charge)/sum(event_button_click),3) event_button_click_cost,
+round(sum(event_button_click)/sum(bclick)*100,3) event_button_click_ratio ,
+round(sum(event_order_paid_roi)/{day_count}*100,3) event_order_paid_roi,
+sum(event_new_user_jinjian_app) event_new_user_jinjian_app,
+round(sum(charge)/sum(event_new_user_jinjian_app),3) event_new_user_jinjian_app_cost,
+round(sum(event_new_user_jinjian_app)/sum(form_count)*100,3) event_new_user_jinjian_app_roi ,
+sum(event_new_user_credit_grant_app) event_new_user_credit_grant_app,
+round(sum(charge)/sum(event_new_user_credit_grant_app),3)  event_new_user_credit_grant_app_cost,
+round(sum(event_new_user_credit_grant_app)/sum(form_count)*100,3) event_new_user_credit_grant_app_roi,
+sum(event_new_user_jinjian_page) event_new_user_jinjian_page,
+round(sum(charge)/sum(event_new_user_jinjian_page),3) event_new_user_jinjian_page_cost,
+round(sum(event_new_user_jinjian_page)/sum(form_count)*100,3) event_new_user_jinjian_page_roi ,
+sum(event_new_user_credit_grant_page) event_new_user_credit_grant_page,
+round(sum(charge)/sum(event_new_user_credit_grant_page) ,3) event_new_user_credit_grant_page_cost,
+round(sum(event_new_user_credit_grant_page)/sum(form_count)*100,3) event_new_user_credit_grant_page_roi,
+sum(event_appoint_form)  event_appoint_form,
+round(sum(charge)/sum(event_appoint_form),3) event_appoint_form_cost,
+round(sum(event_appoint_form)/sum(form_count)*100,3) event_appoint_form_ratio,
+sum(event_appoint_jump_click) event_appoint_jump_click,
+round(sum(charge)/sum(event_appoint_jump_click),3)  event_appoint_jump_click_cost,
+round(sum(event_appoint_jump_click_cost)/sum(form_count)*100,3) event_appoint_jump_click_ratio,
+sum(union_event_pay_purchase_amount_7d) union_event_pay_purchase_amount_7d,
+round(sum(union_event_pay_purchase_amount_7d_roi)/{day_count}*100,3) union_event_pay_purchase_amount_7d_roi,
+sum(event_order_successed) event_order_successed,
+round(sum(ad_photo_played_10s_ratio)/{day_count}*100,3) ad_photo_played_10s_ratio,
+round(sum(charge)/sum(key_action),3) key_action_cost,
+round(sum(charge)/sum(event_add_shopping_cart) ,3) event_add_shopping_cart_cost ,
+round(sum(event_ad_watch_times)/sum(bclick)*100,3) event_ad_watch_times_ratio,
+round(sum(charge)/sum(event_outbound_call),3) event_outbound_call_cost,
+sum(event_outbound_call) event_outbound_call,
+round(sum(action_new_ratio)/{day_count}*100,3) action_new_ratio,
+sum(event_watch_app_ad) event_watch_app_ad,
+round(sum(charge)/sum(event_multi_conversion) ,3) event_multi_conversion_cost,
+sum(event_phone_card_activate) event_phone_card_activate,
+round(sum(ad_photo_played_75percent_ratio)/{day_count}*100,3) ad_photo_played_75percent_ratio,
+round(sum(key_action)/sum(activation)*100,3) key_action_ratio ,
+round(sum(charge)/sum(event_ad_watch_times),3) event_ad_watch_times_cost,
+sum(event_add_shopping_cart) event_add_shopping_cart,
+sum(key_action) key_action,
+sum(event_multi_conversion) event_multi_conversion,
+sum(event_wechat_connected) event_wechat_connected,
+sum(event_dsp_gift_form) event_dsp_gift_form,
+sum(event_intention_confirmed) event_intention_confirmed,
+sum(event_phone_get_through) event_phone_get_through,
+round(sum(event_multi_conversion)/sum(activation)*100,3)  event_multi_conversion_ratio,
+sum(event_measurement_house) event_measurement_house,
+round(sum(ad_photo_played_2s_ratio)/{day_count}*100,3) ad_photo_played_2s_ratio,
+round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
+sum(event_ad_watch_times) event_ad_watch_times
+from 
+ media_api.kuaishou_campaign_report_daily  a  
+ where stat_date >= date_format(date_sub({date_time}, INTERVAL {day_count}  DAY),'%Y%m%d')
+ group by advertiser_id,campaign_id,campaign_name) report
+LEFT JOIN (
+/{day_count}SELECT
+/{day_count}/{day_count}cua.account_id id,
+/{day_count}/{day_count}cua.account_id account_id,
+/{day_count}/{day_count}cp.id project_id,
+/{day_count}/{day_count}product.id product_id,
+/{day_count}/{day_count}ca.id advertiser_id,
+/{day_count}/{day_count}uc.company_id company_id,
+/{day_count}/{day_count}cua.auth_name account_name,
+/{day_count}/{day_count}cp.project_name project_name,
+/{day_count}/{day_count}ca.`name` advertiser_name,
+/{day_count}/{day_count}uc.company_name company_name,
+/{day_count}/{day_count}cp.sale_id sale_id,
+/{day_count}/{day_count}su.id user_id,
+/{day_count}/{day_count}su.leader_id,
+/{day_count}/{day_count}su.org_code org_code
+/{day_count}FROM
+/{day_count}/{day_count}`jeecg-boot`.ctop_user_allocation cua
+/{day_count}LEFT JOIN `jeecg-boot`.ctop_project cp ON cua.project_id = cp.id
+/{day_count}LEFT JOIN `jeecg-boot`.ctop_advertiser ca ON ca.id = cua.advertiser_id
+/{day_count}LEFT JOIN `jeecg-boot`.sys_user su ON su.id = cua.user_id
+/{day_count}LEFT JOIN `jeecg-boot`.user_company uc ON uc.user_id = cua.user_id
+/{day_count}LEFT JOIN `jeecg-boot`.ctop_product product ON product.id = cp.product_id
+/{day_count}WHERE
+/{day_count}/{day_count}cua.account_id IS NOT NULL) bei 
+ON report.account_id = bei.account_id;
+""".format(date_time=self.date_time, day_count=self.day_count)
+            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 = AppKuaishouCampaignReportBusiMonth().taskHandler()
+    if status == 0:
+        print("作业执行成功")
+        exit(0)
+    else:
+        print("作业执行失败")
+        exit(-1)

+ 2 - 2
Apietl/kwai_etl/Q4Task/AppKuaishouCompanyDesignReportBusi.py

@@ -24,7 +24,7 @@ class AppKuaishouCompanyDesignReportBusi:
 SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
 REPLACE INTO application.app_kuaishou_company_design_report_busi_{day_count}d 
  select
-  concat(date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d'),'-',{date_time}) start_end_time,
+  concat(date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d'),'-',{date_time}) start_end_time,
   company_id,
 company_name,
 org_code,
@@ -309,7 +309,7 @@ report.charge ,
     report.event_outbound_call_ratio,
     report.event_ad_watch_times
 FROM
-(select * from media_api.kuaishou_material_video_report_daily where stat_date >= date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d')) report
+(select * from media_api.kuaishou_material_video_report_daily where stat_date >= date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d')) report
 LEFT JOIN 
 (select account_id,signature,photo_id from media_api.kuaishou_video_list  group by account_id,signature,photo_id) video 
  ON report.advertiser_id = video.account_id AND report.photo_id = video.photo_id 

+ 380 - 0
Apietl/kwai_etl/Q4Task/AppKuaishouCompanyDesignReportBusiMonth.py

@@ -0,0 +1,380 @@
+# Author renyupeng
+# coding=utf-8
+# @Time    : 2021/11/10 3:37 下午
+# @Site    :
+# @File    : AppKuaishouCompanyDesignReportBusiMonth.py
+# @Software: PyCharm
+# @contact: renyupeng@c-top.com.cn
+# @Tel 1501435553
+import logging
+from Apietl.conn.TidbConn import TidbConn
+from Apietl.utlis.Utils import Utils
+
+
+class AppKuaishouCompanyDesignReportBusiMonth:
+    def __init__(self):
+        self.conn = TidbConn.get_connection()
+        self.parm = Utils.get_task_args()
+        self.date_time = self.parm[0]
+        self.day_count = Utils.get_days()
+
+    def taskHandler(self):
+        try:
+            sql = """
+delete from application.app_kuaishou_company_design_report_busi_m  where stat_mon=date_format({date_time},'%Y%m%') ;
+SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
+REPLACE INTO application.app_kuaishou_company_design_report_busi_m 
+ select
+date_format({date_time},'%Y%m') stat_mon,
+  company_id,
+company_name,
+org_code,
+org_type,
+id,
+depart_name,
+leader_id,
+  leader_name,
+count(DISTINCT signature) num,
+count(distinct innovate_code) innovate_num,
+  sum(charge) charge,
+sum(`show`) `show`,
+sum(photo_click)photo_click,
+sum(aclick)  aclick,
+sum(bclick) bclick,
+round(sum(photo_click)/sum(`show`),3) photo_click_ratio,
+round(sum(play_3s_ratio)/{day_count}*100,3)  play_3s_ratio,
+round(sum(bclick)/sum(aclick)*100,3) action_ratio,
+round(sum(impression_1k_cost)/{day_count},3) impression_1k_cost,
+round(sum(charge)/sum(photo_click),3) photo_click_cost,
+round(sum(charge)/sum(bclick),3) action_cost,
+sum(`share`) `share`,
+sum(`comment`) `comment`,
+sum(`like`)  `like`,
+sum(follow) follow,
+sum(cancel_follow)  cancel_follow,
+sum(report) report,
+sum(block) block,
+sum(negative) negative,
+sum(submit) submit,
+sum(download_started) download_started,
+sum(download_completed) download_completed,
+sum(activation) activation,
+sum(event_pay_first_day) event_pay_first_day,
+sum(event_pay_purchase_amount_first_day) event_pay_purchase_amount_first_day,
+round(sum(event_pay_purchase_amount_first_day)/sum(charge)*100,3) event_pay_first_day_roi ,
+sum(event_pay) event_pay,
+sum(event_pay_purchase_amount) event_pay_purchase_amount,
+round(sum(event_pay_purchase_amount)/sum(charge)*100,3) event_pay_roi,
+sum(event_register) event_register,
+round(sum(charge)/sum(event_register),3) event_register_cost,
+round(sum(event_register)/sum(activation)*100,3) event_register_ratio,
+sum(event_jin_jian_app) event_jin_jian_app,
+round(sum(charge)/sum(event_jin_jian_app),3) event_jin_jian_app_cost,
+sum(event_credit_grant_app) event_credit_grant_app,
+round(sum(charge)/sum(event_credit_grant_app),3) event_credit_grant_app_cost ,
+round(sum(event_credit_grant_app_ratio)/{day_count}*100,3) event_credit_grant_app_ratio,
+sum(event_order_paid) event_order_paid,
+sum(event_order_paid_purchase_amount) event_order_paid_purchase_amount,
+round(sum(event_order_paid_purchase_amount)/sum(event_order_paid) ,3) event_order_paid_cost,
+sum(event_next_day_stay) event_next_day_stay,
+round(sum(charge)/sum(event_next_day_stay),3) event_next_day_stay_cost,
+round(sum(event_next_day_stay)/sum(activation)*100,3) event_next_day_stay_ratio,
+sum(form_count) form_count,
+round(sum(charge)/sum(form_count),3) form_cost,
+round(sum(form_count)/sum(`bclick`)*100,3) form_action_ratio,
+sum(event_jin_jian_landing_page) event_jin_jian_landing_page,
+round(sum(charge)/sum(event_jin_jian_landing_page),3) event_jin_jian_landing_page_cost,
+sum(event_credit_grant_landing_page) event_credit_grant_landing_page,
+round(sum(charge)/sum(event_credit_grant_landing_page),3) event_credit_grant_landing_page_cost,
+round(sum(event_credit_grant_landing_page)/{day_count}*100,3) event_credit_grant_landing_page_ratio,
+sum(event_valid_clues) event_valid_clues,
+round(sum(charge)/sum(event_valid_clues),3) event_valid_clues_cost,
+sum(event_add_wechat) event_add_wechat,
+round(sum(charge)/sum(event_add_wechat),3) event_add_wechat_cost,
+round(sum(event_add_wechat)/sum(bclick)*100,3) event_add_wechat_ratio,
+sum(event_get_through) event_get_through,
+round(sum(charge)/sum(event_get_through),3) event_get_through_cost,
+round(sum(event_get_through)/sum(bclick)*100,3) event_get_through_ratio,
+sum(event_app_invoked) event_app_invoked,
+round(sum(charge)/sum(event_app_invoked),3) event_app_invoked_cost ,
+round(sum(event_app_invoked)/sum(bclick)*100,3) event_app_invoked_ratio,
+round(sum(event_credit_grant_landing_ratio)/{day_count}*100,3) event_credit_grant_landing_ratio,
+round(sum(play_5s_ratio)/{day_count}*100,3) play_5s_ratio,
+round(sum(play_end_ratio)/{day_count}*100,3) play_end_ratio,
+sum(event_new_user_pay) event_new_user_pay,
+round(sum(charge)/sum(event_new_user_pay),3) event_new_user_pay_cost,
+round(sum(event_new_user_pay)/sum(activation)*100,3) event_new_user_pay_ratio,
+round(sum(click_1k_cost)/{day_count}*100) click_1k_cost,
+sum(ad_product_cnt) ad_product_cnt,
+sum(event_goods_view) event_goods_view,
+sum(merchant_reco_fans) merchant_reco_fans,
+round(sum(event_order_amount_roi)/{day_count}*100,3) event_order_amount_roi,
+round(sum(charge)/sum(event_goods_view) ,3) event_goods_view_cost,
+round(sum(charge)/sum(merchant_reco_fans),3) merchant_reco_fans_cost,
+sum(event_button_click) event_button_click,
+round(sum(charge)/sum(event_button_click),3) event_button_click_cost,
+round(sum(event_button_click)/sum(bclick)*100,3) event_button_click_ratio ,
+round(sum(event_order_paid_roi)/{day_count}*100,3) event_order_paid_roi,
+sum(event_new_user_jinjian_app) event_new_user_jinjian_app,
+round(sum(charge)/sum(event_new_user_jinjian_app),3) event_new_user_jinjian_app_cost,
+round(sum(event_new_user_jinjian_app)/sum(form_count)*100,3) event_new_user_jinjian_app_roi ,
+sum(event_new_user_credit_grant_app) event_new_user_credit_grant_app,
+round(sum(charge)/sum(event_new_user_credit_grant_app),3)  event_new_user_credit_grant_app_cost,
+round(sum(event_new_user_credit_grant_app)/sum(form_count)*100,3) event_new_user_credit_grant_app_roi,
+sum(event_new_user_jinjian_page) event_new_user_jinjian_page,
+round(sum(charge)/sum(event_new_user_jinjian_page),3) event_new_user_jinjian_page_cost,
+round(sum(event_new_user_jinjian_page)/sum(form_count)*100,3) event_new_user_jinjian_page_roi ,
+sum(event_new_user_credit_grant_page) event_new_user_credit_grant_page,
+round(sum(charge)/sum(event_new_user_credit_grant_page) ,3) event_new_user_credit_grant_page_cost,
+round(sum(event_new_user_credit_grant_page)/sum(form_count)*100,3) event_new_user_credit_grant_page_roi,
+sum(event_appoint_form)  event_appoint_form,
+round(sum(charge)/sum(event_appoint_form),3) event_appoint_form_cost,
+round(sum(event_appoint_form)/sum(form_count)*100,3) event_appoint_form_ratio,
+sum(event_appoint_jump_click) event_appoint_jump_click,
+round(sum(charge)/sum(event_appoint_jump_click),3)  event_appoint_jump_click_cost,
+round(sum(event_appoint_jump_click_cost)/sum(form_count)*100,3) event_appoint_jump_click_ratio,
+sum(union_event_pay_purchase_amount_7d) union_event_pay_purchase_amount_7d,
+round(sum(union_event_pay_purchase_amount_7d_roi)/{day_count}*100,3) union_event_pay_purchase_amount_7d_roi,
+sum(event_order_successed) event_order_successed,
+round(sum(ad_photo_played_10s_ratio)/{day_count}*100,3) ad_photo_played_10s_ratio,
+round(sum(charge)/sum(key_action),3) key_action_cost,
+round(sum(charge)/sum(event_add_shopping_cart) ,3) event_add_shopping_cart_cost ,
+round(sum(event_ad_watch_times)/sum(bclick)*100,3) event_ad_watch_times_ratio,
+round(sum(charge)/sum(event_outbound_call),3) event_outbound_call_cost,
+sum(event_outbound_call) event_outbound_call,
+round(sum(action_new_ratio)/{day_count}*100,3) action_new_ratio,
+sum(event_watch_app_ad) event_watch_app_ad,
+round(sum(charge)/sum(event_multi_conversion) ,3) event_multi_conversion_cost,
+sum(event_phone_card_activate) event_phone_card_activate,
+round(sum(ad_photo_played_75percent_ratio)/{day_count}*100,3) ad_photo_played_75percent_ratio,
+round(sum(key_action)/sum(activation)*100,3) key_action_ratio ,
+round(sum(charge)/sum(event_ad_watch_times),3) event_ad_watch_times_cost,
+sum(event_add_shopping_cart) event_add_shopping_cart,
+sum(key_action) key_action,
+sum(event_multi_conversion) event_multi_conversion,
+sum(event_wechat_connected) event_wechat_connected,
+sum(event_dsp_gift_form) event_dsp_gift_form,
+sum(event_intention_confirmed) event_intention_confirmed,
+sum(event_phone_get_through) event_phone_get_through,
+round(sum(event_multi_conversion)/sum(activation)*100,3)  event_multi_conversion_ratio,
+sum(event_measurement_house) event_measurement_house,
+round(sum(ad_photo_played_2s_ratio)/{day_count}*100,3) ad_photo_played_2s_ratio,
+round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
+sum(event_ad_watch_times) event_ad_watch_times
+from 
+(SELECT
+video.signature,
+uc.company_id,
+CASE
+WHEN uc.company_id = 'd57fecdcf7a94d009736d9c850731582' THEN
+'北京汇创思拓数字科技有限公司'
+WHEN uc.company_id = '6608ed13c0dd42de93c790dbdf124234' THEN
+'广州汇创思拓数字科技有限公司'
+WHEN uc.company_id = '4b10089775c040119e139087517aed88' THEN
+'上海汇创思拓数字科技有限公司'
+ELSE
+uc.company_name
+END company_name,
+cma.leader_id,
+    us.realname leader_name,
+ur.org_type,
+ur.org_code,
+ur.id,
+ur.depart_name,
+case when cmi.material_innovate=2 then video.signature else '' end  innovate_code,
+report.charge ,
+    report.`show`,
+    report.photo_click,
+    report.aclick ,
+    report.bclick ,
+    report.photo_click_ratio,
+    report.play_3s_ratio,
+    report.action_ratio ,
+    report.impression_1k_cost ,
+    report.photo_click_cost,
+    report.action_cost,
+    report.`share`,
+    report.`comment`,
+    report.`like`,
+    report.follow ,
+    report.cancel_follow,
+    report.report ,
+    report.block,
+    report.negative,
+    report.submit ,
+    report.download_started,
+    report.download_completed ,
+    report.activation,
+    report.event_pay_first_day,
+    report.event_pay_purchase_amount_first_day,
+    report.event_pay_first_day_roi,
+    report.event_pay ,
+    report.event_pay_purchase_amount,
+    report.event_pay_roi,
+    report.event_register,
+    report.event_register_cost,
+    report.event_register_ratio,
+    report.event_jin_jian_app ,
+    report.event_jin_jian_app_cost,
+    report.event_credit_grant_app,
+    report.event_credit_grant_app_cost ,
+    report.event_credit_grant_app_ratio,
+    report.event_order_paid,
+    report.event_order_paid_purchase_amount,
+    report.event_order_paid_cost ,
+    report.event_next_day_stay,
+    report.event_next_day_stay_cost ,
+    report.event_next_day_stay_ratio,
+    report.form_count,
+    report.form_cost ,
+    report.form_action_ratio,
+    report.event_jin_jian_landing_page ,
+    report.event_jin_jian_landing_page_cost,
+    report.event_credit_grant_landing_page,
+    report.event_credit_grant_landing_page_cost ,
+    report.event_credit_grant_landing_page_ratio,
+    report.event_valid_clues,
+    report.event_valid_clues_cost,
+    report.event_add_wechat,
+    report.event_add_wechat_cost ,
+    report.event_add_wechat_ratio,
+    report.event_get_through,
+    report.event_get_through_cost,
+    report.event_get_through_ratio,
+    report.event_app_invoked,
+    report.event_app_invoked_cost,
+    report.event_app_invoked_ratio,
+    report.event_credit_grant_landing_ratio,
+    report.play_5s_ratio,
+    report.play_end_ratio,
+    report.event_new_user_pay ,
+    report.event_new_user_pay_cost,
+    report.event_new_user_pay_ratio ,
+    report.click_1k_cost,
+    report.ad_product_cnt,
+    report.event_goods_view,
+    report.merchant_reco_fans ,
+    report.event_order_amount_roi,
+    report.event_goods_view_cost ,
+    report.merchant_reco_fans_cost,
+    report.event_button_click ,
+    report.event_button_click_cost,
+    report.event_button_click_ratio ,
+    report.event_order_paid_roi,
+    report.event_new_user_jinjian_app,
+    report.event_new_user_jinjian_app_cost,
+    report.event_new_user_jinjian_app_roi ,
+    report.event_new_user_credit_grant_app,
+    report.event_new_user_credit_grant_app_cost ,
+    report.event_new_user_credit_grant_app_roi,
+    report.event_new_user_jinjian_page ,
+    report.event_new_user_jinjian_page_cost,
+    report.event_new_user_jinjian_page_roi,
+    report.event_new_user_credit_grant_page,
+    report.event_new_user_credit_grant_page_cost,
+    report.event_new_user_credit_grant_page_roi ,
+    report.event_appoint_form ,
+    report.event_appoint_form_cost,
+    report.event_appoint_form_ratio ,
+    report.event_appoint_jump_click ,
+    report.event_appoint_jump_click_cost,
+    report.event_appoint_jump_click_ratio ,
+    report.union_event_pay_purchase_amount_7d,
+    report.union_event_pay_purchase_amount_7d_roi,
+    report.placement_type,
+    report.ad_scene,
+    report.event_order_successed ,
+    report.ad_photo_played_10s_ratio,
+    report.key_action_cost ,
+    report.event_add_shopping_cart_cost,
+    report.event_ad_watch_times_ratio,
+    report.event_outbound_call_cost ,
+    report.event_outbound_call,
+    report.action_new_ratio,
+    report.event_watch_app_ad ,
+    report.event_multi_conversion_cost ,
+    report.event_phone_card_activate,
+    report.ad_photo_played_75percent_ratio,
+    report.key_action_ratio,
+    report.event_ad_watch_times_cost,
+    report.event_add_shopping_cart,
+    report.key_action,
+    report.event_multi_conversion,
+    report.event_wechat_connected,
+    report.event_dsp_gift_form,
+    report.event_intention_confirmed,
+    report.event_phone_get_through,
+    report.event_multi_conversion_ratio,
+    report.event_measurement_house,
+    report.ad_photo_played_2s_ratio ,
+    report.event_outbound_call_ratio,
+    report.event_ad_watch_times
+FROM
+(select * from media_api.kuaishou_material_video_report_daily 
+where stat_date >= date_format(date_sub({date_time}, INTERVAL {day_count} DAY),'%Y%m%d')) report
+LEFT JOIN 
+(select account_id,signature,photo_id from media_api.kuaishou_video_list  group by account_id,signature,photo_id) video 
+ ON report.advertiser_id = video.account_id AND report.photo_id = video.photo_id 
+LEFT JOIN (
+SELECT
+CODE,
+material_innovate,
+cover_url
+FROM
+`jeecg-boot`.ctop_material_info
+GROUP BY
+CODE,
+material_innovate,
+cover_url
+) cmi ON video.signature = cmi. CODE
+LEFT JOIN (
+SELECT
+material_id,
+leader_id
+FROM
+(
+SELECT
+material_id,
+leader_id,
+row_number () over (
+PARTITION BY material_id
+ORDER BY
+create_time
+) rn
+FROM
+`jeecg-boot`.ctop_material_ascription
+) m
+WHERE
+rn = 1
+) cma ON video.signature = cma.material_id
+ left join `jeecg-boot`.sys_user us on us.id=cma.leader_id
+LEFT JOIN `jeecg-boot`.user_company uc ON cma.leader_id = uc.user_id
+LEFT JOIN `jeecg-boot`.sys_user_depart de ON cma.leader_id = de.user_id
+LEFT JOIN `jeecg-boot`.sys_depart ur ON de.dep_id = ur.id) def
+group by
+  company_id,
+company_name,
+org_code,
+org_type,
+id,
+depart_name,
+leader_id,
+  leader_name;
+            """.format(date_time=self.date_time, day_count=self.day_count)
+            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 = AppKuaishouCompanyDesignReportBusiMonth().taskHandler()
+    if status == 0:
+        print("作业执行成功")
+        exit(0)
+    else:
+        print("作业执行失败")
+        exit(-1)

+ 2 - 2
Apietl/kwai_etl/Q4Task/AppKuaishouCompanyUserReportBusi.py

@@ -26,7 +26,7 @@ REPLACE INTO application.app_kuaishou_company_user_report_busi_{day_count}d
 SELECT
 concat(
 date_format(
-date_sub({date_time}, INTERVAL 6 DAY),
+date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),
 '%Y%m%d'
 ),
 '-',
@@ -316,7 +316,7 @@ report.charge ,
     report.event_outbound_call_ratio,
     report.event_ad_watch_times
    from  
-   (select * from  media_api.kuaishou_account_report_daily  where stat_date >= date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d')) report
+   (select * from  media_api.kuaishou_account_report_daily  where stat_date >= date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d')) report
    left join 
    (
 SELECT

+ 366 - 0
Apietl/kwai_etl/Q4Task/AppKuaishouCompanyUserReportBusiMonth.py

@@ -0,0 +1,366 @@
+# Author renyupeng
+# coding=utf-8
+# @Time    : 2021/11/10 3:37 下午
+# @Site    :
+# @File    : AppKuaishouCompanyUserReportBusiMonth.py
+# @Software: PyCharm
+# @contact: renyupeng@c-top.com.cn
+# @Tel 1501435553
+import logging
+from Apietl.conn.TidbConn import TidbConn
+from Apietl.utlis.Utils import Utils
+
+
+class AppKuaishouCompanyUserReportBusiMonth:
+    def __init__(self):
+        self.conn = TidbConn.get_connection()
+        self.parm = Utils.get_task_args()
+        self.date_time = self.parm[0]
+        self.day_count = Utils.get_days()
+
+    def taskHandler(self):
+        try:
+            sql = """
+SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
+REPLACE INTO application.app_kuaishou_company_user_report_busi_m
+SELECT
+concat(
+date_format({date_time},'%Y%m') start_end_time,
+company_id,
+company_name,
+org_code,
+org_type,
+dep_id,
+depart_name,
+leader_id,
+leader_name leader_name,
+count(DISTINCT account_id) account_num,
+sum(charge) charge,
+  sum(`show`) `show`,
+  sum(photo_click)photo_click,
+  sum(aclick)  aclick,
+  sum(bclick) bclick,
+  round(sum(photo_click)/sum(`show`),3) photo_click_ratio,
+  round(sum(play_3s_ratio)/{day_count}*100,3)  play_3s_ratio,
+  round(sum(bclick)/sum(aclick)*100,3) action_ratio,
+  round(sum(impression_1k_cost)/{day_count},3) impression_1k_cost,
+  round(sum(charge)/sum(photo_click),3) photo_click_cost,
+  round(sum(charge)/sum(bclick),3) action_cost,
+  sum(`share`) `share`,
+  sum(`comment`) `comment`,
+  sum(`like`)  `like`,
+  sum(follow) follow,
+  sum(cancel_follow)  cancel_follow,
+  sum(report) report,
+  sum(block) block,
+  sum(negative) negative,
+  sum(submit) submit,
+  sum(download_started) download_started,
+  sum(download_completed) download_completed,
+  sum(activation) activation,
+  sum(event_pay_first_day) event_pay_first_day,
+  sum(event_pay_purchase_amount_first_day) event_pay_purchase_amount_first_day,
+  round(sum(event_pay_purchase_amount_first_day)/sum(charge)*100,3) event_pay_first_day_roi ,
+  sum(event_pay) event_pay,
+  sum(event_pay_purchase_amount) event_pay_purchase_amount,
+  round(sum(event_pay_purchase_amount)/sum(charge)*100,3) event_pay_roi,
+  sum(event_register) event_register,
+  round(sum(charge)/sum(event_register),3) event_register_cost,
+  round(sum(event_register)/sum(activation)*100,3)  event_register_ratio,
+  sum(event_jin_jian_app) event_jin_jian_app,
+  round(sum(charge)/sum(event_jin_jian_app),3) event_jin_jian_app_cost,
+  sum(event_credit_grant_app) event_credit_grant_app,
+  round(sum(charge)/sum(event_credit_grant_app),3) event_credit_grant_app_cost ,
+  round(sum(event_credit_grant_app_ratio)/{day_count}*100,3) event_credit_grant_app_ratio,
+  sum(event_order_paid) event_order_paid,
+  sum(event_order_paid_purchase_amount) event_order_paid_purchase_amount,
+  round(sum(event_order_paid_purchase_amount)/sum(event_order_paid) ,3) event_order_paid_cost,
+  sum(event_next_day_stay) event_next_day_stay,
+  round(sum(charge)/sum(event_next_day_stay),3) event_next_day_stay_cost,
+  round(sum(event_next_day_stay)/sum(activation)*100,3) event_next_day_stay_ratio,
+  sum(form_count) form_count,
+  round(sum(charge)/sum(form_count),3) form_cost,
+  round(sum(form_count)/sum(`bclick`)*100,3) form_action_ratio,
+  sum(event_jin_jian_landing_page) event_jin_jian_landing_page,
+  round(sum(charge)/sum(event_jin_jian_landing_page),3) event_jin_jian_landing_page_cost,
+  sum(event_credit_grant_landing_page) event_credit_grant_landing_page,
+  round(sum(charge)/sum(event_credit_grant_landing_page),3) event_credit_grant_landing_page_cost,
+  round(sum(event_credit_grant_landing_page)/{day_count}*100,3) event_credit_grant_landing_page_ratio,
+  sum(event_valid_clues) event_valid_clues,
+  round(sum(charge)/sum(event_valid_clues),3) event_valid_clues_cost,
+  sum(event_add_wechat) event_add_wechat,
+  round(sum(charge)/sum(event_add_wechat),3) event_add_wechat_cost,
+  round(sum(event_add_wechat)/sum(bclick)*100,3) event_add_wechat_ratio,
+  sum(event_get_through) event_get_through,
+  round(sum(charge)/sum(event_get_through),3) event_get_through_cost,
+  round(sum(event_get_through)/sum(bclick)*100,3) event_get_through_ratio,
+  sum(event_app_invoked) event_app_invoked,
+  round(sum(charge)/sum(event_app_invoked),3) event_app_invoked_cost ,
+  round(sum(event_app_invoked)/sum(bclick)*100,3) event_app_invoked_ratio,
+  round(sum(event_credit_grant_landing_ratio)/{day_count}*100,3) event_credit_grant_landing_ratio,
+  round(sum(play_5s_ratio)/{day_count}*100,3) play_5s_ratio,
+  round(sum(play_end_ratio)/{day_count}*100,3) play_end_ratio,
+  sum(event_new_user_pay) event_new_user_pay,
+  round(sum(charge)/sum(event_new_user_pay),3) event_new_user_pay_cost,
+  round(sum(event_new_user_pay)/sum(activation)*100,3) event_new_user_pay_ratio,
+  round(sum(click_1k_cost)/{day_count}*100) click_1k_cost,
+  sum(ad_product_cnt) ad_product_cnt,
+  sum(event_goods_view) event_goods_view,
+  sum(merchant_reco_fans) merchant_reco_fans,
+  round(sum(event_order_amount_roi)/{day_count}*100,3) event_order_amount_roi,
+  round(sum(charge)/sum(event_goods_view) ,3) event_goods_view_cost,
+  round(sum(charge)/sum(merchant_reco_fans),3) merchant_reco_fans_cost,
+  sum(event_button_click) event_button_click,
+  round(sum(charge)/sum(event_button_click),3) event_button_click_cost,
+  round(sum(event_button_click)/sum(bclick)*100,3) event_button_click_ratio ,
+  round(sum(event_order_paid_roi)/{day_count}*100,3) event_order_paid_roi,
+  sum(event_new_user_jinjian_app) event_new_user_jinjian_app,
+  round(sum(charge)/sum(event_new_user_jinjian_app),3) event_new_user_jinjian_app_cost,
+  round(sum(event_new_user_jinjian_app)/sum(form_count)*100,3) event_new_user_jinjian_app_roi ,
+  sum(event_new_user_credit_grant_app) event_new_user_credit_grant_app,
+  round(sum(charge)/sum(event_new_user_credit_grant_app),3)  event_new_user_credit_grant_app_cost,
+  round(sum(event_new_user_credit_grant_app)/sum(form_count)*100,3) event_new_user_credit_grant_app_roi,
+  sum(event_new_user_jinjian_page) event_new_user_jinjian_page,
+  round(sum(charge)/sum(event_new_user_jinjian_page),3) event_new_user_jinjian_page_cost,
+  round(sum(event_new_user_jinjian_page)/sum(form_count)*100,3) event_new_user_jinjian_page_roi ,
+  sum(event_new_user_credit_grant_page) event_new_user_credit_grant_page,
+  round(sum(charge)/sum(event_new_user_credit_grant_page) ,3) event_new_user_credit_grant_page_cost,
+  round(sum(event_new_user_credit_grant_page)/sum(form_count)*100,3) event_new_user_credit_grant_page_roi,
+  sum(event_appoint_form)  event_appoint_form,
+  round(sum(charge)/sum(event_appoint_form),3) event_appoint_form_cost,
+  round(sum(event_appoint_form)/sum(form_count)*100,3) event_appoint_form_ratio,
+  sum(event_appoint_jump_click) event_appoint_jump_click,
+  round(sum(charge)/sum(event_appoint_jump_click),3)  event_appoint_jump_click_cost,
+  round(sum(event_appoint_jump_click_cost)/sum(form_count)*100,3) event_appoint_jump_click_ratio,
+  sum(union_event_pay_purchase_amount_7d) union_event_pay_purchase_amount_7d,
+  round(sum(union_event_pay_purchase_amount_7d_roi)/{day_count}*100,3) union_event_pay_purchase_amount_7d_roi,
+  sum(event_order_successed) event_order_successed,
+  round(sum(ad_photo_played_10s_ratio)/{day_count}*100,3) ad_photo_played_10s_ratio,
+  round(sum(charge)/sum(key_action),3) key_action_cost,
+  round(sum(charge)/sum(event_add_shopping_cart) ,3) event_add_shopping_cart_cost ,
+  round(sum(event_ad_watch_times)/sum(bclick)*100,3) event_ad_watch_times_ratio,
+  round(sum(charge)/sum(event_outbound_call),3) event_outbound_call_cost,
+  sum(event_outbound_call) event_outbound_call,
+  round(sum(action_new_ratio)/{day_count}*100,3) action_new_ratio,
+  sum(event_watch_app_ad) event_watch_app_ad,
+  round(sum(charge)/sum(event_multi_conversion) ,3) event_multi_conversion_cost,
+  sum(event_phone_card_activate) event_phone_card_activate,
+  round(sum(ad_photo_played_75percent_ratio)/{day_count}*100,3) ad_photo_played_75percent_ratio,
+  round(sum(key_action)/sum(activation)*100,3) key_action_ratio ,
+  round(sum(charge)/sum(event_ad_watch_times),3) event_ad_watch_times_cost,
+  sum(event_add_shopping_cart) event_add_shopping_cart,
+  sum(key_action) key_action,
+  sum(event_multi_conversion) event_multi_conversion,
+  sum(event_wechat_connected) event_wechat_connected,
+  sum(event_dsp_gift_form) event_dsp_gift_form,
+  sum(event_intention_confirmed) event_intention_confirmed,
+  sum(event_phone_get_through) event_phone_get_through,
+  round(sum(event_multi_conversion)/sum(activation)*100,3)  event_multi_conversion_ratio,
+  sum(event_measurement_house) event_measurement_house,
+  round(sum(ad_photo_played_2s_ratio)/{day_count}*100,3) ad_photo_played_2s_ratio,
+  round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
+  sum(event_ad_watch_times) event_ad_watch_times
+from (
+SELECT
+report.advertiser_id account_id,
+dep.company_id,
+CASE
+WHEN dep.company_id = 'd57fecdcf7a94d009736d9c850731582' THEN
+'北京汇创思拓数字科技有限公司'
+WHEN dep.company_id = '6608ed13c0dd42de93c790dbdf124234' THEN
+'广州汇创思拓数字科技有限公司'
+WHEN dep.company_id = '4b10089775c040119e139087517aed88' THEN
+'上海汇创思拓数字科技有限公司'
+ELSE
+dep.company_name
+END company_name,
+dep.org_code,
+dep.org_type,
+dep.dep_id,
+dep.depart_name,
+dep.user_id,
+dep.realname,
+dep.leader_id,
+dep.leader_name,
+report.charge ,
+    report.`show`,
+    report.photo_click,
+    report.aclick ,
+    report.bclick ,
+    report.photo_click_ratio,
+    report.play_3s_ratio,
+    report.action_ratio ,
+    report.impression_1k_cost ,
+    report.photo_click_cost,
+    report.action_cost,
+    report.`share`,
+    report.`comment`,
+    report.`like`,
+    report.follow ,
+    report.cancel_follow,
+    report.report ,
+    report.block,
+    report.negative,
+    report.submit ,
+    report.download_started,
+    report.download_completed ,
+    report.activation,
+    report.event_pay_first_day,
+    report.event_pay_purchase_amount_first_day,
+    report.event_pay_first_day_roi,
+    report.event_pay ,
+    report.event_pay_purchase_amount,
+    report.event_pay_roi,
+    report.event_register,
+    report.event_register_cost,
+    report.event_register_ratio,
+    report.event_jin_jian_app ,
+    report.event_jin_jian_app_cost,
+    report.event_credit_grant_app,
+    report.event_credit_grant_app_cost ,
+    report.event_credit_grant_app_ratio,
+    report.event_order_paid,
+    report.event_order_paid_purchase_amount,
+    report.event_order_paid_cost ,
+    report.event_next_day_stay,
+    report.event_next_day_stay_cost ,
+    report.event_next_day_stay_ratio,
+    report.form_count,
+    report.form_cost ,
+    report.form_action_ratio,
+    report.event_jin_jian_landing_page ,
+    report.event_jin_jian_landing_page_cost,
+    report.event_credit_grant_landing_page,
+    report.event_credit_grant_landing_page_cost ,
+    report.event_credit_grant_landing_page_ratio,
+    report.event_valid_clues,
+    report.event_valid_clues_cost,
+    report.event_add_wechat,
+    report.event_add_wechat_cost ,
+    report.event_add_wechat_ratio,
+    report.event_get_through,
+    report.event_get_through_cost,
+    report.event_get_through_ratio,
+    report.event_app_invoked,
+    report.event_app_invoked_cost,
+    report.event_app_invoked_ratio,
+    report.event_credit_grant_landing_ratio,
+    report.play_5s_ratio,
+    report.play_end_ratio,
+    report.event_new_user_pay ,
+    report.event_new_user_pay_cost,
+    report.event_new_user_pay_ratio ,
+    report.click_1k_cost,
+    report.ad_product_cnt,
+    report.event_goods_view,
+    report.merchant_reco_fans ,
+    report.event_order_amount_roi,
+    report.event_goods_view_cost ,
+    report.merchant_reco_fans_cost,
+    report.event_button_click ,
+    report.event_button_click_cost,
+    report.event_button_click_ratio ,
+    report.event_order_paid_roi,
+    report.event_new_user_jinjian_app,
+    report.event_new_user_jinjian_app_cost,
+    report.event_new_user_jinjian_app_roi ,
+    report.event_new_user_credit_grant_app,
+    report.event_new_user_credit_grant_app_cost ,
+    report.event_new_user_credit_grant_app_roi,
+    report.event_new_user_jinjian_page ,
+    report.event_new_user_jinjian_page_cost,
+    report.event_new_user_jinjian_page_roi,
+    report.event_new_user_credit_grant_page,
+    report.event_new_user_credit_grant_page_cost,
+    report.event_new_user_credit_grant_page_roi ,
+    report.event_appoint_form ,
+    report.event_appoint_form_cost,
+    report.event_appoint_form_ratio ,
+    report.event_appoint_jump_click ,
+    report.event_appoint_jump_click_cost,
+    report.event_appoint_jump_click_ratio ,
+    report.union_event_pay_purchase_amount_7d,
+    report.union_event_pay_purchase_amount_7d_roi,
+    report.placement_type,
+    report.ad_scene,
+    report.event_order_successed ,
+    report.ad_photo_played_10s_ratio,
+    report.key_action_cost ,
+    report.event_add_shopping_cart_cost,
+    report.event_ad_watch_times_ratio,
+    report.event_outbound_call_cost ,
+    report.event_outbound_call,
+    report.action_new_ratio,
+    report.event_watch_app_ad ,
+    report.event_multi_conversion_cost ,
+    report.event_phone_card_activate,
+    report.ad_photo_played_75percent_ratio,
+    report.key_action_ratio,
+    report.event_ad_watch_times_cost,
+    report.event_add_shopping_cart,
+    report.key_action,
+    report.event_multi_conversion,
+    report.event_wechat_connected,
+    report.event_dsp_gift_form,
+    report.event_intention_confirmed,
+    report.event_phone_get_through,
+    report.event_multi_conversion_ratio,
+    report.event_measurement_house,
+    report.ad_photo_played_2s_ratio ,
+    report.event_outbound_call_ratio,
+    report.event_ad_watch_times
+   from  
+   (select * from  media_api.kuaishou_account_report_daily 
+    where stat_date >= date_format(date_sub({date_time}, INTERVAL {day_count}  DAY),'%Y%m%d')) report
+   left join 
+   (
+SELECT
+cua.account_id,
+uc.company_id,
+uc.company_name,
+pa.org_code,
+pa.org_type,
+pa.id dep_id,
+pa.depart_name,
+cua.user_id,
+su.realname,
+cp.sale_id,
+su.leader_id,
+se.realname leader_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`.user_company uc ON uc.user_id = cua.user_id
+LEFT JOIN `jeecg-boot`.sys_user su ON su.id = cua.user_id
+LEFT JOIN `jeecg-boot`.sys_user se ON su.leader_id=se.id
+LEFT JOIN `jeecg-boot`.sys_user_depart de ON su.leader_id = de.user_id
+LEFT JOIN `jeecg-boot`.sys_depart pa ON pa.id = de.dep_id) dep 
+ON report.advertiser_id = dep.account_id) com
+group by 
+company_id,
+company_name,
+org_code,
+org_type,
+dep_id,
+depart_name,
+leader_id,
+leader_name;
+
+            """.format(date_time=self.date_time, day_count=self.day_count)
+            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 = AppKuaishouCompanyUserReportBusiMonth().taskHandler()
+    if status == 0:
+        print("作业执行成功")
+        exit(0)
+    else:
+        print("作业执行失败")
+        exit(-1)

+ 3 - 2
Apietl/kwai_etl/Q4Task/AppKuaishouProductReportBusi.py

@@ -21,11 +21,12 @@ class AppKuaishouProductReportBusi:
     def taskHandler(self):
         try:
             sql = """
+SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
 REPLACE INTO app_kuaishou_product_report_busi_{day_count}d 
 SELECT
 concat(
 date_format(
-date_sub({date_time}, INTERVAL 6 DAY),
+date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),
 '%Y%m%d'
 ),
 '-',
@@ -164,7 +165,7 @@ CASE WHEN uc.company_id = 'd57fecdcf7a94d009736d9c850731582' THEN '北京汇创
   round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
   sum(event_ad_watch_times) event_ad_watch_times
  from  
- (select * from  media_api.kuaishou_account_report_daily  where stat_date >= date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d')) report
+ (select * from  media_api.kuaishou_account_report_daily  where stat_date >= date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d')) report
 LEFT JOIN `jeecg-boot`.ctop_user_allocation cua ON report.advertiser_id = cua.account_id
 LEFT JOIN `jeecg-boot`.ctop_project cp ON cua.project_id = cp.id
 LEFT JOIN `jeecg-boot`.ctop_product cn ON cp.product_id = cn.id

+ 198 - 0
Apietl/kwai_etl/Q4Task/AppKuaishouProductReportBusiMonth.py

@@ -0,0 +1,198 @@
+# Author renyupeng
+# coding=utf-8
+# @Time    : 2021/11/10 3:37 下午
+# @Site    :
+# @File    : AppKuaishouProductReportBusiMonth.py
+# @Software: PyCharm
+# @contact: renyupeng@c-top.com.cn
+# @Tel 1501435553
+import logging
+from Apietl.conn.TidbConn import TidbConn
+from Apietl.utlis.Utils import Utils
+
+
+class AppKuaishouProductReportBusiMonth:
+    def __init__(self):
+        self.conn = TidbConn.get_connection()
+        self.parm = Utils.get_task_args()
+        self.date_time = self.parm[0]
+        self.day_count = Utils.get_days()
+
+    def taskHandler(self):
+        try:
+            sql = """
+SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
+REPLACE INTO app_kuaishou_product_report_busi_m
+SELECT
+date_format({date_time},'%Y%m') stat_mon,
+uc.company_id,
+CASE WHEN uc.company_id = 'd57fecdcf7a94d009736d9c850731582' THEN '北京汇创思拓数字科技有限公司'
+       WHEN uc.company_id = '6608ed13c0dd42de93c790dbdf124234' THEN '广州汇创思拓数字科技有限公司'
+       WHEN uc.company_id = '4b10089775c040119e139087517aed88' THEN '上海汇创思拓数字科技有限公司' ELSE uc.company_name END company_name,
+ cp.product_id,
+ cn.product_name,
+ count(report.advertiser_id) account_num,
+ sum(charge) charge,
+  sum(`show`) `show`,
+  sum(photo_click)photo_click,
+  sum(aclick)  aclick,
+  sum(bclick) bclick,
+  round(sum(photo_click)/sum(`show`),3) photo_click_ratio,
+  round(sum(play_3s_ratio)/{day_count}*100,3)  play_3s_ratio,
+  round(sum(bclick)/sum(aclick)*100,3) action_ratio,
+  round(sum(impression_1k_cost)/{day_count},3) impression_1k_cost,
+  round(sum(charge)/sum(photo_click),3) photo_click_cost,
+  round(sum(charge)/sum(bclick),3) action_cost,
+  sum(`share`) `share`,
+  sum(`comment`) `comment`,
+  sum(`like`)  `like`,
+  sum(follow) follow,
+  sum(cancel_follow)  cancel_follow,
+  sum(report) report,
+  sum(block) block,
+  sum(negative) negative,
+  sum(submit) submit,
+  sum(download_started) download_started,
+  sum(download_completed) download_completed,
+  sum(activation) activation,
+  sum(event_pay_first_day) event_pay_first_day,
+  sum(event_pay_purchase_amount_first_day) event_pay_purchase_amount_first_day,
+  round(sum(event_pay_purchase_amount_first_day)/sum(charge)*100,3) event_pay_first_day_roi ,
+  sum(event_pay) event_pay,
+  sum(event_pay_purchase_amount) event_pay_purchase_amount,
+  round(sum(event_pay_purchase_amount)/sum(charge)*100,3) event_pay_roi,
+  sum(event_register) event_register,
+  round(sum(charge)/sum(event_register),3) event_register_cost,
+  round(sum(event_register)/sum(activation)*100,3)  event_register_ratio,
+  sum(event_jin_jian_app) event_jin_jian_app,
+  round(sum(charge)/sum(event_jin_jian_app),3) event_jin_jian_app_cost,
+  sum(event_credit_grant_app) event_credit_grant_app,
+  round(sum(charge)/sum(event_credit_grant_app),3) event_credit_grant_app_cost ,
+  round(sum(event_credit_grant_app_ratio)/{day_count}*100,3) event_credit_grant_app_ratio,
+  sum(event_order_paid) event_order_paid,
+  sum(event_order_paid_purchase_amount) event_order_paid_purchase_amount,
+  round(sum(event_order_paid_purchase_amount)/sum(event_order_paid) ,3) event_order_paid_cost,
+  sum(event_next_day_stay) event_next_day_stay,
+  round(sum(charge)/sum(event_next_day_stay),3) event_next_day_stay_cost,
+  round(sum(event_next_day_stay)/sum(activation)*100,3) event_next_day_stay_ratio,
+  sum(form_count) form_count,
+  round(sum(charge)/sum(form_count),3) form_cost,
+  round(sum(form_count)/sum(`bclick`)*100,3) form_action_ratio,
+  sum(event_jin_jian_landing_page) event_jin_jian_landing_page,
+  round(sum(charge)/sum(event_jin_jian_landing_page),3) event_jin_jian_landing_page_cost,
+  sum(event_credit_grant_landing_page) event_credit_grant_landing_page,
+  round(sum(charge)/sum(event_credit_grant_landing_page),3) event_credit_grant_landing_page_cost,
+  round(sum(event_credit_grant_landing_page)/{day_count}*100,3) event_credit_grant_landing_page_ratio,
+  sum(event_valid_clues) event_valid_clues,
+  round(sum(charge)/sum(event_valid_clues),3) event_valid_clues_cost,
+  sum(event_add_wechat) event_add_wechat,
+  round(sum(charge)/sum(event_add_wechat),3) event_add_wechat_cost,
+  round(sum(event_add_wechat)/sum(bclick)*100,3) event_add_wechat_ratio,
+  sum(event_get_through) event_get_through,
+  round(sum(charge)/sum(event_get_through),3) event_get_through_cost,
+  round(sum(event_get_through)/sum(bclick)*100,3) event_get_through_ratio,
+  sum(event_app_invoked) event_app_invoked,
+  round(sum(charge)/sum(event_app_invoked),3) event_app_invoked_cost ,
+  round(sum(event_app_invoked)/sum(bclick)*100,3) event_app_invoked_ratio,
+  round(sum(event_credit_grant_landing_ratio)/{day_count}*100,3) event_credit_grant_landing_ratio,
+  round(sum(play_5s_ratio)/{day_count}*100,3) play_5s_ratio,
+  round(sum(play_end_ratio)/{day_count}*100,3) play_end_ratio,
+  sum(event_new_user_pay) event_new_user_pay,
+  round(sum(charge)/sum(event_new_user_pay),3) event_new_user_pay_cost,
+  round(sum(event_new_user_pay)/sum(activation)*100,3) event_new_user_pay_ratio,
+  round(sum(click_1k_cost)/{day_count}*100) click_1k_cost,
+  sum(ad_product_cnt) ad_product_cnt,
+  sum(event_goods_view) event_goods_view,
+  sum(merchant_reco_fans) merchant_reco_fans,
+  round(sum(event_order_amount_roi)/{day_count}*100,3) event_order_amount_roi,
+  round(sum(charge)/sum(event_goods_view) ,3) event_goods_view_cost,
+  round(sum(charge)/sum(merchant_reco_fans),3) merchant_reco_fans_cost,
+  sum(event_button_click) event_button_click,
+  round(sum(charge)/sum(event_button_click),3) event_button_click_cost,
+  round(sum(event_button_click)/sum(bclick)*100,3) event_button_click_ratio ,
+  round(sum(event_order_paid_roi)/{day_count}*100,3) event_order_paid_roi,
+  sum(event_new_user_jinjian_app) event_new_user_jinjian_app,
+  round(sum(charge)/sum(event_new_user_jinjian_app),3) event_new_user_jinjian_app_cost,
+  round(sum(event_new_user_jinjian_app)/sum(form_count)*100,3) event_new_user_jinjian_app_roi ,
+  sum(event_new_user_credit_grant_app) event_new_user_credit_grant_app,
+  round(sum(charge)/sum(event_new_user_credit_grant_app),3)  event_new_user_credit_grant_app_cost,
+  round(sum(event_new_user_credit_grant_app)/sum(form_count)*100,3) event_new_user_credit_grant_app_roi,
+  sum(event_new_user_jinjian_page) event_new_user_jinjian_page,
+  round(sum(charge)/sum(event_new_user_jinjian_page),3) event_new_user_jinjian_page_cost,
+  round(sum(event_new_user_jinjian_page)/sum(form_count)*100,3) event_new_user_jinjian_page_roi ,
+  sum(event_new_user_credit_grant_page) event_new_user_credit_grant_page,
+  round(sum(charge)/sum(event_new_user_credit_grant_page) ,3) event_new_user_credit_grant_page_cost,
+  round(sum(event_new_user_credit_grant_page)/sum(form_count)*100,3) event_new_user_credit_grant_page_roi,
+  sum(event_appoint_form)  event_appoint_form,
+  round(sum(charge)/sum(event_appoint_form),3) event_appoint_form_cost,
+  round(sum(event_appoint_form)/sum(form_count)*100,3) event_appoint_form_ratio,
+  sum(event_appoint_jump_click) event_appoint_jump_click,
+  round(sum(charge)/sum(event_appoint_jump_click),3)  event_appoint_jump_click_cost,
+  round(sum(event_appoint_jump_click_cost)/sum(form_count)*100,3) event_appoint_jump_click_ratio,
+  sum(union_event_pay_purchase_amount_7d) union_event_pay_purchase_amount_7d,
+  round(sum(union_event_pay_purchase_amount_7d_roi)/{day_count}*100,3) union_event_pay_purchase_amount_7d_roi,
+  sum(event_order_successed) event_order_successed,
+  round(sum(ad_photo_played_10s_ratio)/{day_count}*100,3) ad_photo_played_10s_ratio,
+  round(sum(charge)/sum(key_action),3) key_action_cost,
+  round(sum(charge)/sum(event_add_shopping_cart) ,3) event_add_shopping_cart_cost ,
+  round(sum(event_ad_watch_times)/sum(bclick)*100,3) event_ad_watch_times_ratio,
+  round(sum(charge)/sum(event_outbound_call),3) event_outbound_call_cost,
+  sum(event_outbound_call) event_outbound_call,
+  round(sum(action_new_ratio)/{day_count}*100,3) action_new_ratio,
+  sum(event_watch_app_ad) event_watch_app_ad,
+  round(sum(charge)/sum(event_multi_conversion) ,3) event_multi_conversion_cost,
+  sum(event_phone_card_activate) event_phone_card_activate,
+  round(sum(ad_photo_played_75percent_ratio)/{day_count}*100,3) ad_photo_played_75percent_ratio,
+  round(sum(key_action)/sum(activation)*100,3) key_action_ratio ,
+  round(sum(charge)/sum(event_ad_watch_times),3) event_ad_watch_times_cost,
+  sum(event_add_shopping_cart) event_add_shopping_cart,
+  sum(key_action) key_action,
+  sum(event_multi_conversion) event_multi_conversion,
+  sum(event_wechat_connected) event_wechat_connected,
+  sum(event_dsp_gift_form) event_dsp_gift_form,
+  sum(event_intention_confirmed) event_intention_confirmed,
+  sum(event_phone_get_through) event_phone_get_through,
+  round(sum(event_multi_conversion)/sum(activation)*100,3)  event_multi_conversion_ratio,
+  sum(event_measurement_house) event_measurement_house,
+  round(sum(ad_photo_played_2s_ratio)/{day_count}*100,3) ad_photo_played_2s_ratio,
+  round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
+  sum(event_ad_watch_times) event_ad_watch_times
+ from  
+ (select * from  media_api.kuaishou_account_report_daily  
+ where stat_date >= date_format(date_sub({date_time}, INTERVAL {day_count}  DAY),'%Y%m%d')) report
+LEFT JOIN `jeecg-boot`.ctop_user_allocation cua ON report.advertiser_id = cua.account_id
+LEFT JOIN `jeecg-boot`.ctop_project cp ON cua.project_id = cp.id
+LEFT JOIN `jeecg-boot`.ctop_product cn ON cp.product_id = cn.id
+LEFT JOIN `jeecg-boot`.user_company uc ON uc.user_id = cua.user_id
+GROUP BY
+uc.company_id,
+CASE
+WHEN uc.company_id = 'd57fecdcf7a94d009736d9c850731582' THEN
+'北京汇创思拓数字科技有限公司'
+WHEN uc.company_id = '6608ed13c0dd42de93c790dbdf124234' THEN
+'广州汇创思拓数字科技有限公司'
+WHEN uc.company_id = '4b10089775c040119e139087517aed88' THEN
+'上海汇创思拓数字科技有限公司'
+ELSE
+uc.company_name
+END,
+ cp.product_id,
+ cn.product_name;
+            """.format(date_time=self.date_time, day_count=self.day_count)
+            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 = AppKuaishouProductReportBusiMonth().taskHandler()
+    if status == 0:
+        print("作业执行成功")
+        exit(0)
+    else:
+        print("作业执行失败")
+        exit(-1)

+ 5 - 5
Apietl/kwai_etl/Q4Task/AppKuaishouProjectReportBusi.py

@@ -2,7 +2,7 @@
 # coding=utf-8
 # @Time    : 2021/11/10 3:37 下午
 # @Site    :
-# @File    : AppKuaishouUnitReportBusi.py
+# @File    : AppKuaishouProjectReportBusi.py
 # @Software: PyCharm
 # @contact: renyupeng@c-top.com.cn
 # @Tel 1501435553
@@ -11,7 +11,7 @@ from Apietl.conn.TidbConn import TidbConn
 from Apietl.utlis.Utils import Utils
 
 
-class AppKuaishouUnitReportBusi:
+class AppKuaishouProjectReportBusi:
     def __init__(self):
         self.conn = TidbConn.get_connection()
         self.parm = Utils.get_task_args()
@@ -26,7 +26,7 @@ REPLACE INTO application.app_kuaishou_project_report_busi_{day_count}d
 SELECT
 concat(
 date_format(
-date_sub({date_time}, INTERVAL 6 DAY),
+date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),
 '%Y%m%d'
 ),
 '-',
@@ -167,7 +167,7 @@ CASE WHEN uc.company_id = 'd57fecdcf7a94d009736d9c850731582' THEN '北京汇创
   round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
   sum(event_ad_watch_times) event_ad_watch_times
  from  
- (select * from  media_api.kuaishou_account_report_daily  where stat_date >= date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d')) report
+ (select * from  media_api.kuaishou_account_report_daily  where stat_date >= date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d')) report
 LEFT JOIN `jeecg-boot`.ctop_user_allocation cua ON report.advertiser_id = cua.account_id
 LEFT JOIN `jeecg-boot`.ctop_project cp ON cua.project_id = cp.id
 LEFT JOIN `jeecg-boot`.ctop_product cn ON cp.product_id = cn.id
@@ -200,7 +200,7 @@ END,
 
 
 if __name__ == '__main__':
-    status = AppKuaishouUnitReportBusi().taskHandler()
+    status = AppKuaishouProjectReportBusi().taskHandler()
     if status == 0:
         print("作业执行成功")
         exit(0)

+ 203 - 0
Apietl/kwai_etl/Q4Task/AppKuaishouProjectReportBusiMonth.py

@@ -0,0 +1,203 @@
+# Author renyupeng
+# coding=utf-8
+# @Time    : 2021/11/10 3:37 下午
+# @Site    :
+# @File    : AppKuaishouProjectReportBusiMonth.py
+# @Software: PyCharm
+# @contact: renyupeng@c-top.com.cn
+# @Tel 1501435553
+import logging
+from Apietl.conn.TidbConn import TidbConn
+from Apietl.utlis.Utils import Utils
+
+
+class AppKuaishouProjectReportBusiMonth:
+    def __init__(self):
+        self.conn = TidbConn.get_connection()
+        self.parm = Utils.get_task_args()
+        self.date_time = self.parm[0]
+        self.day_count = Utils.get_days()
+
+    def taskHandler(self):
+        try:
+            sql = """
+SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
+REPLACE INTO application.app_kuaishou_project_report_busi_m
+SELECT
+date_format({date_time},'%Y%m') as  stat_mon,
+uc.company_id,
+CASE WHEN uc.company_id = 'd57fecdcf7a94d009736d9c850731582' THEN '北京汇创思拓数字科技有限公司'
+       WHEN uc.company_id = '6608ed13c0dd42de93c790dbdf124234' THEN '广州汇创思拓数字科技有限公司'
+       WHEN uc.company_id = '4b10089775c040119e139087517aed88' THEN '上海汇创思拓数字科技有限公司' ELSE uc.company_name END company_name,
+ cp.product_id,
+ cn.product_name,
+ cua.project_id,
+ cp.project_name,
+ count(report.advertiser_id) account_num,
+ sum(charge) charge,
+  sum(`show`) `show`,
+  sum(photo_click)photo_click,
+  sum(aclick)  aclick,
+  sum(bclick) bclick,
+  round(sum(photo_click)/sum(`show`),3) photo_click_ratio,
+  round(sum(play_3s_ratio)/{day_count}*100,3)  play_3s_ratio,
+  round(sum(bclick)/sum(aclick)*100,3) action_ratio,
+  round(sum(impression_1k_cost)/{day_count},3) impression_1k_cost,
+  round(sum(charge)/sum(photo_click),3) photo_click_cost,
+  round(sum(charge)/sum(bclick),3) action_cost,
+  sum(`share`) `share`,
+  sum(`comment`) `comment`,
+  sum(`like`)  `like`,
+  sum(follow) follow,
+  sum(cancel_follow)  cancel_follow,
+  sum(report) report,
+  sum(block) block,
+  sum(negative) negative,
+  sum(submit) submit,
+  sum(download_started) download_started,
+  sum(download_completed) download_completed,
+  sum(activation) activation,
+  sum(event_pay_first_day) event_pay_first_day,
+  sum(event_pay_purchase_amount_first_day) event_pay_purchase_amount_first_day,
+  round(sum(event_pay_purchase_amount_first_day)/sum(charge)*100,3) event_pay_first_day_roi ,
+  sum(event_pay) event_pay,
+  sum(event_pay_purchase_amount) event_pay_purchase_amount,
+  round(sum(event_pay_purchase_amount)/sum(charge)*100,3) event_pay_roi,
+  sum(event_register) event_register,
+  round(sum(charge)/sum(event_register),3) event_register_cost,
+  round(sum(event_register)/sum(activation)*100,3) event_register_ratio,
+  sum(event_jin_jian_app) event_jin_jian_app,
+  round(sum(charge)/sum(event_jin_jian_app),3) event_jin_jian_app_cost,
+  sum(event_credit_grant_app) event_credit_grant_app,
+  round(sum(charge)/sum(event_credit_grant_app),3) event_credit_grant_app_cost ,
+  round(sum(event_credit_grant_app_ratio)/{day_count}*100,3) event_credit_grant_app_ratio,
+  sum(event_order_paid) event_order_paid,
+  sum(event_order_paid_purchase_amount) event_order_paid_purchase_amount,
+  round(sum(event_order_paid_purchase_amount)/sum(event_order_paid) ,3) event_order_paid_cost,
+  sum(event_next_day_stay) event_next_day_stay,
+  round(sum(charge)/sum(event_next_day_stay),3) event_next_day_stay_cost,
+  round(sum(event_next_day_stay)/sum(activation)*100,3) event_next_day_stay_ratio,
+  sum(form_count) form_count,
+  round(sum(charge)/sum(form_count),3) form_cost,
+  round(sum(form_count)/sum(`bclick`)*100,3) form_action_ratio,
+  sum(event_jin_jian_landing_page) event_jin_jian_landing_page,
+  round(sum(charge)/sum(event_jin_jian_landing_page),3) event_jin_jian_landing_page_cost,
+  sum(event_credit_grant_landing_page) event_credit_grant_landing_page,
+  round(sum(charge)/sum(event_credit_grant_landing_page),3) event_credit_grant_landing_page_cost,
+  round(sum(event_credit_grant_landing_page)/{day_count}*100,3) event_credit_grant_landing_page_ratio,
+  sum(event_valid_clues) event_valid_clues,
+  round(sum(charge)/sum(event_valid_clues),3) event_valid_clues_cost,
+  sum(event_add_wechat) event_add_wechat,
+  round(sum(charge)/sum(event_add_wechat),3) event_add_wechat_cost,
+  round(sum(event_add_wechat)/sum(bclick)*100,3) event_add_wechat_ratio,
+  sum(event_get_through) event_get_through,
+  round(sum(charge)/sum(event_get_through),3) event_get_through_cost,
+  round(sum(event_get_through)/sum(bclick)*100,3) event_get_through_ratio,
+  sum(event_app_invoked) event_app_invoked,
+  round(sum(charge)/sum(event_app_invoked),3) event_app_invoked_cost ,
+  round(sum(event_app_invoked)/sum(bclick)*100,3) event_app_invoked_ratio,
+  round(sum(event_credit_grant_landing_ratio)/{day_count}*100,3) event_credit_grant_landing_ratio,
+  round(sum(play_5s_ratio)/{day_count}*100,3) play_5s_ratio,
+  round(sum(play_end_ratio)/{day_count}*100,3) play_end_ratio,
+  sum(event_new_user_pay) event_new_user_pay,
+  round(sum(charge)/sum(event_new_user_pay),3) event_new_user_pay_cost,
+  round(sum(event_new_user_pay)/sum(activation)*100,3) event_new_user_pay_ratio,
+  round(sum(click_1k_cost)/{day_count}*100) click_1k_cost,
+  sum(ad_product_cnt) ad_product_cnt,
+  sum(event_goods_view) event_goods_view,
+  sum(merchant_reco_fans) merchant_reco_fans,
+  round(sum(event_order_amount_roi)/{day_count}*100,3) event_order_amount_roi,
+  round(sum(charge)/sum(event_goods_view) ,3) event_goods_view_cost,
+  round(sum(charge)/sum(merchant_reco_fans),3) merchant_reco_fans_cost,
+  sum(event_button_click) event_button_click,
+  round(sum(charge)/sum(event_button_click),3) event_button_click_cost,
+  round(sum(event_button_click)/sum(bclick)*100,3) event_button_click_ratio ,
+  round(sum(event_order_paid_roi)/{day_count}*100,3) event_order_paid_roi,
+  sum(event_new_user_jinjian_app) event_new_user_jinjian_app,
+  round(sum(charge)/sum(event_new_user_jinjian_app),3) event_new_user_jinjian_app_cost,
+  round(sum(event_new_user_jinjian_app)/sum(form_count)*100,3) event_new_user_jinjian_app_roi ,
+  sum(event_new_user_credit_grant_app) event_new_user_credit_grant_app,
+  round(sum(charge)/sum(event_new_user_credit_grant_app),3)  event_new_user_credit_grant_app_cost,
+  round(sum(event_new_user_credit_grant_app)/sum(form_count)*100,3) event_new_user_credit_grant_app_roi,
+  sum(event_new_user_jinjian_page) event_new_user_jinjian_page,
+  round(sum(charge)/sum(event_new_user_jinjian_page),3) event_new_user_jinjian_page_cost,
+  round(sum(event_new_user_jinjian_page)/sum(form_count)*100,3) event_new_user_jinjian_page_roi ,
+  sum(event_new_user_credit_grant_page) event_new_user_credit_grant_page,
+  round(sum(charge)/sum(event_new_user_credit_grant_page) ,3) event_new_user_credit_grant_page_cost,
+  round(sum(event_new_user_credit_grant_page)/sum(form_count)*100,3) event_new_user_credit_grant_page_roi,
+  sum(event_appoint_form)  event_appoint_form,
+  round(sum(charge)/sum(event_appoint_form),3) event_appoint_form_cost,
+  round(sum(event_appoint_form)/sum(form_count)*100,3) event_appoint_form_ratio,
+  sum(event_appoint_jump_click) event_appoint_jump_click,
+  round(sum(charge)/sum(event_appoint_jump_click),3)  event_appoint_jump_click_cost,
+  round(sum(event_appoint_jump_click_cost)/sum(form_count)*100,3) event_appoint_jump_click_ratio,
+  sum(union_event_pay_purchase_amount_7d) union_event_pay_purchase_amount_7d,
+  round(sum(union_event_pay_purchase_amount_7d_roi)/{day_count}*100,3) union_event_pay_purchase_amount_7d_roi,
+  sum(event_order_successed) event_order_successed,
+  round(sum(ad_photo_played_10s_ratio)/{day_count}*100,3) ad_photo_played_10s_ratio,
+  round(sum(charge)/sum(key_action),3) key_action_cost,
+  round(sum(charge)/sum(event_add_shopping_cart) ,3) event_add_shopping_cart_cost ,
+  round(sum(event_ad_watch_times)/sum(bclick)*100,3) event_ad_watch_times_ratio,
+  round(sum(charge)/sum(event_outbound_call),3) event_outbound_call_cost,
+  sum(event_outbound_call) event_outbound_call,
+  round(sum(action_new_ratio)/{day_count}*100,3) action_new_ratio,
+  sum(event_watch_app_ad) event_watch_app_ad,
+  round(sum(charge)/sum(event_multi_conversion) ,3) event_multi_conversion_cost,
+  sum(event_phone_card_activate) event_phone_card_activate,
+  round(sum(ad_photo_played_75percent_ratio)/{day_count}*100,3) ad_photo_played_75percent_ratio,
+  round(sum(key_action)/sum(activation)*100,3) key_action_ratio ,
+  round(sum(charge)/sum(event_ad_watch_times),3) event_ad_watch_times_cost,
+  sum(event_add_shopping_cart) event_add_shopping_cart,
+  sum(key_action) key_action,
+  sum(event_multi_conversion) event_multi_conversion,
+  sum(event_wechat_connected) event_wechat_connected,
+  sum(event_dsp_gift_form) event_dsp_gift_form,
+  sum(event_intention_confirmed) event_intention_confirmed,
+  sum(event_phone_get_through) event_phone_get_through,
+  round(sum(event_multi_conversion)/sum(activation)*100,3)  event_multi_conversion_ratio,
+  sum(event_measurement_house) event_measurement_house,
+  round(sum(ad_photo_played_2s_ratio)/{day_count}*100,3) ad_photo_played_2s_ratio,
+  round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
+  sum(event_ad_watch_times) event_ad_watch_times
+ from  
+ (select * from  media_api.kuaishou_account_report_daily  
+ where stat_date >= date_format(date_sub({date_time}, INTERVAL {day_count}  DAY),'%Y%m%d')) report
+LEFT JOIN `jeecg-boot`.ctop_user_allocation cua ON report.advertiser_id = cua.account_id
+LEFT JOIN `jeecg-boot`.ctop_project cp ON cua.project_id = cp.id
+LEFT JOIN `jeecg-boot`.ctop_product cn ON cp.product_id = cn.id
+LEFT JOIN `jeecg-boot`.user_company uc ON uc.user_id = cua.user_id
+GROUP BY
+uc.company_id,
+CASE
+WHEN uc.company_id = 'd57fecdcf7a94d009736d9c850731582' THEN
+'北京汇创思拓数字科技有限公司'
+WHEN uc.company_id = '6608ed13c0dd42de93c790dbdf124234' THEN
+'广州汇创思拓数字科技有限公司'
+WHEN uc.company_id = '4b10089775c040119e139087517aed88' THEN
+'上海汇创思拓数字科技有限公司'
+ELSE
+uc.company_name
+END,
+ cp.product_id,
+ cn.product_name,
+ cua.project_id,
+ cp.project_name;
+ 
+            """.format(date_time=self.date_time, day_count=self.day_count)
+            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 = AppKuaishouProjectReportBusiMonth().taskHandler()
+    if status == 0:
+        print("作业执行成功")
+        exit(0)
+    else:
+        print("作业执行失败")
+        exit(-1)

+ 2 - 2
Apietl/kwai_etl/Q4Task/AppKuaishouUnitReportBusi.py

@@ -29,7 +29,7 @@ group by project_id """
                     sql = """SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
 REPLACE INTO application.app_kuaishou_unit_report_busi_{day_count}d 
 SELECT
-concat(date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d'),'-',{date_time}) start_end_time,
+concat(date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d'),'-',{date_time}) start_end_time,
 report.account_id,
 bei.advertiser_id,
 report.campaign_id,
@@ -305,7 +305,7 @@ round(sum(ad_photo_played_2s_ratio)/{day_count}*100,3) ad_photo_played_2s_ratio,
 round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
 sum(event_ad_watch_times) event_ad_watch_times
 from 
- media_api.kuaishou_unit_report_daily  a  where stat_date >= date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d')
+ media_api.kuaishou_unit_report_daily  a  where stat_date >= date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d')
  group by advertiser_id,campaign_id,campaign_name,unit_id,unit_name) report
 LEFT JOIN (
 SELECT

+ 359 - 0
Apietl/kwai_etl/Q4Task/AppKuaishouUnitReportBusiMonth.py

@@ -0,0 +1,359 @@
+# Author renyupeng
+# coding=utf-8
+# @Time    : 2021/11/10 3:37 下午
+# @Site    :
+# @File    : AppKuaishouUnitReportBusiMonth.py
+# @Software: PyCharm
+# @contact: renyupeng@c-top.com.cn
+# @Tel 1501435553
+import logging
+
+from Apietl.conn.TidbConn import TidbConn
+from Apietl.utlis.Utils import Utils
+
+
+class AppKuaishouUnitReportBusiMonth:
+    def __init__(self):
+        self.conn = TidbConn.get_connection()
+        self.parm = Utils.get_task_args()
+        self.date_time = self.parm[0]
+        self.day_count = Utils.get_days()
+
+    def taskHandler(self):
+        try:
+            sql_porject = """select project_id from `jeecg-boot`.ctop_user_allocation where media_id=2
+group by project_id """
+            project_list = TidbConn.quary(self.conn, sql_porject)
+            for project_id in project_list:
+                try:
+                    sql = """SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
+REPLACE INTO application.app_kuaishou_unit_report_busi_m
+SELECT
+date_format({date_time},'%Y%m')stat_mon,
+report.account_id,
+bei.advertiser_id,
+report.campaign_id,
+report.campaign_name,
+report.unit_id,
+report.unit_name,
+bei.project_id,
+bei.product_id,
+bei.company_id,
+bei.account_name,
+bei.project_name,
+bei.advertiser_name,
+bei.company_name,
+bei.sale_id,
+bei.user_id,
+bei.leader_id,
+bei.org_code,
+report.charge,
+report.`show`,
+report.photo_click,
+report.aclick,
+report.bclick,
+report.photo_click_ratio,
+report.play_3s_ratio,
+report.action_ratio,
+report.impression_1k_cost,
+report.photo_click_cost,
+report.action_cost,
+report.`share`,
+report.`comment`,
+report.`like`,
+report.follow,
+report.cancel_follow,
+report.report,
+report.block,
+report.negative,
+report.submit,
+report.download_started,
+report.download_completed,
+report.activation,
+report.event_pay_first_day,
+report.event_pay_purchase_amount_first_day,
+report.event_pay_first_day_roi,
+report.event_pay,
+report.event_pay_purchase_amount,
+report.event_pay_roi,
+report.event_register,
+report.event_register_cost,
+report.event_register_ratio,
+report.event_jin_jian_app,
+report.event_jin_jian_app_cost,
+report.event_credit_grant_app,
+report.event_credit_grant_app_cost,
+report.event_credit_grant_app_ratio,
+report.event_order_paid,
+report.event_order_paid_purchase_amount,
+report.event_order_paid_cost,
+report.event_next_day_stay,
+report.event_next_day_stay_cost,
+report.event_next_day_stay_ratio,
+report.form_count,
+report.form_cost,
+report.form_action_ratio,
+report.event_jin_jian_landing_page,
+report.event_jin_jian_landing_page_cost,
+report.event_credit_grant_landing_page,
+report.event_credit_grant_landing_page_cost,
+report.event_credit_grant_landing_page_ratio,
+report.event_valid_clues,
+report.event_valid_clues_cost,
+report.event_add_wechat,
+report.event_add_wechat_cost,
+report.event_add_wechat_ratio,
+report.event_get_through,
+report.event_get_through_cost,
+report.event_get_through_ratio,
+report.event_app_invoked,
+report.event_app_invoked_cost,
+report.event_app_invoked_ratio,
+report.event_credit_grant_landing_ratio,
+report.play_5s_ratio,
+report.play_end_ratio,
+report.event_new_user_pay,
+report.event_new_user_pay_cost,
+report.event_new_user_pay_ratio,
+report.click_1k_cost,
+report.ad_product_cnt,
+report.event_goods_view,
+report.merchant_reco_fans,
+report.event_order_amount_roi,
+report.event_goods_view_cost,
+report.merchant_reco_fans_cost,
+report.event_button_click,
+report.event_button_click_cost,
+report.event_button_click_ratio,
+report.event_order_paid_roi,
+report.event_new_user_jinjian_app,
+report.event_new_user_jinjian_app_cost,
+report.event_new_user_jinjian_app_roi,
+report.event_new_user_credit_grant_app,
+report.event_new_user_credit_grant_app_cost,
+report.event_new_user_credit_grant_app_roi,
+report.event_new_user_jinjian_page,
+report.event_new_user_jinjian_page_cost,
+report.event_new_user_jinjian_page_roi,
+report.event_new_user_credit_grant_page,
+report.event_new_user_credit_grant_page_cost,
+report.event_new_user_credit_grant_page_roi,
+report.event_appoint_form,
+report.event_appoint_form_cost,
+report.event_appoint_form_ratio,
+report.event_appoint_jump_click,
+report.event_appoint_jump_click_cost,
+report.event_appoint_jump_click_ratio,
+report.union_event_pay_purchase_amount_7d,
+report.union_event_pay_purchase_amount_7d_roi,
+report.event_order_successed,
+report.ad_photo_played_10s_ratio,
+report.key_action_cost,
+report.event_add_shopping_cart_cost,
+report.event_ad_watch_times_ratio,
+report.event_outbound_call_cost,
+report.event_outbound_call,
+report.action_new_ratio,
+report.event_watch_app_ad,
+report.event_multi_conversion_cost,
+report.event_phone_card_activate,
+report.ad_photo_played_75percent_ratio,
+report.key_action_ratio,
+report.event_ad_watch_times_cost,
+report.event_add_shopping_cart,
+report.key_action,
+report.event_multi_conversion,
+report.event_wechat_connected,
+report.event_dsp_gift_form,
+report.event_intention_confirmed,
+report.event_phone_get_through,
+report.event_multi_conversion_ratio,
+report.event_measurement_house,
+report.ad_photo_played_2s_ratio,
+report.event_outbound_call_ratio,
+report.event_ad_watch_times
+from 
+(select 
+advertiser_id account_id,
+campaign_id,
+campaign_name,
+unit_id,
+unit_name,
+sum(charge) charge,
+sum(`show`) `show`,
+sum(photo_click)photo_click,
+sum(aclick)  aclick,
+sum(bclick) bclick,
+round(sum(photo_click)/sum(`show`),3) photo_click_ratio,
+round(sum(play_3s_ratio)/{day_count}*100,3)  play_3s_ratio,
+round(sum(bclick)/sum(aclick)*100,3) action_ratio,
+round(sum(impression_1k_cost)/{day_count},3) impression_1k_cost,
+round(sum(charge)/sum(photo_click),3) photo_click_cost,
+round(sum(charge)/sum(bclick),3) action_cost,
+sum(`share`) `share`,
+sum(`comment`) `comment`,
+sum(`like`)  `like`,
+sum(follow) follow,
+sum(cancel_follow)  cancel_follow,
+sum(report) report,
+sum(block) block,
+sum(negative) negative,
+sum(submit) submit,
+sum(download_started) download_started,
+sum(download_completed) download_completed,
+sum(activation) activation,
+sum(event_pay_first_day) event_pay_first_day,
+sum(event_pay_purchase_amount_first_day) event_pay_purchase_amount_first_day,
+round(sum(event_pay_purchase_amount_first_day)/sum(charge)*100,3) event_pay_first_day_roi ,
+sum(event_pay) event_pay,
+sum(event_pay_purchase_amount) event_pay_purchase_amount,
+round(sum(event_pay_purchase_amount)/sum(charge)*100,3) event_pay_roi,
+sum(event_register) event_register,
+round(sum(charge)/sum(event_register),3) event_register_cost,
+round(sum(event_register)/sum(activation)*100,3) event_register_ratio,
+sum(event_jin_jian_app) event_jin_jian_app,
+round(sum(charge)/sum(event_jin_jian_app),3) event_jin_jian_app_cost,
+sum(event_credit_grant_app) event_credit_grant_app,
+round(sum(charge)/sum(event_credit_grant_app),3) event_credit_grant_app_cost ,
+round(sum(event_credit_grant_app_ratio)/{day_count}*100,3) event_credit_grant_app_ratio,
+sum(event_order_paid) event_order_paid,
+sum(event_order_paid_purchase_amount) event_order_paid_purchase_amount,
+round(sum(event_order_paid_purchase_amount)/sum(event_order_paid) ,3) event_order_paid_cost,
+sum(event_next_day_stay) event_next_day_stay,
+round(sum(charge)/sum(event_next_day_stay),3) event_next_day_stay_cost,
+round(sum(event_next_day_stay)/sum(activation)*100,3) event_next_day_stay_ratio,
+sum(form_count) form_count,
+round(sum(charge)/sum(form_count),3) form_cost,
+round(sum(form_count)/sum(`bclick`)*100,3) form_action_ratio,
+sum(event_jin_jian_landing_page) event_jin_jian_landing_page,
+round(sum(charge)/sum(event_jin_jian_landing_page),3) event_jin_jian_landing_page_cost,
+sum(event_credit_grant_landing_page) event_credit_grant_landing_page,
+round(sum(charge)/sum(event_credit_grant_landing_page),3) event_credit_grant_landing_page_cost,
+round(sum(event_credit_grant_landing_page)/{day_count}*100,3) event_credit_grant_landing_page_ratio,
+sum(event_valid_clues) event_valid_clues,
+round(sum(charge)/sum(event_valid_clues),3) event_valid_clues_cost,
+sum(event_add_wechat) event_add_wechat,
+round(sum(charge)/sum(event_add_wechat),3) event_add_wechat_cost,
+round(sum(event_add_wechat)/sum(bclick)*100,3) event_add_wechat_ratio,
+sum(event_get_through) event_get_through,
+round(sum(charge)/sum(event_get_through),3) event_get_through_cost,
+round(sum(event_get_through)/sum(bclick)*100,3) event_get_through_ratio,
+sum(event_app_invoked) event_app_invoked,
+round(sum(charge)/sum(event_app_invoked),3) event_app_invoked_cost ,
+round(sum(event_app_invoked)/sum(bclick)*100,3) event_app_invoked_ratio,
+round(sum(event_credit_grant_landing_ratio)/{day_count}*100,3) event_credit_grant_landing_ratio,
+round(sum(play_5s_ratio)/{day_count}*100,3) play_5s_ratio,
+round(sum(play_end_ratio)/{day_count}*100,3) play_end_ratio,
+sum(event_new_user_pay) event_new_user_pay,
+round(sum(charge)/sum(event_new_user_pay),3) event_new_user_pay_cost,
+round(sum(event_new_user_pay)/sum(activation)*100,3) event_new_user_pay_ratio,
+round(sum(click_1k_cost)/{day_count}*100) click_1k_cost,
+sum(ad_product_cnt) ad_product_cnt,
+sum(event_goods_view) event_goods_view,
+sum(merchant_reco_fans) merchant_reco_fans,
+round(sum(event_order_amount_roi)/{day_count}*100,3) event_order_amount_roi,
+round(sum(charge)/sum(event_goods_view) ,3) event_goods_view_cost,
+round(sum(charge)/sum(merchant_reco_fans),3) merchant_reco_fans_cost,
+sum(event_button_click) event_button_click,
+round(sum(charge)/sum(event_button_click),3) event_button_click_cost,
+round(sum(event_button_click)/sum(bclick)*100,3) event_button_click_ratio ,
+round(sum(event_order_paid_roi)/{day_count}*100,3) event_order_paid_roi,
+sum(event_new_user_jinjian_app) event_new_user_jinjian_app,
+round(sum(charge)/sum(event_new_user_jinjian_app),3) event_new_user_jinjian_app_cost,
+round(sum(event_new_user_jinjian_app)/sum(form_count)*100,3) event_new_user_jinjian_app_roi ,
+sum(event_new_user_credit_grant_app) event_new_user_credit_grant_app,
+round(sum(charge)/sum(event_new_user_credit_grant_app),3)  event_new_user_credit_grant_app_cost,
+round(sum(event_new_user_credit_grant_app)/sum(form_count)*100,3) event_new_user_credit_grant_app_roi,
+sum(event_new_user_jinjian_page) event_new_user_jinjian_page,
+round(sum(charge)/sum(event_new_user_jinjian_page),3) event_new_user_jinjian_page_cost,
+round(sum(event_new_user_jinjian_page)/sum(form_count)*100,3) event_new_user_jinjian_page_roi ,
+sum(event_new_user_credit_grant_page) event_new_user_credit_grant_page,
+round(sum(charge)/sum(event_new_user_credit_grant_page) ,3) event_new_user_credit_grant_page_cost,
+round(sum(event_new_user_credit_grant_page)/sum(form_count)*100,3) event_new_user_credit_grant_page_roi,
+sum(event_appoint_form)  event_appoint_form,
+round(sum(charge)/sum(event_appoint_form),3) event_appoint_form_cost,
+round(sum(event_appoint_form)/sum(form_count)*100,3) event_appoint_form_ratio,
+sum(event_appoint_jump_click) event_appoint_jump_click,
+round(sum(charge)/sum(event_appoint_jump_click),3)  event_appoint_jump_click_cost,
+round(sum(event_appoint_jump_click_cost)/sum(form_count)*100,3) event_appoint_jump_click_ratio,
+sum(union_event_pay_purchase_amount_7d) union_event_pay_purchase_amount_7d,
+round(sum(union_event_pay_purchase_amount_7d_roi)/{day_count}*100,3) union_event_pay_purchase_amount_7d_roi,
+sum(event_order_successed) event_order_successed,
+round(sum(ad_photo_played_10s_ratio)/{day_count}*100,3) ad_photo_played_10s_ratio,
+round(sum(charge)/sum(key_action),3) key_action_cost,
+round(sum(charge)/sum(event_add_shopping_cart) ,3) event_add_shopping_cart_cost ,
+round(sum(event_ad_watch_times)/sum(bclick)*100,3) event_ad_watch_times_ratio,
+round(sum(charge)/sum(event_outbound_call),3) event_outbound_call_cost,
+sum(event_outbound_call) event_outbound_call,
+round(sum(action_new_ratio)/{day_count}*100,3) action_new_ratio,
+sum(event_watch_app_ad) event_watch_app_ad,
+round(sum(charge)/sum(event_multi_conversion) ,3) event_multi_conversion_cost,
+sum(event_phone_card_activate) event_phone_card_activate,
+round(sum(ad_photo_played_75percent_ratio)/{day_count}*100,3) ad_photo_played_75percent_ratio,
+round(sum(key_action)/sum(activation)*100,3) key_action_ratio ,
+round(sum(charge)/sum(event_ad_watch_times),3) event_ad_watch_times_cost,
+sum(event_add_shopping_cart) event_add_shopping_cart,
+sum(key_action) key_action,
+sum(event_multi_conversion) event_multi_conversion,
+sum(event_wechat_connected) event_wechat_connected,
+sum(event_dsp_gift_form) event_dsp_gift_form,
+sum(event_intention_confirmed) event_intention_confirmed,
+sum(event_phone_get_through) event_phone_get_through,
+round(sum(event_multi_conversion)/sum(activation)*100,3)  event_multi_conversion_ratio,
+sum(event_measurement_house) event_measurement_house,
+round(sum(ad_photo_played_2s_ratio)/{day_count}*100,3) ad_photo_played_2s_ratio,
+round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
+sum(event_ad_watch_times) event_ad_watch_times
+from 
+ media_api.kuaishou_unit_report_daily  a 
+where stat_date >= date_format(date_sub({date_time}, INTERVAL {day_count}  DAY),'%Y%m%d')
+ group by advertiser_id,campaign_id,campaign_name,unit_id,unit_name) report
+LEFT JOIN (
+SELECT
+cua.account_id id,
+cua.account_id account_id,
+cp.id project_id,
+product.id product_id,
+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.leader_id,
+su.org_code org_code
+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`.user_company uc ON uc.user_id = cua.user_id
+LEFT JOIN `jeecg-boot`.ctop_product product ON product.id = cp.product_id
+WHERE
+cua.account_id IS NOT NULL) bei 
+ON report.account_id = bei.account_id
+where bei.project_id={project_id}
+;""".format(date_time=self.date_time, day_count=self.day_count, project_id=project_id[0])
+                    print(sql)
+                    TidbConn.upsert(conn=self.conn, sql_buff=sql)
+                    self.conn.commit()
+                except Exception as e:
+                    logging.error(e)
+                    return -1
+            TidbConn.conn_close(conn=self.conn)
+            return 0
+        except Exception as e:
+            logging.error(e)
+            return -1
+
+
+if __name__ == '__main__':
+    status = AppKuaishouUnitReportBusiMonth().taskHandler()
+    if status == 0:
+        print("作业执行成功")
+        exit(0)
+    else:
+        print("作业执行失败")
+        exit(-1)

+ 2 - 2
Apietl/kwai_etl/Q4Task/AppKuaishouVideoReportBusi.py

@@ -29,7 +29,7 @@ group by project_id """
                     sql = """SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
 REPLACE INTO application.app_kuaishou_video_report_busi_{day_count}d 
 SELECT
-concat(date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d'),'-',{date_time}) start_end_time,
+concat(date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d'),'-',{date_time}) start_end_time,
 report.account_id,
 report.photo_id,
 report.image_token,
@@ -319,7 +319,7 @@ sum(event_measurement_house) event_measurement_house,
 round(sum(ad_photo_played_2s_ratio)/{day_count}*100,3) ad_photo_played_2s_ratio,
 round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
 sum(event_ad_watch_times) event_ad_watch_times
-from  media_api.kuaishou_material_video_report_daily where stat_date >= date_format(date_sub({date_time}, INTERVAL 6 DAY),'%Y%m%d')
+from  media_api.kuaishou_material_video_report_daily where stat_date >= date_format(date_sub({date_time}, INTERVAL ({day_count} -1 )  DAY),'%Y%m%d')
 group by 
 advertiser_id,
 photo_id,

+ 371 - 0
Apietl/kwai_etl/Q4Task/AppKuaishouVideoReportBusiMonth.py

@@ -0,0 +1,371 @@
+# Author renyupeng
+# coding=utf-8
+# @Time    : 2021/11/10 3:37 下午
+# @Site    :
+# @File    : AppKuaishouVideoReportBusiMonth.py
+# @Software: PyCharm
+# @contact: renyupeng@c-top.com.cn
+# @Tel 1501435553
+import logging
+
+from Apietl.conn.TidbConn import TidbConn
+from Apietl.utlis.Utils import Utils
+
+
+class AppKuaishouVideoReportBusiMonth:
+    def __init__(self):
+        self.conn = TidbConn.get_connection()
+        self.parm = Utils.get_task_args()
+        self.date_time = self.parm[0]
+        self.day_count = Utils.get_days()
+
+    def taskHandler(self):
+        try:
+            sql_porject = """select project_id from `jeecg-boot`.ctop_user_allocation where media_id=2
+group by project_id """
+            project_list = TidbConn.quary(self.conn, sql_porject)
+            for project_id in project_list:
+                try:
+                    sql = """SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
+REPLACE INTO application.app_kuaishou_video_report_busi_m
+SELECT
+date_format({date_time},'%Y%m%d') stat_mon,
+report.account_id,
+report.photo_id,
+report.image_token,
+report.photo_caption,
+report.photo_url,
+report.cover_url,
+cua.project_id, #项目id  
+product.id product_id, #项目中产品id
+cua.advertiser_id,#广告主id
+uc.company_id,#运营人的公司id                      
+cua.auth_name account_name,#账户名称
+cp.project_name,#项目名称  
+ca.`name` advertiser_name,#广告主名称
+uc.company_name, #运营人的公司名称
+cp.sale_id, #项目里的销售id
+cua.user_id, #运营id                                                                                                          
+cma.clip_id, #剪辑id
+cma.shot_id, #拍摄id
+cma.plan_id, #编导id
+cma.leader_id, #负责人id
+su.org_code, #机构编码
+video.signature, #md5
+video.channel_type chl_type, #渠道类型
+clip.realname clip_name, #剪辑名称
+shot.realname shot_name, #拍摄名称
+plan.realname plan_name, #编导名称
+leader.realname lead_name,#负责人名称
+CASE WHEN cmi.material_name IS NOT NULL THEN cmi.material_name 
+     ELSE video.photo_name END AS video_name,##视频名称
+case when video.channel_type = 1 then '素造' else '内部' end as  chl_name, #渠道名称
+up.company_id clip_company_id, #剪辑公司
+report.charge ,
+report.`show`,
+report.photo_click,
+report.aclick ,
+report.bclick ,
+report.photo_click_ratio,
+report.play_3s_ratio,
+report.action_ratio ,
+report.impression_1k_cost ,
+report.photo_click_cost,
+report.action_cost,
+report.`share`,
+report.`comment`,
+report.`like`,
+report.follow ,
+report.cancel_follow,
+report.report ,
+report.block,
+report.negative,
+report.submit ,
+report.download_started,
+report.download_completed ,
+report.activation,
+report.event_pay_first_day,
+report.event_pay_purchase_amount_first_day,
+report.event_pay_first_day_roi,
+report.event_pay ,
+report.event_pay_purchase_amount,
+report.event_pay_roi,
+report.event_register,
+report.event_register_cost,
+report.event_register_ratio,
+report.event_jin_jian_app ,
+report.event_jin_jian_app_cost,
+report.event_credit_grant_app,
+report.event_credit_grant_app_cost ,
+report.event_credit_grant_app_ratio,
+report.event_order_paid,
+report.event_order_paid_purchase_amount,
+report.event_order_paid_cost ,
+report.event_next_day_stay,
+report.event_next_day_stay_cost ,
+report.event_next_day_stay_ratio,
+report.form_count,
+report.form_cost ,
+report.form_action_ratio,
+report.event_jin_jian_landing_page ,
+report.event_jin_jian_landing_page_cost,
+report.event_credit_grant_landing_page,
+report.event_credit_grant_landing_page_cost ,
+report.event_credit_grant_landing_page_ratio,
+report.event_valid_clues,
+report.event_valid_clues_cost,
+report.event_add_wechat,
+report.event_add_wechat_cost ,
+report.event_add_wechat_ratio,
+report.event_get_through,
+report.event_get_through_cost,
+report.event_get_through_ratio,
+report.event_app_invoked,
+report.event_app_invoked_cost,
+report.event_app_invoked_ratio,
+report.event_credit_grant_landing_ratio,
+report.play_5s_ratio,
+report.play_end_ratio,
+report.event_new_user_pay ,
+report.event_new_user_pay_cost,
+report.event_new_user_pay_ratio ,
+report.click_1k_cost,
+report.ad_product_cnt,
+report.event_goods_view,
+report.merchant_reco_fans ,
+report.event_order_amount_roi,
+report.event_goods_view_cost ,
+report.merchant_reco_fans_cost,
+report.event_button_click ,
+report.event_button_click_cost,
+report.event_button_click_ratio ,
+report.event_order_paid_roi,
+report.event_new_user_jinjian_app,
+report.event_new_user_jinjian_app_cost,
+report.event_new_user_jinjian_app_roi ,
+report.event_new_user_credit_grant_app,
+report.event_new_user_credit_grant_app_cost ,
+report.event_new_user_credit_grant_app_roi,
+report.event_new_user_jinjian_page ,
+report.event_new_user_jinjian_page_cost,
+report.event_new_user_jinjian_page_roi,
+report.event_new_user_credit_grant_page,
+report.event_new_user_credit_grant_page_cost,
+report.event_new_user_credit_grant_page_roi ,
+report.event_appoint_form ,
+report.event_appoint_form_cost,
+report.event_appoint_form_ratio ,
+report.event_appoint_jump_click ,
+report.event_appoint_jump_click_cost,
+report.event_appoint_jump_click_ratio ,
+report.union_event_pay_purchase_amount_7d,
+report.union_event_pay_purchase_amount_7d_roi,
+report.event_order_successed ,
+report.ad_photo_played_10s_ratio,
+report.key_action_cost ,
+report.event_add_shopping_cart_cost,
+report.event_ad_watch_times_ratio,
+report.event_outbound_call_cost ,
+report.event_outbound_call,
+report.action_new_ratio,
+report.event_watch_app_ad ,
+report.event_multi_conversion_cost ,
+report.event_phone_card_activate,
+report.ad_photo_played_75percent_ratio,
+report.key_action_ratio,
+report.event_ad_watch_times_cost,
+report.event_add_shopping_cart,
+report.key_action,
+report.event_multi_conversion,
+report.event_wechat_connected,
+report.event_dsp_gift_form,
+report.event_intention_confirmed,
+report.event_phone_get_through,
+report.event_multi_conversion_ratio,
+report.event_measurement_house,
+report.ad_photo_played_2s_ratio ,
+report.event_outbound_call_ratio,
+report.event_ad_watch_times
+from 
+(select 
+advertiser_id account_id,
+photo_id,
+image_token,
+photo_caption,
+photo_url,
+cover_url,
+sum(charge) charge,
+sum(`show`) `show`,
+sum(photo_click)photo_click,
+sum(aclick)  aclick,
+sum(bclick) bclick,
+round(sum(photo_click)/sum(`show`),3) photo_click_ratio,
+round(sum(play_3s_ratio)/{day_count}*100,3)  play_3s_ratio,
+round(sum(bclick)/sum(aclick)*100,3) action_ratio,
+round(sum(impression_1k_cost)/{day_count},3) impression_1k_cost,
+round(sum(charge)/sum(photo_click),3) photo_click_cost,
+round(sum(charge)/sum(bclick),3) action_cost,
+sum(`share`) `share`,
+sum(`comment`) `comment`,
+sum(`like`)  `like`,
+sum(follow) follow,
+sum(cancel_follow)  cancel_follow,
+sum(report) report,
+sum(block) block,
+sum(negative) negative,
+sum(submit) submit,
+sum(download_started) download_started,
+sum(download_completed) download_completed,
+sum(activation) activation,
+sum(event_pay_first_day) event_pay_first_day,
+sum(event_pay_purchase_amount_first_day) event_pay_purchase_amount_first_day,
+round(sum(event_pay_purchase_amount_first_day)/sum(charge)*100,3) event_pay_first_day_roi ,
+sum(event_pay) event_pay,
+sum(event_pay_purchase_amount) event_pay_purchase_amount,
+round(sum(event_pay_purchase_amount)/sum(charge)*100,3) event_pay_roi,
+sum(event_register) event_register,
+round(sum(charge)/sum(event_register),3) event_register_cost,
+round(sum(event_register)/sum(activation)*100,3) event_register_ratio,
+sum(event_jin_jian_app) event_jin_jian_app,
+round(sum(charge)/sum(event_jin_jian_app),3) event_jin_jian_app_cost,
+sum(event_credit_grant_app) event_credit_grant_app,
+round(sum(charge)/sum(event_credit_grant_app),3) event_credit_grant_app_cost ,
+round(sum(event_credit_grant_app_ratio)/{day_count}*100,3) event_credit_grant_app_ratio,
+sum(event_order_paid) event_order_paid,
+sum(event_order_paid_purchase_amount) event_order_paid_purchase_amount,
+round(sum(event_order_paid_purchase_amount)/sum(event_order_paid) ,3) event_order_paid_cost,
+sum(event_next_day_stay) event_next_day_stay,
+round(sum(charge)/sum(event_next_day_stay),3) event_next_day_stay_cost,
+round(sum(event_next_day_stay)/sum(activation)*100,3) event_next_day_stay_ratio,
+sum(form_count) form_count,
+round(sum(charge)/sum(form_count),3) form_cost,
+round(sum(form_count)/sum(`bclick`)*100,3) form_action_ratio,
+sum(event_jin_jian_landing_page) event_jin_jian_landing_page,
+round(sum(charge)/sum(event_jin_jian_landing_page),3) event_jin_jian_landing_page_cost,
+sum(event_credit_grant_landing_page) event_credit_grant_landing_page,
+round(sum(charge)/sum(event_credit_grant_landing_page),3) event_credit_grant_landing_page_cost,
+round(sum(event_credit_grant_landing_page)/{day_count}*100,3) event_credit_grant_landing_page_ratio,
+sum(event_valid_clues) event_valid_clues,
+round(sum(charge)/sum(event_valid_clues),3) event_valid_clues_cost,
+sum(event_add_wechat) event_add_wechat,
+round(sum(charge)/sum(event_add_wechat),3) event_add_wechat_cost,
+round(sum(event_add_wechat)/sum(bclick)*100,3) event_add_wechat_ratio,
+sum(event_get_through) event_get_through,
+round(sum(charge)/sum(event_get_through),3) event_get_through_cost,
+round(sum(event_get_through)/sum(bclick)*100,3) event_get_through_ratio,
+sum(event_app_invoked) event_app_invoked,
+round(sum(charge)/sum(event_app_invoked),3) event_app_invoked_cost ,
+round(sum(event_app_invoked)/sum(bclick)*100,3) event_app_invoked_ratio,
+round(sum(event_credit_grant_landing_ratio)/{day_count}*100,3) event_credit_grant_landing_ratio,
+round(sum(play_5s_ratio)/{day_count}*100,3) play_5s_ratio,
+round(sum(play_end_ratio)/{day_count}*100,3) play_end_ratio,
+sum(event_new_user_pay) event_new_user_pay,
+round(sum(charge)/sum(event_new_user_pay),3) event_new_user_pay_cost,
+round(sum(event_new_user_pay)/sum(activation)*100,3) event_new_user_pay_ratio,
+round(sum(click_1k_cost)/{day_count}*100) click_1k_cost,
+sum(ad_product_cnt) ad_product_cnt,
+sum(event_goods_view) event_goods_view,
+sum(merchant_reco_fans) merchant_reco_fans,
+round(sum(event_order_amount_roi)/{day_count}*100,3) event_order_amount_roi,
+round(sum(charge)/sum(event_goods_view) ,3) event_goods_view_cost,
+round(sum(charge)/sum(merchant_reco_fans),3) merchant_reco_fans_cost,
+sum(event_button_click) event_button_click,
+round(sum(charge)/sum(event_button_click),3) event_button_click_cost,
+round(sum(event_button_click)/sum(bclick)*100,3) event_button_click_ratio ,
+round(sum(event_order_paid_roi)/{day_count}*100,3) event_order_paid_roi,
+sum(event_new_user_jinjian_app) event_new_user_jinjian_app,
+round(sum(charge)/sum(event_new_user_jinjian_app),3) event_new_user_jinjian_app_cost,
+round(sum(event_new_user_jinjian_app)/sum(form_count)*100,3) event_new_user_jinjian_app_roi ,
+sum(event_new_user_credit_grant_app) event_new_user_credit_grant_app,
+round(sum(charge)/sum(event_new_user_credit_grant_app),3)  event_new_user_credit_grant_app_cost,
+round(sum(event_new_user_credit_grant_app)/sum(form_count)*100,3) event_new_user_credit_grant_app_roi,
+sum(event_new_user_jinjian_page) event_new_user_jinjian_page,
+round(sum(charge)/sum(event_new_user_jinjian_page),3) event_new_user_jinjian_page_cost,
+round(sum(event_new_user_jinjian_page)/sum(form_count)*100,3) event_new_user_jinjian_page_roi ,
+sum(event_new_user_credit_grant_page) event_new_user_credit_grant_page,
+round(sum(charge)/sum(event_new_user_credit_grant_page) ,3) event_new_user_credit_grant_page_cost,
+round(sum(event_new_user_credit_grant_page)/sum(form_count)*100,3) event_new_user_credit_grant_page_roi,
+sum(event_appoint_form)  event_appoint_form,
+round(sum(charge)/sum(event_appoint_form),3) event_appoint_form_cost,
+round(sum(event_appoint_form)/sum(form_count)*100,3) event_appoint_form_ratio,
+sum(event_appoint_jump_click) event_appoint_jump_click,
+round(sum(charge)/sum(event_appoint_jump_click),3)  event_appoint_jump_click_cost,
+round(sum(event_appoint_jump_click_cost)/sum(form_count)*100,3) event_appoint_jump_click_ratio,
+sum(union_event_pay_purchase_amount_7d) union_event_pay_purchase_amount_7d,
+round(sum(union_event_pay_purchase_amount_7d_roi)/{day_count}*100,3) union_event_pay_purchase_amount_7d_roi,
+sum(event_order_successed) event_order_successed,
+round(sum(ad_photo_played_10s_ratio)/{day_count}*100,3) ad_photo_played_10s_ratio,
+round(sum(charge)/sum(key_action),3) key_action_cost,
+round(sum(charge)/sum(event_add_shopping_cart) ,3) event_add_shopping_cart_cost ,
+round(sum(event_ad_watch_times)/sum(bclick)*100,3) event_ad_watch_times_ratio,
+round(sum(charge)/sum(event_outbound_call),3) event_outbound_call_cost,
+sum(event_outbound_call) event_outbound_call,
+round(sum(action_new_ratio)/{day_count}*100,3) action_new_ratio,
+sum(event_watch_app_ad) event_watch_app_ad,
+round(sum(charge)/sum(event_multi_conversion) ,3) event_multi_conversion_cost,
+sum(event_phone_card_activate) event_phone_card_activate,
+round(sum(ad_photo_played_75percent_ratio)/{day_count}*100,3) ad_photo_played_75percent_ratio,
+round(sum(key_action)/sum(activation)*100,3) key_action_ratio ,
+round(sum(charge)/sum(event_ad_watch_times),3) event_ad_watch_times_cost,
+sum(event_add_shopping_cart) event_add_shopping_cart,
+sum(key_action) key_action,
+sum(event_multi_conversion) event_multi_conversion,
+sum(event_wechat_connected) event_wechat_connected,
+sum(event_dsp_gift_form) event_dsp_gift_form,
+sum(event_intention_confirmed) event_intention_confirmed,
+sum(event_phone_get_through) event_phone_get_through,
+round(sum(event_multi_conversion)/sum(activation)*100,3)  event_multi_conversion_ratio,
+sum(event_measurement_house) event_measurement_house,
+round(sum(ad_photo_played_2s_ratio)/{day_count}*100,3) ad_photo_played_2s_ratio,
+round(sum(event_outbound_call_ratio)/sum(activation)*100,3) event_outbound_call_ratio,
+sum(event_ad_watch_times) event_ad_watch_times
+from  media_api.kuaishou_material_video_report_daily 
+where stat_date >= date_format(date_sub({date_time}, INTERVAL {day_count} DAY),'%Y%m%d')
+group by 
+advertiser_id,
+photo_id,
+image_token,
+photo_caption,
+photo_url,
+cover_url)report
+left join media_api.kuaishou_video_list video
+on report.account_id = video.account_id and report.photo_id = video.photo_id 
+LEFT JOIN `jeecg-boot`.ctop_material_info cmi ON video.signature = cmi.CODE
+LEFT JOIN (select material_id,clip_id,shot_id,plan_id,leader_id from (
+select  material_id,clip_id,shot_id,plan_id,leader_id,row_number()over(partition by material_id order by create_time)rn
+ from `jeecg-boot`.ctop_material_ascription )m where  rn=1) cma 
+ON video.signature = cma.material_id
+LEFT JOIN `jeecg-boot`.ctop_user_allocation cua ON report.account_id = cua.account_id
+LEFT JOIN `jeecg-boot`.ctop_advertiser ca ON cua.advertiser_id = ca.id
+LEFT JOIN `jeecg-boot`.ctop_project cp ON cua.project_id = cp.id
+LEFT JOIN `jeecg-boot`.user_company uc ON cua.user_id = uc.user_id
+LEFT JOIN `jeecg-boot`.ctop_product product ON cp.product_id = product.id
+LEFT JOIN `jeecg-boot`.sys_user su ON cua.user_id = su.id
+LEFT JOIN `jeecg-boot`.sys_user clip ON clip.id = cma.clip_id
+LEFT JOIN `jeecg-boot`.sys_user shot ON shot.id = cma.shot_id
+LEFT JOIN `jeecg-boot`.sys_user plan ON plan.id = cma.plan_id
+LEFT JOIN `jeecg-boot`.sys_user leader ON leader.id = cma.leader_id
+LEFT JOIN `jeecg-boot`.user_company up ON up.user_id = cma.clip_id
+where cua.project_id={project_id}
+;""".format(date_time=self.date_time, day_count=self.day_count, project_id=project_id[0])
+                    print(sql)
+                    TidbConn.upsert(conn=self.conn, sql_buff=sql)
+                    self.conn.commit()
+                except Exception as e:
+                    logging.error(e)
+                    return -1
+            TidbConn.conn_close(conn=self.conn)
+            return 0
+        except Exception as e:
+            logging.error(e)
+            return -1
+
+
+if __name__ == '__main__':
+    status = AppKuaishouVideoReportBusiMonth().taskHandler()
+    if status == 0:
+        print("作业执行成功")
+        exit(0)
+    else:
+        print("作业执行失败")
+        exit(-1)