ck 3 éve
szülő
commit
25e9b1b366

+ 94 - 0
app/api_data/platform_order/QiYue.py

@@ -0,0 +1,94 @@
+"""
+七悦书城数据
+"""
+import time
+from model import ComUtils
+import requests
+import json
+from model.DataBaseUtils import MysqlUtils
+from model.DateUtils import DateUtils
+from model.ComUtils import *
+import math
+from model.DateUtils import DateUtils
+import logging
+from urllib import parse
+from model.DingTalkUtils import DingTalkUtils
+from .order_util import save_order
+
+logging.getLogger().setLevel(logging.WARNING)
+db = MysqlUtils()
+du = DateUtils()
+
+
+# 获取七悦订单数据
+def get_qiyue_order_task(start, end, account):
+    """一分钟请求60次的限制"""
+    order_list = []
+    # 参数
+    order_url = "https://api.zhangwenwenhua.com" + "/v1/orders"
+    stage = account[0]
+    token = account[1]
+    size = 50
+    freq = 0
+    for date in du.getDateLists(start, end):
+        page = 1
+
+        while True:
+            timestamp = int(time.time())
+            url = order_url + "?" + "token=" + str(token) + "&timestamp=" + str(timestamp) + "&page=" + str(
+                page) + "&size=" + str(size) + "&date=" + date
+            rsp = requests.get(url=url)
+            response_result_json = rsp.json()
+            # print(response_result_json)
+
+            freq += 1
+            if freq == 59:
+                print("一分钟请求60次的限制 等待中")
+                time.sleep(61)
+                freq = 0
+
+            code = response_result_json['code']
+            if code != 0:
+                print(stage, '七悦充值接口异常:', response_result_json)
+                break
+
+            result_data = response_result_json['data']
+
+            total = result_data['total']
+            if total <= 0:
+                break
+
+            order_item_list = result_data['data']
+            for x in order_item_list:
+                create_time = DateUtils.stamp_to_str(x['create_time'], '%Y-%m-%d %H:%M:%S')
+                reg_time = DateUtils.stamp_to_str(x['user_create_time'], '%Y-%m-%d %H:%M:%S')
+                order_list.append((
+                    create_time[:10],
+                    stage,
+                    '七悦',
+                    x['wechat_app_name'],  # 公众号名称
+                    x['channel_id'],
+                    x['user_open_id'],
+                    create_time,
+                    reg_time,  # 用户注册时间
+                    x['money'],
+                    x['book_name'],
+                    x['transaction_no'] if x['transaction_no'] != 0 else x['trade_no'],  # 订单id
+                    x['state'],
+                    x['user_id']
+                )
+                )
+
+            next_page_url = result_data['next_page_url']
+            if next_page_url is None:
+                break
+            page += 1
+        # print(len(order_list))
+    print(f'{stage} [{start}~{end}] 有订单{order_list.__len__()}')
+    if order_list.__len__() > 0:
+        save_order(order_list)
+
+
+# 获取七悦用户信息
+def get_qiyue_user_info():
+    pass

+ 1 - 0
app/api_data/platform_order/get_order.py

@@ -6,6 +6,7 @@ from app.api_data.platform_order.audio_qiyue import AudioQiyue
 from app.api_data.platform_order.youshuge import get_youshuge_order_task
 from app.api_data.platform_order.yuewen import get_yuewen_order_task
 from app.api_data.platform_order.yangguang import yangguang
+from app.api_data.platform_order.QiYue import get_qiyue_order_task
 
 db = MysqlUtils()
 

+ 13 - 72
app/api_data/platform_order/order_util.py

@@ -9,12 +9,12 @@ import math
 from model.DateUtils import DateUtils
 import logging
 from urllib import parse
+from model.DingTalkUtils import DingTalkUtils
 logging.getLogger().setLevel(logging.WARNING)
 db=MysqlUtils()
 du=DateUtils()
 
 
-
 def get_yg_vip_channel(stage, vip_id, client_id, token):
     url = "https://data.yifengaf.cn:443/channeldata/data/account/list"
     nonce = ComUtils.get_random_str()
