|
@@ -0,0 +1,56 @@
|
|
|
+from model.DateUtils import DateUtils
|
|
|
+from model.DataBaseUtils import MysqlUtils, CkUtils
|
|
|
+from datetime import datetime, timedelta, timezone
|
|
|
+import time
|
|
|
+import logging
|
|
|
+
|
|
|
+du = DateUtils()
|
|
|
+db = MysqlUtils()
|
|
|
+
|
|
|
+
|
|
|
+def insert_order_data(ymd):
|
|
|
+ # TODO: 游戏名字为''就是游戏id为0的那个游戏
|
|
|
+ logging.info('订单数据格式转换 ,开始 ')
|
|
|
+ datatime_ymd = datetime.strptime(ymd, '%Y-%m-%d').astimezone(timezone(timedelta(hours=8))).timetuple()
|
|
|
+ timestamp_ymd = time.mktime(datatime_ymd)
|
|
|
+ tomorrow_ymd = (datetime.strptime(ymd, '%Y-%m-%d').astimezone(timezone(timedelta(hours=8))) + timedelta(
|
|
|
+ days=1)).timetuple()
|
|
|
+ timestamp_tom = time.mktime(tomorrow_ymd)
|
|
|
+
|
|
|
+ sql = f'''
|
|
|
+ select DATE(FROM_UNIXTIME(a.create_time)),'',payway as order_type,c.wx_name,a.app_id ,f.id as user_id,
|
|
|
+ DATE_FORMAT(FROM_UNIXTIME(a.create_time), '%Y-%m-%d %H:%i:%s') as order_time,
|
|
|
+ DATE_FORMAT(FROM_UNIXTIME(f.create_time), '%Y-%m-%d %H:%i:%s') as reg_time,
|
|
|
+ a.amount ,ifnull(e.name,''),a.order_id ,a.status
|
|
|
+ from db_mp.h_pay a
|
|
|
+ left join db_mp.mp_conf_agent b on a.app_id =b.app_id and a.agent_id =b.agent_id
|
|
|
+ left join db_mp.mp_mp_conf c on b.advertiser_conf_id =c.id
|
|
|
+ left join db_mp.h_game d on a.app_id =d.id
|
|
|
+ left join db_mp.h_game e on d.parent_id = e.id
|
|
|
+ left join db_mp.h_member f on a.mem_id = f.id
|
|
|
+ where c.`type` =7
|
|
|
+ and a.create_time<{timestamp_tom} and a.create_time>{timestamp_ymd}
|
|
|
+ '''
|
|
|
+ list_ = db.db_mp.get_data_list(sql)
|
|
|
+ data_list = []
|
|
|
+ for _ in list_:
|
|
|
+ data_list.append(tuple(_))
|
|
|
+ sql = """replace into ods_order(date,stage,platform,channel,channel_id,user_id,
|
|
|
+ order_time,
|
|
|
+ reg_time,
|
|
|
+ amount,from_novel,order_id,status) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) """
|
|
|
+
|
|
|
+ db.quchen_text.executeMany(sql, data_list)
|
|
|
+ logging.info('订单数据格式转换 ,结束 ')
|
|
|
+
|
|
|
+def insert_order_data_hourly():
|
|
|
+ insert_order_data(du.getNow())
|
|
|
+
|
|
|
+
|
|
|
+def insert_order_data_daily():
|
|
|
+ for i in du.getDateLists(du.get_n_days(-10),du.get_n_days(0)):
|
|
|
+ insert_order_data(i)
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ insert_order_data_daily()
|