ソースを参照

MOD:tmp fix yangguang

cxyu 3 年 前
コミット
869875c05d
1 ファイル変更46 行追加46 行削除
  1. 46 46
      app/api_data/platform_order/yangguang.py

+ 46 - 46
app/api_data/platform_order/yangguang.py

@@ -1,16 +1,16 @@
 from model.DataBaseUtils import MysqlUtils
-from model.DingTalkUtils import DingTalkDecorators,DingTalkUtils
+from model.DingTalkUtils import DingTalkDecorators, DingTalkUtils
 from model.DateUtils import DateUtils
 from model import ComUtils
 import time
 import json
 import requests
+
 db = MysqlUtils()
 du = DateUtils()
 
 
-
-@DingTalkDecorators("阳光")
+# @DingTalkDecorators("阳光")
 def yangguang(start=None, end=None):
     accounts = get_account("阳光")
 
@@ -32,7 +32,7 @@ def yangguang(start=None, end=None):
     for i in accounts:
         stage = i[0]
         vip_id = i[1]
-        print(stage,vip_id)
+        print(stage, vip_id)
         print(vip_id)
         # get_yg_vip_channel(stage, vip_id, client_id, token)
         get_yg_data(stage, vip_id, client_id, token, start, end)
@@ -40,11 +40,12 @@ def yangguang(start=None, end=None):
     print(check())
     parse_order_data()
 
-def get_yg_data(stage,vip_id,client_id,token,start,end):
+
+def get_yg_data(stage, vip_id, client_id, token, start, end):
     url = "https://data.yifengaf.cn:443/channeldata/data/orders/list"
-    nonce=ComUtils.get_random_str()
-    timestamp=int(time.time())
-    signaure =ComUtils.sha1(str(token) + str(timestamp) + str(client_id) + str(nonce))
+    nonce = ComUtils.get_random_str()
+    timestamp = int(time.time())
+    signaure = ComUtils.sha1(str(token) + str(timestamp) + str(client_id) + str(nonce))
     params = {
         "client_id": client_id,
         "token": token,
@@ -52,20 +53,21 @@ def get_yg_data(stage,vip_id,client_id,token,start,end):
         "timestamp": timestamp,
         "signaure": signaure,
         "vip_id": vip_id,
-        "start_time":start,   # %Y-%m-%d %H:%i:%s:
-        "end_time":end
+        "start_time": start,  # %Y-%m-%d %H:%i:%s:
+        "end_time": end
     }
-    headers={"Content-Type":"application/json"}
+    headers = {"Content-Type": "application/json"}
     for i in range(5):
         try:
-            r=requests.post(url=url,data=json.dumps(params),headers=headers,timeout=5)
+            r = requests.post(url=url, data=json.dumps(params), headers=headers, timeout=5)
             break
         except:
             pass
         raise
-    print(vip_id,r.text)
+    print(vip_id, r.text)
     task_id = json.loads(r.text).get("data").get("task_id")
-    db.quchen_text.execute(f"replace into yangguang_path(vip_id,task_id,stage,type) values ('{vip_id}','{task_id}','{stage}','order')")
+    db.quchen_text.execute(
+        f"replace into yangguang_path(vip_id,task_id,stage,type) values ('{vip_id}','{task_id}','{stage}','order')")
 
 
 def get_yg_vip_channel(stage, vip_id, client_id, token):
@@ -106,53 +108,58 @@ def parse_order_data():
 
     for i in accounts:
         # print(i)
-        vip_id = i[1]
-        stage = i[0]
-        data = parse_order(vip_id, stage)
-        save_data(data)
+        try:
+            vip_id = i[1]
+            stage = i[0]
+            data = parse_order(vip_id, stage)
+            save_data(data)
+        except Exception as e:
+            DingTalkUtils.send('阳光出错vipid:' + vip_id, phone='15168342316')
+            print(e)
 
