|
@@ -8,6 +8,18 @@ db = MysqlUtils()
|
|
log = logger()
|
|
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):
|
|
def get_pitcher_panel_channel(pitcher,channel,start,end,page,page_size,order_by,order):
|
|
sql=f"""select channel,stage,platform,book,
|
|
sql=f"""select channel,stage,platform,book,
|
|
formatDateTime(dt,'%Y-%m-%d') as date,
|
|
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)))
|
|
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,
|
|
channel,book,
|
|
round(cost,2) cost,
|
|
round(cost,2) cost,
|
|
round(reg_order_amount,2) reg_amount,
|
|
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}'
|
|
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']
|
|
'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 ,
|
|
date ,
|
|
count(1) c1,
|
|
count(1) c1,
|
|
sum(if(count>1,1,0)) c2,
|
|
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
|
|
and formatDateTime(reg_time,'%Y-%m-%d')='2020-09-19' group by user_id,date
|
|
) a group by 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):
|
|
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_overview('','','',1,10,'date','desc')
|
|
# a=get_channel_summary('','')
|
|
# a=get_channel_summary('','')
|
|
# a=get_channel_again_order_trend('玉龙书社','2020-09-19')
|
|
# 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()
|