ck %!s(int64=4) %!d(string=hai) anos
pai
achega
ce6a2a771b
Modificáronse 3 ficheiros con 70 adicións e 57 borrados
  1. 52 41
      data_manage/pitcher_panel.py
  2. 2 2
      handlers/HandlerBase.py
  3. 16 14
      handlers/PitcherPanelHandler.py

+ 52 - 41
data_manage/pitcher_panel.py

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

+ 2 - 2
handlers/HandlerBase.py

@@ -33,8 +33,8 @@ class BaseHandler(RequestHandler):
         self.set_header("Access-Control-Allow-Origin","*")
 
 
-    def write_json(self, data, status_code=200, msg='success'):
-        self.write(json.dumps({'status': {'msg': msg, "RetCode": status_code}, 'data': data}))
+    def write_json(self, data, status_code=200, msg='success',total=1):
+        self.write(json.dumps({'status': {'msg': msg, "RetCode": status_code},'total':total,'data': data}))
 
 
 

+ 16 - 14
handlers/PitcherPanelHandler.py

@@ -21,9 +21,8 @@ class PitcherPanelChannel(BaseHandler):
         if date_range!='':
             end=du.get_n_days(-1)
             start=du.get_n_days(-int(date_range))
-
-        data=get_pitcher_panel_channel(pitcher, channel, start, end, page, page_size, order_by, order)
-        self.write_json(data)
+        data,total=get_pitcher_panel_channel(pitcher, channel, start, end, page, page_size, order_by, order)
+        self.write_json(data=data,total=total)
 
 
 class PitcherPanelDaily(BaseHandler):
@@ -41,8 +40,8 @@ class PitcherPanelDaily(BaseHandler):
             end = du.get_n_days(-1)
             start = du.get_n_days(-int(date_range))
 
-        data = get_pitcher_panel_daily(pitcher, start, end, page, page_size, order_by, order)
-        self.write_json(data)
+        data,total = get_pitcher_panel_daily(pitcher, start, end, page, page_size, order_by, order)
+        self.write_json(data=data,total=total)
 
 
 class PitcherPanelOverview(BaseHandler):
@@ -69,8 +68,8 @@ class ChannelOverview(BaseHandler):
         if isinstance(date_range,int):
             end = du.get_n_days(-1)
             start = du.get_n_days(-date_range)
-        data =get_channel_overview(channel,pitcher,start,end,page,page_size,order_by,order)
-        self.write_json(data)
+        data,total =get_channel_overview(channel,pitcher,start,end,page,page_size,order_by,order)
+        self.write_json(data=data,total=total)
 
 
 class ChannelAgainOrderTrend(BaseHandler):
@@ -99,9 +98,8 @@ class ChannelActive(BaseHandler):
         if isinstance(date_range, int):
             end = du.get_n_days(-1)
             start = du.get_n_days(-date_range)
-        data=get_channel_active(channel,start,end,page,page_size,order_by,order)
-        self.write_json(data)
-
+        data,total=get_channel_active(channel,start,end,page,page_size,order_by,order)
+        self.write_json(data=data,total=total)
 
 
 class ChannelOrderTrend(BaseHandler):
@@ -112,11 +110,15 @@ class ChannelOrderTrend(BaseHandler):
         start = arg.get("start", '')
         end = arg.get("start", '')
         date_range = arg.get("date_range", '')
+        page = arg.get("page", '1')
+        page_size = arg.get("page_size", '10')
+        order_by = arg.get("order_by", 'date')
+        order = arg.get("order", 'desc')
         if isinstance(date_range, int):
             end = du.get_n_days(-1)
             start = du.get_n_days(-date_range)
-        data=get_channel_order_trend(channel,start,end)
-        self.write_json(data)
+        data,total=get_channel_order_trend(channel,start,end,page,page_size,order_by,order)
+        self.write_json(data=data,total=total)
 
 
 class ChannelSummary(BaseHandler):
@@ -128,8 +130,8 @@ class ChannelSummary(BaseHandler):
         page = arg.get("page", '1')
         page_size = arg.get("page_size", '10')
         order_by = arg.get("order_by", 'total_cost')
-        order = arg.get("order", 'desc')
-        self.write_json(get_channel_summary(channel,pitcher,page,page_size,order_by,order))
+        order,total = arg.get("order", 'desc')
+        self.write_json(data=get_channel_summary(channel,pitcher,page,page_size,order_by,order),total=total)