-def parse_order(vip_id,stage):
+
+def parse_order(vip_id, stage):
     print(vip_id)
     url = db.quchen_text.getOne(f"select path from yangguang_path where type='channel' and vip_id={vip_id} ")
     for i in range(5):
         try:
-            r = requests.get(url,timeout=5).text
+            r = requests.get(url, timeout=5).text
             break
         except:
             pass
         raise
 
-    channel_di={}
+    channel_di = {}
     a = r.split('}')
     for i in a[:-1]:
         if i[-1] != '}':
-            b=json.loads(i + "}", strict=False)
+            b = json.loads(i + "}", strict=False)
 
         else:
-            b=json.loads(i, strict=False)
-        channel_di[b["channel_id"]]=(b["wx_nickname"],b['app_id'])
+            b = json.loads(i, strict=False)
+        channel_di[b["channel_id"]] = (b["wx_nickname"], b['app_id'])
 
     # print(channel_di)
     print(f'{stage} 有channel数:{len(channel_di)}')
 
-    info=db.quchen_text.getData(f"select stage,path from yangguang_path where type='order' and vip_id={vip_id}")
-    stage=info[0][0]
-    path=info[0][1]
+    info = db.quchen_text.getData(f"select stage,path from yangguang_path where type='order' and vip_id={vip_id}")
+    stage = info[0][0]
+    path = info[0][1]
     for i in range(5):
         try:
-            text=requests.get(path,timeout=5).text.replace('"referral_url":,','')
+            text = requests.get(path, timeout=5).text.replace('"referral_url":,', '')
             # print(text)
             break
-        except:
-            pass
-            raise
+        except Exception as e:
+            print('channel', e)
+            # raise
 
-    insert_data=[]
+    insert_data = []
     for j in text.split("}")[:-1]:
         if j[-1] != '}':
-            j=j+'}'
+            j = j + '}'
         try:
-            di=json.loads(j, strict=False)
+            di = json.loads(j, strict=False)
         except Exception as e:
             print(j)
             print(e)
@@ -169,7 +176,7 @@ def parse_order(vip_id,stage):
             di['money'],
             di.get('book_name'),
             di['merchant_id'],
-            2 if di['state']=="完成" else 1,
+            2 if di['state'] == "完成" else 1,
             di['user_id'],
             channel_di[di['channel_id']][1],
             1 if di['type'] == '书币充值' else 2,
@@ -178,7 +185,7 @@ def parse_order(vip_id,stage):
         ))
     # print(insert_data)
     # exit(0)
-    print("订单数:"+ str(insert_data.__len__()))
+    print("订单数:" + str(insert_data.__len__()))
     save_data(insert_data)
 
 
@@ -188,11 +195,10 @@ def save_data(data):
     trade_no,transaction_no) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) """
     # print(sql)
 
-    db.quchen_text.executeMany(sql,data)
+    db.quchen_text.executeMany(sql, data)
 
 
 def check():
-
     x = 1
     while True:
         a = db.quchen_text.getOne("select count(1) from yangguang_path where type ='order' and path is null")
@@ -217,6 +223,7 @@ def get_account(plactform, id=None):
         new_data.append(i[0].replace('\n', '').split(","))
     return new_data
 
+
 def get_yg_user_info():
     """获取阳光的用户信息"""
     accounts = get_account("阳光")
@@ -246,23 +253,16 @@ def get_yg_user_info():
     # parse_data()
 
 
-
-
-
 def daily_yg():
     st = du.get_n_days(-10)
     et = du.get_n_days(-1)
     yangguang(st, et)
 
 
-
-
-
 if __name__ == '__main__':
-
     # get_channel_info()
     # exit(0)
-    yangguang(start=du.get_n_days(-1),end=du.get_n_days(0))
+    yangguang(start=du.get_n_days(-1), end=du.get_n_days(0))
     # # exit(0)
     # yangguang('2021-05-28','2021-05-28')
     # daily_yg()