ck 4 年之前
父节点
当前提交
e43f29c5b1
共有 1 个文件被更改,包括 62 次插入43 次删除
  1. 62 43
      data_manage/pitcher_panel.py

+ 62 - 43
data_manage/pitcher_panel.py

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