|  | @@ -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()
 |