Przeglądaj źródła

MOD:更改为游戏处理

cxyu 3 lat temu
rodzic
commit
12384b19a4
1 zmienionych plików z 56 dodań i 0 usunięć
  1. 56 0
      app/api_data/platform_order/order_data_change.py

+ 56 - 0
app/api_data/platform_order/order_data_change.py

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