|
@@ -1,36 +1,64 @@
|
|
|
"""用户标签清洗"""
|
|
|
from model.DataBaseUtils import CkUtils,MysqlUtils
|
|
|
import pandas as pd
|
|
|
+from model.DateUtils import DateUtils
|
|
|
import sys
|
|
|
ck = CkUtils()
|
|
|
db = MysqlUtils()
|
|
|
+du = DateUtils()
|
|
|
+import time
|
|
|
+def run_all(y=0):
|
|
|
+ x =100000
|
|
|
|
|
|
-def run():
|
|
|
- sql = """
|
|
|
- select channel,
|
|
|
- user_id open_id,
|
|
|
- platform platform_book_name,
|
|
|
- count(1) recharge_count,
|
|
|
- sum(amount) recharge_money,
|
|
|
- max(order_time) last_recharge_time
|
|
|
+ while True:
|
|
|
+ print((y+1)*x)
|
|
|
|
|
|
- from order where status=2
|
|
|
- group by channel,user_id,platform limit 100"""
|
|
|
- col = ['channel','open_id','platform_book_name','recharge_count','recharge_money','last_recharge_time']
|
|
|
+ sql = f"""
|
|
|
+ select channel,
|
|
|
+ user_id open_id,
|
|
|
+ platform platform_book_name,
|
|
|
+ count(1) recharge_count,
|
|
|
+ sum(amount) recharge_money,
|
|
|
+ max(order_time) last_recharge_time
|
|
|
+
|
|
|
+ from order where status=2
|
|
|
+ group by channel,user_id,platform limit {y*x},{(y+1)*x}"""
|
|
|
+ col = ['channel','open_id','platform_book_name','recharge_count','recharge_money','last_recharge_time']
|
|
|
+ df = ck.getData_pd(sql,col=col)
|
|
|
+ if df.empty:
|
|
|
+ break
|
|
|
+ # print(df)
|
|
|
+ df_channel = get_qc_channel_info()
|
|
|
+ result = pd.merge(df,df_channel,how='left',on='channel').fillna(0)
|
|
|
+ save_data(result)
|
|
|
+ y += 1
|
|
|
|
|
|
- df = ck.getData_pd(sql,col=col)
|
|
|
- print(df)
|
|
|
+def run_today():
|
|
|
+ sql = f"""
|
|
|
+ select channel,
|
|
|
+ user_id open_id,
|
|
|
+ platform platform_book_name,
|
|
|
+ count(1) recharge_count,
|
|
|
+ sum(amount) recharge_money,
|
|
|
+ max(order_time) last_recharge_time
|
|
|
|
|
|
+ from order where status=2 and user_id in (select distinct user_id from order where date='{du.getNow()}')
|
|
|
+ group by channel,user_id,platform"""
|
|
|
+ col = ['channel', 'open_id', 'platform_book_name', 'recharge_count', 'recharge_money', 'last_recharge_time']
|
|
|
+ df = ck.getData_pd(sql, col=col)
|
|
|
+ # print(df)
|
|
|
df_channel = get_qc_channel_info()
|
|
|
+ result = pd.merge(df, df_channel, how='left', on='channel')
|
|
|
+ save_data(result)
|
|
|
|
|
|
- result = pd.merge(df,df_channel,how='left',on='channel')
|
|
|
- print(result)
|
|
|
|
|
|
+def save_data(df):
|
|
|
table = 't_mp_fans'
|
|
|
- keys=['mp_id','open_id']
|
|
|
- tags=['recharge_count','recharge_money','last_recharge_time','platform_book_name']
|
|
|
+ keys = ['mp_id', 'open_id']
|
|
|
+ tags = ['recharge_count', 'recharge_money', 'last_recharge_time', 'platform_book_name']
|
|
|
+ db.zx.dfUpdate2mysql(df, table, keys, tags)
|
|
|
+
|
|
|
|
|
|
- db.zx_test.dfUpdate2mysql(result,table,keys,tags)
|
|
|
|
|
|
|
|
|
def get_qc_channel_info():
|
|
@@ -42,5 +70,6 @@ def get_qc_channel_info():
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
- run()
|
|
|
- # get_qc_channel_info()
|
|
|
+ # run_today()
|
|
|
+ # get_qc_channel_info()
|
|
|
+ run_all(10)
|