|
@@ -182,15 +182,16 @@ def get_channel_again_order_trend(channel,date,pitcher):
|
|
|
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]
|
|
|
+ json1=get_dict_list(key1,get_round(data))[0]
|
|
|
# print(json1)
|
|
|
sql2=f"""select
|
|
|
- date ,
|
|
|
+ dateDiff(day,toDate('{date}'),date)+1 ddf,
|
|
|
count(1) c1,
|
|
|
sum(if(count>1,1,0)) c2,
|
|
|
sum(if(count>2,1,0)) c3,
|
|
|
sum(if(count>3,1,0)) c4,
|
|
|
- sum(if(count>4,1,0)) c5
|
|
|
+ sum(if(count>4,1,0)) c5,
|
|
|
+ sum(if(count>5,1,0)) c6
|
|
|
|
|
|
from (
|
|
|
|
|
@@ -199,63 +200,81 @@ def get_channel_again_order_trend(channel,date,pitcher):
|
|
|
and formatDateTime(reg_time,'%Y-%m-%d')='{date}' group by user_id,date
|
|
|
) a group by date"""
|
|
|
|
|
|
- df=ck.getData_pd(sql2,[['date','c1','c2','c3','c4','c5']])
|
|
|
- print(df)
|
|
|
+ df=ck.execute(sql2)
|
|
|
+
|
|
|
+ # 补全
|
|
|
+ xx=[i[0] for i in df]
|
|
|
+ for i in range(1,8):
|
|
|
+ if i not in xx:
|
|
|
+ df.append((i,0,0,0,0,0,0))
|
|
|
+ # 排序
|
|
|
+ import operator
|
|
|
+ df.sort(key=operator.itemgetter(0))
|
|
|
+
|
|
|
reg_user=json1["reg_user"]
|
|
|
li=[]
|
|
|
- for i in range(1,5):
|
|
|
+ for i in range(1,6):
|
|
|
+ print(i)
|
|
|
+ d = {}
|
|
|
+ d["user_order_count"] = i
|
|
|
d1={}
|
|
|
- d1["origin"]=int(df.iat[0,i])
|
|
|
+ d1["origin"]=df[0][i]
|
|
|
d1["new"]=0
|
|
|
- d1["move"]=int(df.iat[0,i+1])
|
|
|
- d1["now"]=int(d1["origin"]+d1['new']-d1["move"])
|
|
|
+ d1["move"]=df[0][i+1]
|
|
|
+ d1["now"]=d1["origin"]+d1['new']-d1["move"]
|
|
|
d1["follow_order_rate"]=round(d1["now"]/reg_user,2) if reg_user!=0 else 0
|
|
|
+ d['d1'] = d1
|
|
|
+
|
|
|
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["origin"] = d1["now"]
|
|
|
+ d2["new"] = df[1][i]
|
|
|
+ d2["move"] = df[1][i+1]
|
|
|
+ d2["now"] = d2["origin"] +d2['new']- d2["move"]
|
|
|
d2["follow_order_rate"] = round(d2["now"] / reg_user, 2) if reg_user!=0 else 0
|
|
|
+ d['d2'] = d2
|
|
|
+
|
|
|
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["origin"] = d2["now"]
|
|
|
+ d3["new"] = df[2][i]
|
|
|
+ d3["move"] =df[2][i+1]
|
|
|
+ d3["now"] = d3["origin"] +d3['new']- d3["move"]
|
|
|
d3["follow_order_rate"] = round(d3["now"] / reg_user, 2) if reg_user!=0 else 0
|
|
|
+ d['d3'] = d3
|
|
|
+
|
|
|
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["origin"] = d3["now"]
|
|
|
+ d4["new"] = df[3][i]
|
|
|
+ d4["move"] = df[3][i+1]
|
|
|
+ d4["now"] = d4["origin"] +d4['new']- d4["move"]
|
|
|
d4["follow_order_rate"] = round(d4["now"] / reg_user, 2) if reg_user!=0 else 0
|
|
|
+ d['d4'] = d4
|
|
|
+
|
|
|
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["origin"] = d4["now"]
|
|
|
+ d5["new"] = df[4][i]
|
|
|
+ d5["move"] = df[4][i+1]
|
|
|
+ d5["now"] = d5["origin"] +d5['new']- d5["move"]
|
|
|
d5["follow_order_rate"] = round(d4["now"] / reg_user, 2) if reg_user!=0 else 0
|
|
|
+ d['d5'] = d5
|
|
|
+
|
|
|
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["origin"] = d5["now"]
|
|
|
+ d6["new"] = df[5][i]
|
|
|
+ d6["move"] = df[5][i+1]
|
|
|
+ d6["now"] = d6["origin"] +d6['new']- d6["move"]
|
|
|
d6["follow_order_rate"] = round(d6["now"] / reg_user, 2) if reg_user!=0 else 0
|
|
|
+ d['d6'] = d6
|
|
|
+
|
|
|
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["origin"] = d6["now"]
|
|
|
+ d7["new"] = df[6][i]
|
|
|
+ d7["move"] = df[6][i+1]
|
|
|
+ d7["now"] = 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
|
|
|
+ d['d7'] = d7
|
|
|
+
|
|
|
li.append(d)
|
|
|
+
|
|
|
json1['data']=li
|
|
|
print([json1])
|
|
|
return [json1]
|
|
@@ -432,7 +451,7 @@ def get_channel_summary(channel,pitcher,page,page_size,order_by,order):
|
|
|
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_again_order_trend('龙鳞文学','2021-01-01','宋刚')
|
|
|
# a=get_channel_active('玉龙书社','2020-09-15','2020-09-20',1,10,'date','desc')
|
|
|
# print(a)
|
|
|
pass
|