@@ -100,7 +100,7 @@ def parse_yg_data(vip_id,stage):
         status = 2 if  di['state']=="完成" else 1
         date = order_time[:10]
         insert_data.append((date,stage,platform,channel,channel_id,user_id,order_time,reg_time,amount,from_novel,order_id,status))
-    # print(insert_data)
+    print(insert_data)
     # exit(0)
     print("订单数:"+ str(insert_data.__len__()))
     save_order(insert_data)
@@ -167,9 +167,10 @@ def get_huasheng_order(start,end, account, merchant):
                 'limit': limit
             }
             r = requests.post(order_url, order_params)
-            # print(r.text)
-
             response_result_json = r.json()
+            if response_result_json['code']!=0:
+                print(response_result_json)
+                DingTalkUtils.send('花生订单接口异常'+r.text)
 
 
             if 'data' not in response_result_json.keys():
@@ -217,82 +218,22 @@ def save_hs_data(data):
     db.quchen_text.executeMany(sql,data)
 
 
-def get_qiyue_order_task(start, end, account):
-    """一分钟请求60次的限制"""
-    order_list = []
-    # 参数
-    order_url = "https://api.zhangwenwenhua.com" + "/v1/orders"
-    stage = account[0]
-    token = account[1]
-    size = 50
-    freq=0
-    for date in du.getDateLists(start, end):
-        page = 1
-
-        while True:
-            timestamp = int(time.time())
-            url = order_url + "?" + "token=" + str(token) + "&timestamp=" + str(timestamp) + "&page=" + str(
-                page) + "&size=" + str(size) + "&date=" + date
-            rsp=requests.get(url=url)
-            response_result_json = rsp.json()
-            # print(response_result_json)
-
-            freq += 1
-            if freq == 59:
-                print("一分钟请求60次的限制 等待中")
-                time.sleep(61)
-                freq = 0
-
-            code = response_result_json['code']
-            if code != 0:
-                print(stage, '七悦充值接口异常:', response_result_json)
-                break
 
-            result_data = response_result_json['data']
-
-            total = result_data['total']
-            if total <= 0:
-                break
-
-            order_item_list = result_data['data']
-            for x in order_item_list:
-
-                create_time = DateUtils.stamp_to_str(x['create_time'],'%Y-%m-%d %H:%M:%S')
-                reg_time = DateUtils.stamp_to_str(x['user_create_time'],'%Y-%m-%d %H:%M:%S')
-                order_list.append((
-                     create_time[:10],
-                     stage,
-                     '七悦',
-                     x['wechat_app_name'],  # 公众号名称
-                     x['channel_id'],
-                     x['user_open_id'],
-                     create_time,
-                     reg_time,  # 用户注册时间
-                     x['money'],
-                     x['book_name'],
-                     x['transaction_no'] if x['transaction_no'] != 0 else x['trade_no'],   # 订单id
-                     x['state']
-                     # x['user_id']
-                )
-                     )
-
-            next_page_url = result_data['next_page_url']
-            if next_page_url is None:
-                break
-            page += 1
-        # print(len(order_list))
-    print(f'{stage} [{start}~{end}] 有订单{order_list.__len__()}')
-    if order_list.__len__()>0:
-        save_order(order_list)
         # print(order_list)
 
 
 
 def save_order(order_list):
-    db.quchen_text.executeMany('replace into ods_order values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)',order_list)
+    db.quchen_text.executeMany("""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)""", order_list)
     print("入库成功")
 
-
+def save_order2(order_list):
+    db.quchen_text.executeMany("""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)""", order_list)
+    print("入库成功")
 
 def get_wd_account_siteid_list(account):
     url = 'https://bi.reading.163.com/dist-api/siteList'

+ 1 - 1
model/DataBaseOperation.py

@@ -299,7 +299,7 @@ class MysqlOperation:
         else:
             last_data = -1
             repeat_key = set()
-            for i in sorted(tmp):
+            for i in sorted(tmp,key=lambda x:str(x)):
                 if last_data == i:
                     repeat_key.add(i)
                 if len(repeat_key) >= 10: