ck 4 éve
szülő
commit
777cd7ba9f

+ 28 - 6
app/api_data/get_order.py

@@ -1,6 +1,7 @@
 from app.api_data.order_util import *
 from model.DataBaseUtils import MysqlUtils
 from concurrent.futures import ThreadPoolExecutor
+from model.DingTalkUtils import DingTalkUtils
 db=MysqlUtils()
 
 
@@ -11,8 +12,14 @@ def get_account(plactform):
         new_data.append(i[0].replace('\n', '').split(","))
     return new_data
 
+def get_new_account(plactform):
+    data = db.quchen_text.getData(f"select text from order_account_text where platform='{plactform}' and create_time>='{du.get_n_days(-1)}'")
+    new_data = []
+    for i in data:
+        new_data.append(i[0].replace('\n', '').split(","))
+    return new_data
 
-def yangguang(start=None, end=None):
+def yangguang(start=None, end=None,new=None):
 
     if start:
         start = start+' 00:00:00'
@@ -23,7 +30,11 @@ def yangguang(start=None, end=None):
 
     client_id = 10008097
     token = '2xa1d55tTPBjeEA8Ho'
-    accounts=get_account("阳光")
+    accounts=get_account("阳光") if new is None else get_new_account('阳光')
+    if accounts.__len__()==0:
+        return
+    else:
+        print(f"阳光账号数:{accounts.__len__()}")
 
     for i in accounts:
         stage = i[0]
@@ -31,30 +42,41 @@ def yangguang(start=None, end=None):
         print(vip_id)
         get_yg_vip_channel(stage, vip_id, client_id, token)
         get_yg_data(stage, vip_id, client_id, token, start, end)
-
+    x=1
     while True:
         a = db.quchen_text.getOne("select count(1) from yangguang_path where update_time is null")
         print(f" vip 待处理数量 {a} 正在等待数据回调")
         if a == 0:
             break
         time.sleep(60)
+        x+=1
+        if x>15:
+            DingTalkUtils.send('阳光订单回调延时15min','18860455786')
+            break
 
     for i in accounts:
         vip_id = i[1]
-        parse_yg_data(vip_id)
+        stage=i[0]
+        parse_yg_data(vip_id,stage)
 
 
-def huasheng(start=None,end=None):
+def huasheng(start=None,end=None,new=None):
     if start is None:
         start = end = du.getTodayOrYestoday()
 
     executor = ThreadPoolExecutor(max_workers=5)
-    accounts = get_account("花生")
+    accounts = get_account("花生") if new is None else get_new_account('花生')
+    if len(accounts)==0:
+        return
+    else:
+        print(f'花生有账号{len(accounts)}个')
     li = []
     for account in accounts:
         channel_data = get_hs_channel(account)
         if not channel_data:
             continue
+        else:
+            print(f"账号:{account[2]} 有channel{len(channel_data)}个")
         for merchant in channel_data:
             executor.submit(get_huasheng_order_task, start, end, account, merchant,li)
     executor.shutdown(True)

+ 3 - 1
app/api_data/order_daily.py

@@ -4,5 +4,7 @@ du=DateUtils()
 
 
 if __name__ == '__main__':
-    dt=du.get_n_days(-1)
+    dt = du.get_n_days(-1)
     huasheng(dt, dt)
+
+

+ 12 - 0
app/api_data/order_run_back.py

@@ -0,0 +1,12 @@
+from app.api_data.get_order import *
+from model.DateUtils import DateUtils
+import time
+from model.DingTalkUtils import DingTalkUtils
+du=DateUtils()
+
+
+if __name__ == '__main__':
+    st = du.get_n_days(-10)
+    et = du.get_n_days(-1)
+    yangguang(st, et, new=True)
+    huasheng(st, et, new=True)

+ 6 - 4
app/api_data/order_util.py

@@ -56,7 +56,7 @@ def get_yg_data(stage,vip_id,client_id,token,start,end):
     db.quchen_text.execute(f"replace into yangguang_path(vip_id,task_id,stage,type) values ('{vip_id}','{task_id}','{stage}','order')")
 
 
-def parse_yg_data(vip_id):
+def parse_yg_data(vip_id,stage):
     url = db.quchen_text.getOne(f"select path from yangguang_path where type='channel' and vip_id={vip_id} ")
     r = requests.get(url).text
     channel_di={}
@@ -68,7 +68,8 @@ def parse_yg_data(vip_id):
         else:
             b=json.loads(i, strict=False)
         channel_di[b["channel_id"]]=b["wx_nickname"]
-    print(channel_di)
+    # 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]
@@ -123,7 +124,7 @@ def get_hs_channel(account):
     return response_result_json['data']
 
 def get_huasheng_order_task(start,end, account, merchant,li):
-
+    count=0
     apiKey = str(account[0])
     apiSecurity = account[1]
     stage = account[2]
@@ -184,11 +185,12 @@ def get_huasheng_order_task(start,end, account, merchant,li):
                     order = tuple(order.values())
                     if order.__len__()>0:
                         li.append(order)
+                    count+=1
 
             if int(page) >= math.ceil(total_count / int(limit)):
                 break
             page = page + 1
-
+    print(f"[{merchant_name}] 订单数: {count}")
 
 def save_hs_data(data):
     sql = 'replace INTO quchen_text.`order` ' \