|
@@ -2,22 +2,24 @@ from model.DateUtils import DateUtils
|
|
|
from model.DataBaseUtils import *
|
|
|
from model.log import logger
|
|
|
from model.CommonUtils import *
|
|
|
-from data_manage.operate import get_pitcher,get_user_name_by_id
|
|
|
+from data_manage.operate import get_pitcher, get_user_name_by_id
|
|
|
from model.UserAuthUtils import super_auth
|
|
|
from model import UserAuthUtils
|
|
|
+
|
|
|
du = DateUtils()
|
|
|
log = logger()
|
|
|
|
|
|
-def book_rank(start,end,book,stage,type,page,page_size,order_by,order):
|
|
|
- db=MysqlUtils()
|
|
|
- op1=f" and book='{book}'" if book else ''
|
|
|
+
|
|
|
+def book_rank(start, end, book, stage, type, page, page_size, order_by, order):
|
|
|
+ db = MysqlUtils()
|
|
|
+ op1 = f" and book='{book}'" if book else ''
|
|
|
op2 = f" and dt>='{start}' " if start else ''
|
|
|
op3 = f" and dt<='{end}' " if end else ''
|
|
|
op4 = f" order by {order_by} {order}" if order_by and order else ''
|
|
|
- op5=f" and stage='{stage}'" if stage else ''
|
|
|
- op6=f" and type='{type}'" if type else ''
|
|
|
+ op5 = f" and stage='{stage}'" if stage else ''
|
|
|
+ op6 = f" and type='{type}'" if type else ''
|
|
|
|
|
|
- sql=f"""select
|
|
|
+ sql = f"""select
|
|
|
concat(DATE_FORMAT(min(dt),'%Y/%m/%d') ,'~',DATE_FORMAT(max(dt),'%Y/%m/%d')) date,
|
|
|
pitcher,book,stage,type,channel,
|
|
|
sum(cost) cost,
|
|
@@ -34,21 +36,20 @@ round(sum(reg_order_amount)/sum(cost),4) roi
|
|
|
from dw_channel where 1=1 {op1} {op2} {op3} {op5} {op6} GROUP BY channel,book,pitcher,stage,type
|
|
|
{op4}"""
|
|
|
print(sql)
|
|
|
- return getLimitData(db.dm,sql,page,page_size)
|
|
|
-
|
|
|
+ return getLimitData(db.dm, sql, page, page_size)
|
|
|
|
|
|
|
|
|
-def book_trend(start,end,book,type,platform,page,page_size,order_by,order):
|
|
|
+def book_trend(start, end, book, book_type, platform, page, page_size, order_by, order):
|
|
|
op1 = f" and book='{book}'" if book else ''
|
|
|
- op2 = f" and type='{type}' " if type else ''
|
|
|
+ op2 = f" and type='{book_type}' " if book_type else ''
|
|
|
# op3 = f" and platform='{platform}' " if platform else ''
|
|
|
op4 = f" and dt>='{start}' " if start else ''
|
|
|
op5 = f" and dt<='{end}' " if end else ''
|
|
|
op6 = f" order by {order_by} {order}" if order_by and order else ''
|
|
|
|
|
|
- db=MysqlUtils()
|
|
|
+ db = MysqlUtils()
|
|
|
|
|
|
- sql=f"""
|
|
|
+ sql = f"""
|
|
|
select dt,book,type,cost,first_order_amount,reg_order_amount,
|
|
|
round(first_order_amount/cost,4) first_roi,
|
|
|
a7,a30,
|
|
@@ -130,11 +131,23 @@ concat(a59-a58,',',(a59-a58)/cost,',',a59/cost,',',a59/a1) d59,
|
|
|
concat(a60-a59,',',(a60-a59)/cost,',',a60/cost,',',a60/a1) d60,
|
|
|
concat(m3-a60,',',(m3-a60)/cost,',',m3/cost,',',m3/a1) m3,
|
|
|
concat(m4-m3,',',(m4-m3)/cost,',',m4/cost,',',m4/a1) m4,
|
|
|
-concat(m5-m4,',',(m5-m4)/cost,',',m5/cost,',',m5/a1) m5
|
|
|
+concat(m5-m4,',',(m5-m4)/cost,',',m5/cost,',',m5/a1) m5,
|
|
|
+a1 as da1,a2 as da2,a3 as da3,a4 as da4,a5 as da5,a6 as da6,a7 as da7,
|
|
|
+a8 as da8,a9 as da9,a10 as da10,a11 as da11,a12 as da12,a13 as da13,
|
|
|
+a14 as da14,a15 as da15,a16 as da16,a17 as da17,a18 as da18,a19 as da19,
|
|
|
+a20 as da20,a21 as da21,a22 as da22,a23 as da23,a24 as da24,a25 as da25,
|
|
|
+a26 as da26,a27 as da27,a28 as da28,a29 as da29,a30 as da30,a31 as da31,
|
|
|
+a32 as da32,a33 as da33,a34 as da34,a35 as da35,a36 as da36,a37 as da37,
|
|
|
+a38 as da38,a39 as da39,a40 as da40,a41 as da41,a42 as da42,a43 as da43,
|
|
|
+a44 as da44,a45 as da45,a46 as da46,a47 as da47,a48 as da48,a49 as da49,
|
|
|
+a50 as da50,a51 as da51,a52 as da52,a53 as da53,a54 as da54,a55 as da55,
|
|
|
+a56 as da56,a57 as da57,a58 as da58,a59 as da59,a60 as da60,
|
|
|
+m3 as dm3,m4 as dm4,m5 as dm5
|
|
|
+
|
|
|
from book_trend where 1=1 {op1} {op2} {op4} {op5} {op6}
|
|
|
"""
|
|
|
|
|
|
- sum_sql=f"""select concat(date_format(min(dt),'%Y/%m/%d'),'~',date_format(max(dt),'%Y/%m/%d')) dt,
|
|
|
+ sum_sql = f"""select concat(date_format(min(dt),'%Y/%m/%d'),'~',date_format(max(dt),'%Y/%m/%d')) dt,
|
|
|
sum(cost) cost,
|
|
|
sum(first_order_amount) first_order_amount,
|
|
|
sum(reg_order_amount) reg_order_amount,
|
|
@@ -154,28 +167,107 @@ sum(reg_order_user) reg_order_user,
|
|
|
sum(first_order_user) first_order_user,
|
|
|
round(sum(cost)/sum(follow_user),2) follow_cost,
|
|
|
round(sum(cost)/sum(reg_order_user)) order_cost,
|
|
|
-round(sum(cost)/sum(first_order_user)) first_order_cost
|
|
|
+round(sum(cost)/sum(first_order_user)) first_order_cost,
|
|
|
+ concat(sum(da1),',',sum(da1)/sum(cost),',', 0,',',1) d1,
|
|
|
+ concat(sum(da2)-sum(if (da2,da1,0)),',',sum(da2)/sum(if (da2,cost,0)),',', (sum(da2)-sum(if (da2,da1,0)))/sum(if (da2,cost,0)),',',if(sum(if (da2,da1,0))=0,1,sum(da2)/sum(if (da2,da1,0))) ) d2,
|
|
|
+ concat(sum(da3)-sum(if (da3,da2,0)),',',sum(da3)/sum(if (da3,cost,0)),',', (sum(da3)-sum(if (da3,da2,0)))/sum(if (da3,cost,0)),',',if(sum(if (da3,da1,0))=0,1,sum(da3)/sum(if (da3,da1,0))) ) d3,
|
|
|
+ concat(sum(da4)-sum(if (da4,da3,0)),',',sum(da4)/sum(if (da4,cost,0)),',', (sum(da4)-sum(if (da4,da3,0)))/sum(if (da4,cost,0)),',',if(sum(if (da4,da1,0))=0,1,sum(da4)/sum(if (da4,da1,0))) ) d4,
|
|
|
+ concat(sum(da5)-sum(if (da5,da4,0)),',',sum(da5)/sum(if (da5,cost,0)),',', (sum(da5)-sum(if (da5,da4,0)))/sum(if (da5,cost,0)),',',if(sum(if (da5,da1,0))=0,1,sum(da5)/sum(if (da5,da1,0))) ) d5,
|
|
|
+ concat(sum(da6)-sum(if (da6,da5,0)),',',sum(da6)/sum(if (da6,cost,0)),',', (sum(da6)-sum(if (da6,da5,0)))/sum(if (da6,cost,0)),',',if(sum(if (da6,da1,0))=0,1,sum(da6)/sum(if (da6,da1,0))) ) d6,
|
|
|
+ concat(sum(da7)-sum(if (da7,da6,0)),',',sum(da7)/sum(if (da7,cost,0)),',', (sum(da7)-sum(if (da7,da6,0)))/sum(if (da7,cost,0)),',',if(sum(if (da7,da1,0))=0,1,sum(da7)/sum(if (da7,da1,0))) ) d7,
|
|
|
+ concat(sum(da8)-sum(if (da8,da7,0)),',',sum(da8)/sum(if (da8,cost,0)),',', (sum(da8)-sum(if (da8,da7,0)))/sum(if (da8,cost,0)),',',if(sum(if (da8,da1,0))=0,1,sum(da8)/sum(if (da8,da1,0))) ) d8,
|
|
|
+ concat(sum(da9)-sum(if (da9,da8,0)),',',sum(da9)/sum(if (da9,cost,0)),',', (sum(da9)-sum(if (da9,da8,0)))/sum(if (da9,cost,0)),',',if(sum(if (da9,da1,0))=0,1,sum(da9)/sum(if (da9,da1,0))) ) d9,
|
|
|
+ concat(sum(da10)-sum(if (da10,da9,0)),',',sum(da10)/sum(if (da10,cost,0)),',', (sum(da10)-sum(if (da10,da9,0)))/sum(if (da10,cost,0)),',',if(sum(if (da10,da1,0))=0,1,sum(da10)/sum(if (da10,da1,0))) ) d10,
|
|
|
+ concat(sum(da11)-sum(if (da11,da10,0)),',',sum(da11)/sum(if (da11,cost,0)),',', (sum(da11)-sum(if (da11,da10,0)))/sum(if (da11,cost,0)),',',if(sum(if (da11,da1,0))=0,1,sum(da11)/sum(if (da11,da1,0))) ) d11,
|
|
|
+ concat(sum(da12)-sum(if (da12,da11,0)),',',sum(da12)/sum(if (da12,cost,0)),',', (sum(da12)-sum(if (da12,da11,0)))/sum(if (da12,cost,0)),',',if(sum(if (da12,da1,0))=0,1,sum(da12)/sum(if (da12,da1,0))) ) d12,
|
|
|
+ concat(sum(da13)-sum(if (da13,da12,0)),',',sum(da13)/sum(if (da13,cost,0)),',', (sum(da13)-sum(if (da13,da12,0)))/sum(if (da13,cost,0)),',',if(sum(if (da13,da1,0))=0,1,sum(da13)/sum(if (da13,da1,0))) ) d13,
|
|
|
+ concat(sum(da14)-sum(if (da14,da13,0)),',',sum(da14)/sum(if (da14,cost,0)),',', (sum(da14)-sum(if (da14,da13,0)))/sum(if (da14,cost,0)),',',if(sum(if (da14,da1,0))=0,1,sum(da14)/sum(if (da14,da1,0))) ) d14,
|
|
|
+ concat(sum(da15)-sum(if (da15,da14,0)),',',sum(da15)/sum(if (da15,cost,0)),',', (sum(da15)-sum(if (da15,da14,0)))/sum(if (da15,cost,0)),',',if(sum(if (da15,da1,0))=0,1,sum(da15)/sum(if (da15,da1,0))) ) d15,
|
|
|
+ concat(sum(da16)-sum(if (da16,da15,0)),',',sum(da16)/sum(if (da16,cost,0)),',', (sum(da16)-sum(if (da16,da15,0)))/sum(if (da16,cost,0)),',',if(sum(if (da16,da1,0))=0,1,sum(da16)/sum(if (da16,da1,0))) ) d16,
|
|
|
+ concat(sum(da17)-sum(if (da17,da16,0)),',',sum(da17)/sum(if (da17,cost,0)),',', (sum(da17)-sum(if (da17,da16,0)))/sum(if (da17,cost,0)),',',if(sum(if (da17,da1,0))=0,1,sum(da17)/sum(if (da17,da1,0))) ) d17,
|
|
|
+ concat(sum(da18)-sum(if (da18,da17,0)),',',sum(da18)/sum(if (da18,cost,0)),',', (sum(da18)-sum(if (da18,da17,0)))/sum(if (da18,cost,0)),',',if(sum(if (da18,da1,0))=0,1,sum(da18)/sum(if (da18,da1,0))) ) d18,
|
|
|
+ concat(sum(da19)-sum(if (da19,da18,0)),',',sum(da19)/sum(if (da19,cost,0)),',', (sum(da19)-sum(if (da19,da18,0)))/sum(if (da19,cost,0)),',',if(sum(if (da19,da1,0))=0,1,sum(da19)/sum(if (da19,da1,0))) ) d19,
|
|
|
+ concat(sum(da20)-sum(if (da20,da19,0)),',',sum(da20)/sum(if (da20,cost,0)),',', (sum(da20)-sum(if (da20,da19,0)))/sum(if (da20,cost,0)),',',if(sum(if (da20,da1,0))=0,1,sum(da20)/sum(if (da20,da1,0))) ) d20,
|
|
|
+ concat(sum(da21)-sum(if (da21,da20,0)),',',sum(da21)/sum(if (da21,cost,0)),',', (sum(da21)-sum(if (da21,da20,0)))/sum(if (da21,cost,0)),',',if(sum(if (da21,da1,0))=0,1,sum(da21)/sum(if (da21,da1,0))) ) d21,
|
|
|
+ concat(sum(da22)-sum(if (da22,da21,0)),',',sum(da22)/sum(if (da22,cost,0)),',', (sum(da22)-sum(if (da22,da21,0)))/sum(if (da22,cost,0)),',',if(sum(if (da22,da1,0))=0,1,sum(da22)/sum(if (da22,da1,0))) ) d22,
|
|
|
+ concat(sum(da23)-sum(if (da23,da22,0)),',',sum(da23)/sum(if (da23,cost,0)),',', (sum(da23)-sum(if (da23,da22,0)))/sum(if (da23,cost,0)),',',if(sum(if (da23,da1,0))=0,1,sum(da23)/sum(if (da23,da1,0))) ) d23,
|
|
|
+ concat(sum(da24)-sum(if (da24,da23,0)),',',sum(da24)/sum(if (da24,cost,0)),',', (sum(da24)-sum(if (da24,da23,0)))/sum(if (da24,cost,0)),',',if(sum(if (da24,da1,0))=0,1,sum(da24)/sum(if (da24,da1,0))) ) d24,
|
|
|
+ concat(sum(da25)-sum(if (da25,da24,0)),',',sum(da25)/sum(if (da25,cost,0)),',', (sum(da25)-sum(if (da25,da24,0)))/sum(if (da25,cost,0)),',',if(sum(if (da25,da1,0))=0,1,sum(da25)/sum(if (da25,da1,0))) ) d25,
|
|
|
+ concat(sum(da26)-sum(if (da26,da25,0)),',',sum(da26)/sum(if (da26,cost,0)),',', (sum(da26)-sum(if (da26,da25,0)))/sum(if (da26,cost,0)),',',if(sum(if (da26,da1,0))=0,1,sum(da26)/sum(if (da26,da1,0))) ) d26,
|
|
|
+ concat(sum(da27)-sum(if (da27,da26,0)),',',sum(da27)/sum(if (da27,cost,0)),',', (sum(da27)-sum(if (da27,da26,0)))/sum(if (da27,cost,0)),',',if(sum(if (da27,da1,0))=0,1,sum(da27)/sum(if (da27,da1,0))) ) d27,
|
|
|
+ concat(sum(da28)-sum(if (da28,da27,0)),',',sum(da28)/sum(if (da28,cost,0)),',', (sum(da28)-sum(if (da28,da27,0)))/sum(if (da28,cost,0)),',',if(sum(if (da28,da1,0))=0,1,sum(da28)/sum(if (da28,da1,0))) ) d28,
|
|
|
+ concat(sum(da29)-sum(if (da29,da28,0)),',',sum(da29)/sum(if (da29,cost,0)),',', (sum(da29)-sum(if (da29,da28,0)))/sum(if (da29,cost,0)),',',if(sum(if (da29,da1,0))=0,1,sum(da29)/sum(if (da29,da1,0))) ) d29,
|
|
|
+ concat(sum(da30)-sum(if (da30,da29,0)),',',sum(da30)/sum(if (da30,cost,0)),',', (sum(da30)-sum(if (da30,da29,0)))/sum(if (da30,cost,0)),',',if(sum(if (da30,da1,0))=0,1,sum(da30)/sum(if (da30,da1,0))) ) d30,
|
|
|
+ concat(sum(da31)-sum(if (da31,da30,0)),',',sum(da31)/sum(if (da31,cost,0)),',', (sum(da31)-sum(if (da31,da30,0)))/sum(if (da31,cost,0)),',',if(sum(if (da31,da1,0))=0,1,sum(da31)/sum(if (da31,da1,0))) ) d31,
|
|
|
+ concat(sum(da32)-sum(if (da32,da31,0)),',',sum(da32)/sum(if (da32,cost,0)),',', (sum(da32)-sum(if (da32,da31,0)))/sum(if (da32,cost,0)),',',if(sum(if (da32,da1,0))=0,1,sum(da32)/sum(if (da32,da1,0))) ) d32,
|
|
|
+ concat(sum(da33)-sum(if (da33,da32,0)),',',sum(da33)/sum(if (da33,cost,0)),',', (sum(da33)-sum(if (da33,da32,0)))/sum(if (da33,cost,0)),',',if(sum(if (da33,da1,0))=0,1,sum(da33)/sum(if (da33,da1,0))) ) d33,
|
|
|
+ concat(sum(da34)-sum(if (da34,da33,0)),',',sum(da34)/sum(if (da34,cost,0)),',', (sum(da34)-sum(if (da34,da33,0)))/sum(if (da34,cost,0)),',',if(sum(if (da34,da1,0))=0,1,sum(da34)/sum(if (da34,da1,0))) ) d34,
|
|
|
+ concat(sum(da35)-sum(if (da35,da34,0)),',',sum(da35)/sum(if (da35,cost,0)),',', (sum(da35)-sum(if (da35,da34,0)))/sum(if (da35,cost,0)),',',if(sum(if (da35,da1,0))=0,1,sum(da35)/sum(if (da35,da1,0))) ) d35,
|
|
|
+ concat(sum(da36)-sum(if (da36,da35,0)),',',sum(da36)/sum(if (da36,cost,0)),',', (sum(da36)-sum(if (da36,da35,0)))/sum(if (da36,cost,0)),',',if(sum(if (da36,da1,0))=0,1,sum(da36)/sum(if (da36,da1,0))) ) d36,
|
|
|
+ concat(sum(da37)-sum(if (da37,da36,0)),',',sum(da37)/sum(if (da37,cost,0)),',', (sum(da37)-sum(if (da37,da36,0)))/sum(if (da37,cost,0)),',',if(sum(if (da37,da1,0))=0,1,sum(da37)/sum(if (da37,da1,0))) ) d37,
|
|
|
+ concat(sum(da38)-sum(if (da38,da37,0)),',',sum(da38)/sum(if (da38,cost,0)),',', (sum(da38)-sum(if (da38,da37,0)))/sum(if (da38,cost,0)),',',if(sum(if (da38,da1,0))=0,1,sum(da38)/sum(if (da38,da1,0))) ) d38,
|
|
|
+ concat(sum(da39)-sum(if (da39,da38,0)),',',sum(da39)/sum(if (da39,cost,0)),',', (sum(da39)-sum(if (da39,da38,0)))/sum(if (da39,cost,0)),',',if(sum(if (da39,da1,0))=0,1,sum(da39)/sum(if (da39,da1,0))) ) d39,
|
|
|
+ concat(sum(da40)-sum(if (da40,da39,0)),',',sum(da40)/sum(if (da40,cost,0)),',', (sum(da40)-sum(if (da40,da39,0)))/sum(if (da40,cost,0)),',',if(sum(if (da40,da1,0))=0,1,sum(da40)/sum(if (da40,da1,0))) ) d40,
|
|
|
+ concat(sum(da41)-sum(if (da41,da40,0)),',',sum(da41)/sum(if (da41,cost,0)),',', (sum(da41)-sum(if (da41,da40,0)))/sum(if (da41,cost,0)),',',if(sum(if (da41,da1,0))=0,1,sum(da41)/sum(if (da41,da1,0))) ) d41,
|
|
|
+ concat(sum(da42)-sum(if (da42,da41,0)),',',sum(da42)/sum(if (da42,cost,0)),',', (sum(da42)-sum(if (da42,da41,0)))/sum(if (da42,cost,0)),',',if(sum(if (da42,da1,0))=0,1,sum(da42)/sum(if (da42,da1,0))) ) d42,
|
|
|
+ concat(sum(da43)-sum(if (da43,da42,0)),',',sum(da43)/sum(if (da43,cost,0)),',', (sum(da43)-sum(if (da43,da42,0)))/sum(if (da43,cost,0)),',',if(sum(if (da43,da1,0))=0,1,sum(da43)/sum(if (da43,da1,0))) ) d43,
|
|
|
+ concat(sum(da44)-sum(if (da44,da43,0)),',',sum(da44)/sum(if (da44,cost,0)),',', (sum(da44)-sum(if (da44,da43,0)))/sum(if (da44,cost,0)),',',if(sum(if (da44,da1,0))=0,1,sum(da44)/sum(if (da44,da1,0))) ) d44,
|
|
|
+ concat(sum(da45)-sum(if (da45,da44,0)),',',sum(da45)/sum(if (da45,cost,0)),',', (sum(da45)-sum(if (da45,da44,0)))/sum(if (da45,cost,0)),',',if(sum(if (da45,da1,0))=0,1,sum(da45)/sum(if (da45,da1,0))) ) d45,
|
|
|
+ concat(sum(da46)-sum(if (da46,da45,0)),',',sum(da46)/sum(if (da46,cost,0)),',', (sum(da46)-sum(if (da46,da45,0)))/sum(if (da46,cost,0)),',',if(sum(if (da46,da1,0))=0,1,sum(da46)/sum(if (da46,da1,0))) ) d46,
|
|
|
+ concat(sum(da47)-sum(if (da47,da46,0)),',',sum(da47)/sum(if (da47,cost,0)),',', (sum(da47)-sum(if (da47,da46,0)))/sum(if (da47,cost,0)),',',if(sum(if (da47,da1,0))=0,1,sum(da47)/sum(if (da47,da1,0))) ) d47,
|
|
|
+ concat(sum(da48)-sum(if (da48,da47,0)),',',sum(da48)/sum(if (da48,cost,0)),',', (sum(da48)-sum(if (da48,da47,0)))/sum(if (da48,cost,0)),',',if(sum(if (da48,da1,0))=0,1,sum(da48)/sum(if (da48,da1,0))) ) d48,
|
|
|
+ concat(sum(da49)-sum(if (da49,da48,0)),',',sum(da49)/sum(if (da49,cost,0)),',', (sum(da49)-sum(if (da49,da48,0)))/sum(if (da49,cost,0)),',',if(sum(if (da49,da1,0))=0,1,sum(da49)/sum(if (da49,da1,0))) ) d49,
|
|
|
+ concat(sum(da50)-sum(if (da50,da49,0)),',',sum(da50)/sum(if (da50,cost,0)),',', (sum(da50)-sum(if (da50,da49,0)))/sum(if (da50,cost,0)),',',if(sum(if (da50,da1,0))=0,1,sum(da50)/sum(if (da50,da1,0))) ) d50,
|
|
|
+ concat(sum(da51)-sum(if (da51,da50,0)),',',sum(da51)/sum(if (da51,cost,0)),',', (sum(da51)-sum(if (da51,da50,0)))/sum(if (da51,cost,0)),',',if(sum(if (da51,da1,0))=0,1,sum(da51)/sum(if (da51,da1,0))) ) d51,
|
|
|
+ concat(sum(da52)-sum(if (da52,da51,0)),',',sum(da52)/sum(if (da52,cost,0)),',', (sum(da52)-sum(if (da52,da51,0)))/sum(if (da52,cost,0)),',',if(sum(if (da52,da1,0))=0,1,sum(da52)/sum(if (da52,da1,0))) ) d52,
|
|
|
+ concat(sum(da53)-sum(if (da53,da52,0)),',',sum(da53)/sum(if (da53,cost,0)),',', (sum(da53)-sum(if (da53,da52,0)))/sum(if (da53,cost,0)),',',if(sum(if (da53,da1,0))=0,1,sum(da53)/sum(if (da53,da1,0))) ) d53,
|
|
|
+ concat(sum(da54)-sum(if (da54,da53,0)),',',sum(da54)/sum(if (da54,cost,0)),',', (sum(da54)-sum(if (da54,da53,0)))/sum(if (da54,cost,0)),',',if(sum(if (da54,da1,0))=0,1,sum(da54)/sum(if (da54,da1,0))) ) d54,
|
|
|
+ concat(sum(da55)-sum(if (da55,da54,0)),',',sum(da55)/sum(if (da55,cost,0)),',', (sum(da55)-sum(if (da55,da54,0)))/sum(if (da55,cost,0)),',',if(sum(if (da55,da1,0))=0,1,sum(da55)/sum(if (da55,da1,0))) ) d55,
|
|
|
+ concat(sum(da56)-sum(if (da56,da55,0)),',',sum(da56)/sum(if (da56,cost,0)),',', (sum(da56)-sum(if (da56,da55,0)))/sum(if (da56,cost,0)),',',if(sum(if (da56,da1,0))=0,1,sum(da56)/sum(if (da56,da1,0))) ) d56,
|
|
|
+ concat(sum(da57)-sum(if (da57,da56,0)),',',sum(da57)/sum(if (da57,cost,0)),',', (sum(da57)-sum(if (da57,da56,0)))/sum(if (da57,cost,0)),',',if(sum(if (da57,da1,0))=0,1,sum(da57)/sum(if (da57,da1,0))) ) d57,
|
|
|
+ concat(sum(da58)-sum(if (da58,da57,0)),',',sum(da58)/sum(if (da58,cost,0)),',', (sum(da58)-sum(if (da58,da57,0)))/sum(if (da58,cost,0)),',',if(sum(if (da58,da1,0))=0,1,sum(da58)/sum(if (da58,da1,0))) ) d58,
|
|
|
+ concat(sum(da59)-sum(if (da59,da58,0)),',',sum(da59)/sum(if (da59,cost,0)),',', (sum(da59)-sum(if (da59,da58,0)))/sum(if (da59,cost,0)),',',if(sum(if (da59,da1,0))=0,1,sum(da59)/sum(if (da59,da1,0))) ) d59,
|
|
|
+ concat(sum(da60)-sum(if (da60,da59,0)),',',sum(da60)/sum(if (da60,cost,0)),',', (sum(da60)-sum(if (da60,da59,0)))/sum(if (da60,cost,0)),',',if(sum(if (da60,da1,0))=0,1,sum(da60)/sum(if (da60,da1,0))) ) d60,
|
|
|
+ concat(sum(dm3)-sum(if (dm3,da60,0)) ,',' ,sum(dm3)/sum(if(dm3,cost,0)) ,',', (sum(dm3)-sum(if (dm3,da60,0)))/sum(if(dm3,cost,0)) ,',' ,if(sum(if(dm3,da1,0))=0,1,sum(dm3)/sum(if(dm3,da1,0))) ) m3,
|
|
|
+ concat(sum(dm4)-sum(if (dm4,dm3,0)),',',sum(dm4)/sum(if (dm4,cost,0)),',', (sum(dm4)-sum(if (dm4,dm3,0)))/sum(if (dm4,cost,0)),',',if(sum(if (dm4,da1,0))=0,1,sum(dm4)/sum(if (dm4,da1,0))) ) m4,
|
|
|
+ concat(sum(dm5)-sum(if (dm5,dm4,0)),',',sum(dm5)/sum(if (dm5,cost,0)),',', (sum(dm5)-sum(if (dm5,dm4,0)))/sum(if (dm5,cost,0)),',',if(sum(if (dm5,da1,0))=0,1,sum(dm5)/sum(if (dm5,da1,0))) ) m5
|
|
|
+
|
|
|
from ({sql}) a
|
|
|
"""
|
|
|
|
|
|
data, total, total_data = getLimitSumData(db.dm, sql, sum_sql, page, page_size)
|
|
|
|
|
|
- def parse(str):
|
|
|
- li=str.split(',')
|
|
|
- li[0]=round(float(li[0]),2)
|
|
|
- li[1]=round(float(li[1]),4)
|
|
|
- li[2]=round(float(li[2]),4)
|
|
|
- li[3]=round(float(li[3]),2)
|
|
|
- return dict(zip(['amount','add','roi','mult'],li))
|
|
|
+ def parse(key_str):
|
|
|
+ if type(key_str) is not str:
|
|
|
+ key_str = key_str.decode('utf-8')
|
|
|
+ li = key_str.split(',')
|
|
|
+ li[0] = round(float(li[0]), 2)
|
|
|
+ li[1] = round(float(li[1]), 4)
|
|
|
+ li[2] = round(float(li[2]), 4)
|
|
|
+ li[3] = round(float(li[3]), 2)
|
|
|
+ return dict(zip(['amount', 'add', 'roi', 'mult'], li))
|
|
|
+
|
|
|
+ for k, v in total_data.items():
|
|
|
+ if k in ['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', 'd31', 'd32',
|
|
|
+ 'd33', 'd34', 'd35', 'd36', 'd37', 'd38',
|
|
|
+ 'd39', 'd40', 'd41', 'd42', 'd43', 'd44', 'd45', 'd46', 'd47', 'd48', 'd49', 'd50', 'd51', 'd52',
|
|
|
+ 'd53', 'd54', 'd55', 'd56', 'd57', 'd58', 'd59',
|
|
|
+ 'd60', 'm3', 'm4', 'm5']:
|
|
|
+ total_data[k] = parse(v) if v else {}
|
|
|
|
|
|
# print(data)
|
|
|
for i in data:
|
|
|
- for k,v in i.items():
|
|
|
- if k in ['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','d31','d32','d33','d34','d35','d36','d37','d38',
|
|
|
- 'd39','d40','d41','d42','d43','d44','d45','d46','d47','d48','d49','d50','d51','d52','d53','d54','d55','d56','d57','d58','d59',
|
|
|
- 'd60','m3','m4','m5']:
|
|
|
- i[k]= parse(v) if v else {}
|
|
|
+ for k, v in i.items():
|
|
|
+ if k in ['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', 'd31', 'd32',
|
|
|
+ 'd33', 'd34', 'd35', 'd36', 'd37', 'd38',
|
|
|
+ 'd39', 'd40', 'd41', 'd42', 'd43', 'd44', 'd45', 'd46', 'd47', 'd48', 'd49', 'd50', 'd51', 'd52',
|
|
|
+ 'd53', 'd54', 'd55', 'd56', 'd57', 'd58', 'd59',
|
|
|
+ 'd60', 'm3', 'm4', 'm5']:
|
|
|
+ i[k] = parse(v) if v else {}
|
|
|
|
|
|
return data, total, total_data
|
|
|
|
|
@@ -307,8 +399,7 @@ concat(sum(m5-m4),',',sum(m5-m4)/sum(if(dt>=SUBDATE(CURRENT_DATE,INTERVAL 148 da
|
|
|
return data, total
|
|
|
|
|
|
|
|
|
-
|
|
|
-def pitcher_overview(user_id,start, end, pitcher, page, page_size, order_by, order):
|
|
|
+def pitcher_overview(user_id, start, end, pitcher, page, page_size, order_by, order):
|
|
|
if user_id in super_auth():
|
|
|
op = ''
|
|
|
else:
|
|
@@ -324,7 +415,7 @@ def pitcher_overview(user_id,start, end, pitcher, page, page_size, order_by, ord
|
|
|
|
|
|
db = MysqlUtils()
|
|
|
|
|
|
- sql=f""" select pitcher,
|
|
|
+ sql = f""" select pitcher,
|
|
|
DATE_FORMAT(min(dt),'%Y%m%d') start_date,
|
|
|
DATE_FORMAT(max(dt),'%Y%m%d') end_date,
|
|
|
sum(cost) cost,
|
|
@@ -354,7 +445,7 @@ def pitcher_overview(user_id,start, end, pitcher, page, page_size, order_by, ord
|
|
|
from dw_pitcher_trend where cost>0 and pitcher!='' {op} {op1} {op2} {op3} group by pitcher {op4}
|
|
|
"""
|
|
|
|
|
|
- sum_sql=f"""select '总计' as pitcher,
|
|
|
+ sum_sql = f"""select '总计' as pitcher,
|
|
|
sum(cost) cost,
|
|
|
sum(amount) amount,
|
|
|
sum(first_amount) first_amount,
|
|
@@ -381,13 +472,10 @@ def pitcher_overview(user_id,start, end, pitcher, page, page_size, order_by, ord
|
|
|
sum(byd_amount) byd_amount from ({sql}) a
|
|
|
"""
|
|
|
|
|
|
- return getLimitSumDataV2(db.dm, sql,sum_sql, page, page_size)
|
|
|
+ return getLimitSumDataV2(db.dm, sql, sum_sql, page, page_size)
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-def boss_panel_summary(user_id,start,end,channel,pitcher, type, stage, page, page_size, order_by, order):
|
|
|
-
|
|
|
+def boss_panel_summary(user_id, start, end, channel, pitcher, type, stage, page, page_size, order_by, order):
|
|
|
if user_id in super_auth():
|
|
|
op = ''
|
|
|
else:
|
|
@@ -403,13 +491,13 @@ def boss_panel_summary(user_id,start,end,channel,pitcher, type, stage, page, pag
|
|
|
op2 = f" and dt>='{start}' " if start else ''
|
|
|
op3 = f" and dt<='{end}' " if end else ''
|
|
|
op4 = f" and type='{type}' " if type else ''
|
|
|
- op5= f" and stage='{stage}' " if stage else ''
|
|
|
+ op5 = f" and stage='{stage}' " if stage else ''
|
|
|
op6 = f" and channel='{channel}' " if channel else ''
|
|
|
op7 = f" order by {order_by} {order}" if order_by and order else 'order by dt desc'
|
|
|
|
|
|
dm = MysqlUtils().dm
|
|
|
|
|
|
- sql=f"""select sum(order_amount) order_amount,sum(cost) cost,round(sum(reg_order_amount)/sum(cost),4) roi,dt from dw_channel
|
|
|
+ sql = f"""select sum(order_amount) order_amount,sum(cost) cost,round(sum(reg_order_amount)/sum(cost),4) roi,dt from dw_channel
|
|
|
where 1=1 {op} {op1} {op2} {op3} {op4} {op5} {op6}
|
|
|
GROUP BY dt HAVING order_amount+cost>0 {op7} """
|
|
|
# print(sql)
|
|
@@ -417,7 +505,7 @@ def boss_panel_summary(user_id,start,end,channel,pitcher, type, stage, page, pag
|
|
|
return getLimitData(dm, sql, page, page_size)
|
|
|
|
|
|
|
|
|
-def image_rank(start, end, type,book, page, page_size, order_by, order):
|
|
|
+def image_rank(start, end, type, book, page, page_size, order_by, order):
|
|
|
op1 = f" and book='{book}' " if book else ''
|
|
|
op2 = f" and dt>='{start}' " if start else ''
|
|
|
op3 = f" and dt<='{end}' " if end else ''
|
|
@@ -426,7 +514,7 @@ def image_rank(start, end, type,book, page, page_size, order_by, order):
|
|
|
|
|
|
db = MysqlUtils().quchen_text
|
|
|
|
|
|
- sql =f"""select preview_url,
|
|
|
+ sql = f"""select preview_url,
|
|
|
sum(cost),
|
|
|
round(sum(click_count)/sum(view_count),4) ctr,
|
|
|
round(sum(cost)/sum(click_count),2) cpc
|
|
@@ -437,28 +525,31 @@ def image_rank(start, end, type,book, page, page_size, order_by, order):
|
|
|
|
|
|
|
|
|
"""广告排行榜"""
|
|
|
-def advertisement_rank(user_id,start,end,type,page,page_size,order,order_by,book,channel,pitcher,has_order,is_video):
|
|
|
+
|
|
|
+
|
|
|
+def advertisement_rank(user_id, start, end, type, page, page_size, order, order_by, book, channel, pitcher, has_order,
|
|
|
+ is_video):
|
|
|
if user_id in super_auth():
|
|
|
op1 = ''
|
|
|
else:
|
|
|
user = tuple([i['nick_name'] for i in get_pitcher({'user_id': user_id})] + [get_user_name_by_id(user_id)])
|
|
|
- if len(user)==1:
|
|
|
+ if len(user) == 1:
|
|
|
op1 = f" and pitcher ='{user[0]}'"
|
|
|
else:
|
|
|
op1 = f" and pitcher in {str(user)}"
|
|
|
|
|
|
- op2=f" and dt>='{start}' " if start else ''
|
|
|
- op3=f" and dt<='{end}' " if end else ''
|
|
|
+ op2 = f" and dt>='{start}' " if start else ''
|
|
|
+ op3 = f" and dt<='{end}' " if end else ''
|
|
|
op4 = f" and channel='{channel}'" if channel else ''
|
|
|
op5 = f" and pitcher ='{pitcher}' " if pitcher else ''
|
|
|
- op8=f" and type='{type}'" if type else ''
|
|
|
- op9=f" order by {order_by} {order}" if order_by and order else ''
|
|
|
- op10=f" and book='{book}'" if book else ''
|
|
|
- op11 =f" and order_count>0" if has_order else ''
|
|
|
- op12 =f" and is_video" if is_video else ''
|
|
|
- db =MysqlUtils().dm
|
|
|
-
|
|
|
- sql=f"""select
|
|
|
+ op8 = f" and type='{type}'" if type else ''
|
|
|
+ op9 = f" order by {order_by} {order}" if order_by and order else ''
|
|
|
+ op10 = f" and book='{book}'" if book else ''
|
|
|
+ op11 = f" and order_count>0" if has_order else ''
|
|
|
+ op12 = f" and is_video" if is_video else ''
|
|
|
+ db = MysqlUtils().dm
|
|
|
+
|
|
|
+ sql = f"""select
|
|
|
row_number () over() as id,
|
|
|
dt,stage,platform,book,`type`, cost,channel,pitcher,
|
|
|
view_count,
|
|
@@ -501,7 +592,8 @@ def advertisement_rank(user_id,start,end,type,page,page_size,order,order_by,book
|
|
|
round(sum(order_amount)/sum(cost),4) ROI
|
|
|
from ({sql}) a
|
|
|
"""
|
|
|
- return getLimitSumData(db,sql,sum_sql, page, page_size)
|
|
|
+ return getLimitSumData(db, sql, sum_sql, page, page_size)
|
|
|
+
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
- print(get_pitcher({"user_id":78}))
|
|
|
+ print(get_pitcher({"user_id": 78}))
|