ck 4 anni fa
parent
commit
fb19ce394b
1 ha cambiato i file con 86 aggiunte e 70 eliminazioni
  1. 86 70
      data_manage/pitcher_panel.py

+ 86 - 70
data_manage/pitcher_panel.py

@@ -8,6 +8,18 @@ db = MysqlUtils()
 log = logger()
 
 
+def get_channel_belong_pitcher(channel):
+    """根据公众号获取投手"""
+    sql = f"select pitcher,channel from dw_daily_channel_cost where dt='{du.get_n_days(-1)}' and pitcher!='' and channel!=''"
+    data=ck.execute(sql)
+    di={}
+    for i in data:
+        di[i[1]]=i[0]
+
+    return di[channel]
+
+
+
 def get_pitcher_panel_channel(pitcher,channel,start,end,page,page_size,order_by,order):
     sql=f"""select channel,stage,platform,book,
             formatDateTime(dt,'%Y-%m-%d') as date,
@@ -141,8 +153,11 @@ def get_channel_overview(channel,pitcher,start,end,page,page_size,order_by,order
     return get_dict_list(key,get_round(ck.execute(sql)))
 
 
-def get_channel_again_order_trend(channel,date):
-   sql=f"""select toString(dt) date,
+def get_channel_again_order_trend(channel,date,pitcher):
+    if get_channel_belong_pitcher(channel)!=pitcher:
+        return "该公众号不属于"+pitcher
+
+    sql=f"""select toString(dt) date,
        channel,book,
        round(cost,2) cost,
        round(reg_order_amount,2) reg_amount,
@@ -157,14 +172,14 @@ def get_channel_again_order_trend(channel,date):
 
         from dw_daily_channel where channel='{channel}' and dt='{date}'
        """
