|
@@ -21,6 +21,7 @@ def get_channel_belong_pitcher(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,
|
|
|
cost,
|
|
@@ -40,16 +41,18 @@ def get_pitcher_panel_channel(pitcher,channel,start,end,page,page_size,order_by,
|
|
|
if channel!='':
|
|
|
sql += f" and channel='{channel}' "
|
|
|
|
|
|
+ total = ck.execute(f"select count(1) from ({sql}) a")[0][0]
|
|
|
sql += f" order by {order_by} {order} limit {page},{page_size} "
|
|
|
|
|
|
print(sql)
|
|
|
data=ck.execute(sql)
|
|
|
+
|
|
|
key=['channel','stage','platform','book','date','cost','first_order_amount','first_roi','first_order_user',
|
|
|
'first_order_count','first_per_cost','view_count','click_count','follow_user','follow_rate','follow_per_cost',
|
|
|
'total_cost','back_rate']
|
|
|
|
|
|
|
|
|
- return get_dict_list(key,get_round(data))
|
|
|
+ return get_dict_list(key,get_round(data)),total
|
|
|
|
|
|
|
|
|
def get_pitcher_panel_daily(pitcher, start, end, page, page_size, order_by, order):
|
|
@@ -73,8 +76,10 @@ def get_pitcher_panel_daily(pitcher, start, end, page, page_size, order_by, orde
|
|
|
sql += f" group by date,pitcher order by {order_by} {order} limit {page},{page_size} "
|
|
|
print(sql)
|
|
|
data = ck.execute(sql)
|
|
|
+ total=ck.execute(f"select count(1) from ({sql}) a")[0][0]
|
|
|
+
|
|
|
key=['date','pitcher','cost','first_order_amount','first_roi','order_amount','today_roi','total_cost','total_amount','total_profit','total_roi']
|
|
|
- return get_dict_list(key,data)
|
|
|
+ return get_dict_list(key,data),total
|
|
|
|
|
|
|
|
|
def get_pitcher_panel_overview(pitcher):
|
|
@@ -142,7 +147,7 @@ def get_channel_overview(channel,pitcher,start,end,page,page_size,order_by,order
|
|
|
sql+=f" and end<='{end}'"
|
|
|
if pitcher!='':
|
|
|
sql+=f" and pitcher='{pitcher}'"
|
|
|
-
|
|
|
+ total = ck.execute(f"select count(1) from ({sql}) a")[0][0]
|
|
|
sql += f" order by {order_by} {order} limit {page},{page_size} "
|
|
|
print(sql)
|
|
|
|
|
@@ -150,7 +155,7 @@ def get_channel_overview(channel,pitcher,start,end,page,page_size,order_by,order
|
|
|
'first_order_count','first_order_user','first_order_amount','order_count','order_user','order_amount','old_order_amount','first_amount_per_user',
|
|
|
'new_user_order_rate','reg_user_amount','total_cost','total_amount','day_roi','all_roi','avg_new_order_rate','old_user_once_order_rate']
|
|
|
|
|
|
- return get_dict_list(key,get_round(ck.execute(sql)))
|
|
|
+ return get_dict_list(key,get_round(ck.execute(sql))),total
|
|
|
|
|
|
|
|
|
def get_channel_again_order_trend(channel,date,pitcher):
|
|
@@ -256,40 +261,40 @@ def get_channel_again_order_trend(channel,date,pitcher):
|
|
|
|
|
|
|
|
|
def get_channel_active(channel,start,end,page,page_size,order_by,order):
|
|
|
- print(channel,)
|
|
|
+
|
|
|
sql=f"""select formatDateTime(a.dt,'%Y-%m-%d') date, '{channel}' channel,book,cost,reg_amount,roi,new_follow_user,new_follow_per_cost,order_user,order_count,
|
|
|
order_user_per_cost,day7_avg_act_rate,day7_avg_act_per_cost,day30_avg_act_rate,ay30_avg_act_cost,
|
|
|
act_per_cost,
|
|
|
- concat(toString(reg_order_user1),',',toString(cost/reg_order_user1),',',toString(reg_order_user1/order_user)),
|
|
|
- concat(toString(reg_order_user2),',',toString(cost/reg_order_user2),',',toString(reg_order_user2/order_user)),
|
|
|
- concat(toString(reg_order_user3),',',toString(cost/reg_order_user3),',',toString(reg_order_user3/order_user)),
|
|
|
- concat(toString(reg_order_user4),',',toString(cost/reg_order_user4),',',toString(reg_order_user4/order_user)),
|
|
|
- concat(toString(reg_order_user5),',',toString(cost/reg_order_user5),',',toString(reg_order_user5/order_user)),
|
|
|
- concat(toString(reg_order_user6),',',toString(cost/reg_order_user6),',',toString(reg_order_user6/order_user)),
|
|
|
- concat(toString(reg_order_user7),',',toString(cost/reg_order_user7),',',toString(reg_order_user7/order_user)),
|
|
|
- concat(toString(reg_order_user8),',',toString(cost/reg_order_user8),',',toString(reg_order_user8/order_user)),
|
|
|
- concat(toString(reg_order_user9),',',toString(cost/reg_order_user9),',',toString(reg_order_user9/order_user)),
|
|
|
- concat(toString(reg_order_user10),',',toString(cost/reg_order_user10),',',toString(reg_order_user10/order_user)),
|
|
|
- concat(toString(reg_order_user11),',',toString(cost/reg_order_user11),',',toString(reg_order_user11/order_user)),
|
|
|
- concat(toString(reg_order_user12),',',toString(cost/reg_order_user12),',',toString(reg_order_user12/order_user)),
|
|
|
- concat(toString(reg_order_user13),',',toString(cost/reg_order_user13),',',toString(reg_order_user13/order_user)),
|
|
|
- concat(toString(reg_order_user14),',',toString(cost/reg_order_user14),',',toString(reg_order_user14/order_user)),
|
|
|
- concat(toString(reg_order_user15),',',toString(cost/reg_order_user15),',',toString(reg_order_user15/order_user)),
|
|
|
- concat(toString(reg_order_user16),',',toString(cost/reg_order_user16),',',toString(reg_order_user16/order_user)),
|
|
|
- concat(toString(reg_order_user17),',',toString(cost/reg_order_user17),',',toString(reg_order_user17/order_user)),
|
|
|
- concat(toString(reg_order_user18),',',toString(cost/reg_order_user18),',',toString(reg_order_user18/order_user)),
|
|
|
- concat(toString(reg_order_user19),',',toString(cost/reg_order_user19),',',toString(reg_order_user19/order_user)),
|
|
|
- concat(toString(reg_order_user20),',',toString(cost/reg_order_user20),',',toString(reg_order_user20/order_user)),
|
|
|
- concat(toString(reg_order_user21),',',toString(cost/reg_order_user21),',',toString(reg_order_user21/order_user)),
|
|
|
- concat(toString(reg_order_user22),',',toString(cost/reg_order_user22),',',toString(reg_order_user22/order_user)),
|
|
|
- concat(toString(reg_order_user23),',',toString(cost/reg_order_user23),',',toString(reg_order_user23/order_user)),
|
|
|
- concat(toString(reg_order_user24),',',toString(cost/reg_order_user24),',',toString(reg_order_user24/order_user)),
|
|
|
- concat(toString(reg_order_user25),',',toString(cost/reg_order_user25),',',toString(reg_order_user25/order_user)),
|
|
|
- concat(toString(reg_order_user26),',',toString(cost/reg_order_user26),',',toString(reg_order_user26/order_user)),
|
|
|
- concat(toString(reg_order_user27),',',toString(cost/reg_order_user27),',',toString(reg_order_user27/order_user)),
|
|
|
- concat(toString(reg_order_user28),',',toString(cost/reg_order_user28),',',toString(reg_order_user28/order_user)),
|
|
|
- concat(toString(reg_order_user29),',',toString(cost/reg_order_user29),',',toString(reg_order_user29/order_user)),
|
|
|
- concat(toString(reg_order_user30),',',toString(cost/reg_order_user30),',',toString(reg_order_user30/order_user))
|
|
|
+ concat(toString(reg_order_user1),',',toString(if(reg_order_user1=0,0,cost/reg_order_user1)),',',toString(reg_order_user1/order_user)),
|
|
|
+ concat(toString(reg_order_user2),',',toString(if(reg_order_user2=0,0,cost/reg_order_user2)),',',toString(reg_order_user2/order_user)),
|
|
|
+ concat(toString(reg_order_user3),',',toString(if(reg_order_user3=0,0,cost/reg_order_user3)),',',toString(reg_order_user3/order_user)),
|
|
|
+ concat(toString(reg_order_user4),',',toString(if(reg_order_user4=0,0, cost/reg_order_user4)),',',toString(reg_order_user4/order_user)),
|
|
|
+ concat(toString(reg_order_user5),',',toString(if(reg_order_user5=0,0 ,cost/reg_order_user5)),',',toString(reg_order_user5/order_user)),
|
|
|
+ concat(toString(reg_order_user6),',',toString(if(reg_order_user6=0,0,cost/reg_order_user6)),',',toString(reg_order_user6/order_user)),
|
|
|
+ concat(toString(reg_order_user7),',',toString(if(reg_order_user7=0,0,cost/reg_order_user7)),',',toString(reg_order_user7/order_user)),
|
|
|
+ concat(toString(reg_order_user8),',',toString(if(reg_order_user8=0,0,cost/reg_order_user8)),',',toString(reg_order_user8/order_user)),
|
|
|
+ concat(toString(reg_order_user9),',',toString(if(reg_order_user9=0,0,cost/reg_order_user9)),',',toString(reg_order_user9/order_user)),
|
|
|
+ concat(toString(reg_order_user10),',',toString(if(reg_order_user10=0,0,cost/reg_order_user10)),',',toString(reg_order_user10/order_user)),
|
|
|
+ concat(toString(reg_order_user11),',',toString(if(reg_order_user11=0,0,cost/reg_order_user11)),',',toString(reg_order_user11/order_user)),
|
|
|
+ concat(toString(reg_order_user12),',',toString(if(reg_order_user12=0,0,cost/reg_order_user12)),',',toString(reg_order_user12/order_user)),
|
|
|
+ concat(toString(reg_order_user13),',',toString(if(reg_order_user13=0,0,cost/reg_order_user13)),',',toString(reg_order_user13/order_user)),
|
|
|
+ concat(toString(reg_order_user14),',',toString(if(reg_order_user14=0,0,cost/reg_order_user14)),',',toString(reg_order_user14/order_user)),
|
|
|
+ concat(toString(reg_order_user15),',',toString(if(reg_order_user15=0,0,cost/reg_order_user15)),',',toString(reg_order_user15/order_user)),
|
|
|
+ concat(toString(reg_order_user16),',',toString(if(reg_order_user16=0,0,cost/reg_order_user16)),',',toString(reg_order_user16/order_user)),
|
|
|
+ concat(toString(reg_order_user17),',',toString(if(reg_order_user17=0,0,cost/reg_order_user17)),',',toString(reg_order_user17/order_user)),
|
|
|
+ concat(toString(reg_order_user18),',',toString(if(reg_order_user18=0,0,cost/reg_order_user18)),',',toString(reg_order_user18/order_user)),
|
|
|
+ concat(toString(reg_order_user19),',',toString(if(reg_order_user19=0,0,cost/reg_order_user19)),',',toString(reg_order_user19/order_user)),
|
|
|
+ concat(toString(reg_order_user20),',',toString(if(reg_order_user20=0,0,cost/reg_order_user20)),',',toString(reg_order_user20/order_user)),
|
|
|
+ concat(toString(reg_order_user21),',',toString(if(reg_order_user21=0,0,cost/reg_order_user21)),',',toString(reg_order_user21/order_user)),
|
|
|
+ concat(toString(reg_order_user22),',',toString(if(reg_order_user22=0,0,cost/reg_order_user22)),',',toString(reg_order_user22/order_user)),
|
|
|
+ concat(toString(reg_order_user23),',',toString(if(reg_order_user23=0,0,cost/reg_order_user23)),',',toString(reg_order_user23/order_user)),
|
|
|
+ concat(toString(reg_order_user24),',',toString(if(reg_order_user24=0,0,cost/reg_order_user24)),',',toString(reg_order_user24/order_user)),
|
|
|
+ concat(toString(reg_order_user25),',',toString(if(reg_order_user25=0,0,cost/reg_order_user25)),',',toString(reg_order_user25/order_user)),
|
|
|
+ concat(toString(reg_order_user26),',',toString(if(reg_order_user26=0,0,cost/reg_order_user26)),',',toString(reg_order_user26/order_user)),
|
|
|
+ concat(toString(reg_order_user27),',',toString(if(reg_order_user27=0,0,cost/reg_order_user27)),',',toString(reg_order_user27/order_user)),
|
|
|
+ concat(toString(reg_order_user28),',',toString(if(reg_order_user28=0,0,cost/reg_order_user28)),',',toString(reg_order_user28/order_user)),
|
|
|
+ concat(toString(reg_order_user29),',',toString(if(reg_order_user29=0,0,cost/reg_order_user29)),',',toString(reg_order_user29/order_user)),
|
|
|
+ concat(toString(reg_order_user30),',',toString(if(reg_order_user30=0,0,cost/reg_order_user30)),',',toString(reg_order_user30/order_user))
|
|
|
|
|
|
from (
|
|
|
|
|
@@ -341,10 +346,12 @@ select toDate(formatDateTime(reg_time,'%Y-%m-%d')) dt,
|
|
|
count(distinct if(subtractDays(date, 29)>reg_time,'',user_id))-1 reg_order_user29,
|
|
|
count(distinct if(subtractDays(date, 30)>reg_time,'',user_id))-1 reg_order_user30
|
|
|
from order where channel='{channel}' and dt>='{start}' group by formatDateTime(reg_time,'%Y-%m-%d')) b on a.dt=b.dt
|
|
|
- order by {order_by} {order} limit {page},{page_size}
|
|
|
"""
|
|
|
print(sql)
|
|
|
- data=ck.execute(sql)
|
|
|
+ total = ck.execute(f"select count(1) from ({sql}) a")[0][0]
|
|
|
+ sql+=f" order by {order_by} {order} limit {page},{page_size} "
|
|
|
+ data = ck.execute(sql)
|
|
|
+
|
|
|
key=['date','channel','book','cost','reg_amount','roi','new_follow_user','new_follow_per_cost','order_user','order_count','order_user_per_cost',
|
|
|
'day7_avg_act_rate','day7_avg_act_per_cost','day30_avg_act_rate','day30_avg_act_cost','act_per_cost','d1','d2','d3','d4','d5','d6','d7','d8','d9','d10',
|
|
|
'd11','d12','d13','d14','d15','d16','d17','d18','d19','d20','d21','d22','d23','d24','d25','d26','d27','d28','d29','d30']
|
|
@@ -365,7 +372,7 @@ select toDate(formatDateTime(reg_time,'%Y-%m-%d')) dt,
|
|
|
else:
|
|
|
di[j]=i[j]
|
|
|
li.append(di)
|
|
|
- return li
|
|
|
+ return li,total
|
|
|
|
|
|
def get_channel_order_trend(channel,start,end):
|
|
|
a=[{
|
|
@@ -396,7 +403,10 @@ def get_channel_order_trend(channel,start,end):
|
|
|
'add': 0.4511,
|
|
|
'mult': 1.12},
|
|
|
}]
|
|
|
- return a
|
|
|
+ sql=""
|
|
|
+ total = ck.execute(f"select count(1) from ({sql}) a")[0][0]
|
|
|
+
|
|
|
+ return a,total
|
|
|
|
|
|
def get_channel_summary(channel,pitcher,page,page_size,order_by,order):
|
|
|
sql = """select a.channel,state,'朋友圈' location,toString(start) start,toString(end) end,total_cost,total_amount,
|
|
@@ -431,12 +441,13 @@ def get_channel_summary(channel,pitcher,page,page_size,order_by,order):
|
|
|
sql=sql.format('')
|
|
|
if channel!='':
|
|
|
sql+=f" and channel='{channel}'"
|
|
|
+ total = ck.execute(f"select count(1) from ({sql}) a")[0][0]
|
|
|
sql+=f' order by {order_by} {order} limit {page},{page_size} '
|
|
|
print(sql)
|
|
|
key=['channel','state','location','start','end','total_cost','total_amount','profit','roi',
|
|
|
'follow_user','follow_per_cost','order_user','order_tran_rate','order_tran_cost']
|
|
|
|
|
|
- return get_dict_list(key,get_round(ck.execute(sql)))
|
|
|
+ return get_dict_list(key,get_round(ck.execute(sql))),total
|
|
|
|
|
|
|
|
|
|
|
@@ -446,4 +457,4 @@ if __name__ == '__main__':
|
|
|
# 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)
|
|
|
- is_channel_belong_pitcher()
|
|
|
+ pass
|