-   print(sql)
-   data=ck.execute(sql)
-   print(data)
-   key1=['date','channel','book','cost','reg_amount','roi','new_follow','new_follow_per_cost',
+    print(sql)
+    data=ck.execute(sql)
+    print(data)
+    key1=['date','channel','book','cost','reg_amount','roi','new_follow','new_follow_per_cost',
          'reg_count','reg_user','cost_per_user','avg_order_amount','avg_again_order_rate','order_count']
-   json1=get_dict_list(key1,data)[0]
-   # print(json1)
-   sql2="""select
+    json1=get_dict_list(key1,data)[0]
+    # print(json1)
+    sql2="""select
                date ,
                count(1) c1,
                sum(if(count>1,1,0)) c2,
@@ -179,65 +194,65 @@ def get_channel_again_order_trend(channel,date):
                          and formatDateTime(reg_time,'%Y-%m-%d')='2020-09-19'  group by user_id,date
             ) a group by date"""
 
-   df=ck.getData_pd(sql2,[['date','c1','c2','c3','c4','c5']])
-   reg_user=json1["reg_user"]
-   li=[]
-   for i in range(1,5):
-       d1={}
-       d1["origin"]=int(df.iat[0,i])
-       d1["new"]=0
-       d1["move"]=int(df.iat[0,i+1])
-       d1["now"]=int(d1["origin"]+d1['new']-d1["move"])
-       d1["follow_order_rate"]=round(d1["now"]/reg_user,2) if reg_user!=0 else 0
-       d2={}
-       d2["origin"] = int(d1["now"])
-       d2["new"] = int(df.iat[1,i])
-       d2["move"] = int(df.iat[1, i+1])
-       d2["now"] = int(d2["origin"] +d2['new']- d2["move"])
-       d2["follow_order_rate"] = round(d2["now"] / reg_user, 2) if reg_user!=0 else 0
-       d3={}
-       d3["origin"] = int(d2["now"])
-       d3["new"] = int(df.iat[2, i])
-       d3["move"] = int(df.iat[2, i+1])
-       d3["now"] = int(d3["origin"] +d3['new']- d3["move"])
-       d3["follow_order_rate"] = round(d3["now"] / reg_user, 2) if reg_user!=0 else 0
-       d4={}
-       d4["origin"] = int(d3["now"])
-       d4["new"] = int(df.iat[3, i])
-       d4["move"] = int(df.iat[3, i+1])
-       d4["now"] = int(d4["origin"] +d4['new']- d4["move"])
-       d4["follow_order_rate"] = round(d4["now"] / reg_user, 2) if reg_user!=0 else 0
-       d5={}
-       d5["origin"] = int(d4["now"])
-       d5["new"] = int(df.iat[4, i])
-       d5["move"] = int(df.iat[4, i+1])
-       d5["now"] = int(d5["origin"] +d5['new']- d5["move"])
-       d5["follow_order_rate"] = round(d4["now"] / reg_user, 2) if reg_user!=0 else 0
-       d6 = {}
-       d6["origin"] = int(d5["now"])
-       d6["new"] = int(df.iat[5, i])
-       d6["move"] = int(df.iat[5, i+1])
-       d6["now"] = int(d6["origin"] +d6['new']- d6["move"])
-       d6["follow_order_rate"] = round(d6["now"] / reg_user, 2) if reg_user!=0 else 0
-       d7 = {}
-       d7["origin"] = int(d6["now"])
-       d7["new"] = int(df.iat[6, i])
-       d7["move"] = int(df.iat[6, i+1])
-       d7["now"] = int(d7["origin"] +d7['new']- d7["move"])
-       d7["follow_order_rate"] = round(d7["now"] / reg_user, 2) if reg_user!=0 else 0
-       d={}
-       d["user_order_count"]=i
-       d['d1']=d1
-       d['d2']=d2
-       d['d3']=d3
-       d['d4']=d4
-       d['d5']=d5
-       d['d6']=d6
-       d['d7']=d7
-       li.append(d)
-   json1['data']=li
-   print([json1])
-   return [json1]
+    df=ck.getData_pd(sql2,[['date','c1','c2','c3','c4','c5']])
+    reg_user=json1["reg_user"]
+    li=[]
+    for i in range(1,5):
+        d1={}
+        d1["origin"]=int(df.iat[0,i])
+        d1["new"]=0
+        d1["move"]=int(df.iat[0,i+1])
+        d1["now"]=int(d1["origin"]+d1['new']-d1["move"])
+        d1["follow_order_rate"]=round(d1["now"]/reg_user,2) if reg_user!=0 else 0
+        d2={}
+        d2["origin"] = int(d1["now"])
+        d2["new"] = int(df.iat[1,i])
+        d2["move"] = int(df.iat[1, i+1])
+        d2["now"] = int(d2["origin"] +d2['new']- d2["move"])
+        d2["follow_order_rate"] = round(d2["now"] / reg_user, 2) if reg_user!=0 else 0
+        d3={}
+        d3["origin"] = int(d2["now"])
+        d3["new"] = int(df.iat[2, i])
+        d3["move"] = int(df.iat[2, i+1])
+        d3["now"] = int(d3["origin"] +d3['new']- d3["move"])
+        d3["follow_order_rate"] = round(d3["now"] / reg_user, 2) if reg_user!=0 else 0
+        d4={}
+        d4["origin"] = int(d3["now"])
+        d4["new"] = int(df.iat[3, i])
+        d4["move"] = int(df.iat[3, i+1])
+        d4["now"] = int(d4["origin"] +d4['new']- d4["move"])
+        d4["follow_order_rate"] = round(d4["now"] / reg_user, 2) if reg_user!=0 else 0
+        d5={}
+        d5["origin"] = int(d4["now"])
+        d5["new"] = int(df.iat[4, i])
+        d5["move"] = int(df.iat[4, i+1])
+        d5["now"] = int(d5["origin"] +d5['new']- d5["move"])
+        d5["follow_order_rate"] = round(d4["now"] / reg_user, 2) if reg_user!=0 else 0
+        d6 = {}
+        d6["origin"] = int(d5["now"])
+        d6["new"] = int(df.iat[5, i])
+        d6["move"] = int(df.iat[5, i+1])
+        d6["now"] = int(d6["origin"] +d6['new']- d6["move"])
+        d6["follow_order_rate"] = round(d6["now"] / reg_user, 2) if reg_user!=0 else 0
+        d7 = {}
+        d7["origin"] = int(d6["now"])
+        d7["new"] = int(df.iat[6, i])
+        d7["move"] = int(df.iat[6, i+1])
+        d7["now"] = int(d7["origin"] +d7['new']- d7["move"])
+        d7["follow_order_rate"] = round(d7["now"] / reg_user, 2) if reg_user!=0 else 0
+        d={}
+        d["user_order_count"]=i
+        d['d1']=d1
+        d['d2']=d2
+        d['d3']=d3
+        d['d4']=d4
+        d['d5']=d5
+        d['d6']=d6
+        d['d7']=d7
+        li.append(d)
+    json1['data']=li
+    print([json1])
+    return [json1]
 
 
 def get_channel_active(channel,start,end,page,page_size,order_by,order):
@@ -429,5 +444,6 @@ if __name__ == '__main__':
     # a=get_channel_overview('','','',1,10,'date','desc')
     # a=get_channel_summary('','')
     # a=get_channel_again_order_trend('玉龙书社','2020-09-19')
-    a=get_channel_active('玉龙书社','2020-09-15','2020-09-20',1,10,'date','desc')
-    print(a)
+    # a=get_channel_active('玉龙书社','2020-09-15','2020-09-20',1,10,'date','desc')
+    # print(a)
+    is_channel_belong_pitcher()