|
@@ -261,15 +261,157 @@ def get_qiyue_order_task(start, end, account):
|
|
|
|
|
|
print(f'{stage} [{start}~{end}] 有订单{order_list.__len__()}')
|
|
|
if order_list.__len__()>0:
|
|
|
- save_qiyue_order(order_list)
|
|
|
+ save_order(order_list)
|
|
|
return order_list
|
|
|
|
|
|
-def save_qiyue_order(order_list):
|
|
|
+def save_order(order_list):
|
|
|
db.quchen_text.executeMany('replace into `order` values (%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'
|
|
|
+
|
|
|
+ consumerkey = account[0]
|
|
|
+ secretkey = account[1]
|
|
|
+ stage = account[3]
|
|
|
+ timestamp = int(time.time() * 1000)
|
|
|
+
|
|
|
+ siteid_params = {
|
|
|
+ "consumerkey": consumerkey,
|
|
|
+ 'secretkey': secretkey,
|
|
|
+ 'timestamp': timestamp,
|
|
|
+ }
|
|
|
+ sorted_data = sorted(siteid_params.items(), reverse=False)
|
|
|
+ s = ""
|
|
|
+ for k, v in sorted_data:
|
|
|
+ s = s + str(k) + "=" + str(v)
|
|
|
+ sign = md5(s).lower()
|
|
|
+ siteid_params['sign'] = sign
|
|
|
+
|
|
|
+ consumerkey = siteid_params['consumerkey']
|
|
|
+ timestamp = siteid_params['timestamp']
|
|
|
+ parameter = 'consumerkey=' + str(consumerkey) + '×tamp=' + str(timestamp) + '&sign=' + str(sign)
|
|
|
+ get_url = url + "?" + parameter
|
|
|
+
|
|
|
+ while True:
|
|
|
+ r = requests.get(url=get_url)
|
|
|
+ if r.status_code == 200:
|
|
|
+ break
|
|
|
+
|
|
|
+ try:
|
|
|
+ id_key_list = r.json()['data']
|
|
|
+ except:
|
|
|
+ return []
|
|
|
+ mpid_list = []
|
|
|
+ try:
|
|
|
+ for id_key_val in id_key_list:
|
|
|
+ mpid = dict(id_key_val)["mpId"]
|
|
|
+ mpid_list.append(mpid)
|
|
|
+ except Exception as e:
|
|
|
+ print(stage, '站点查询返回结果:', r.json())
|
|
|
+ return mpid_list
|
|
|
+
|
|
|
+
|
|
|
+def get_wending_json_object(url,params):
|
|
|
+ params['timestamp'] = int(time.time()*1000)
|
|
|
+ sorted_data = sorted(params.items(),reverse = False)
|
|
|
+ s=""
|
|
|
+ for k,v in sorted_data:
|
|
|
+ s = s+str(k)+"="+str(v)
|
|
|
+ sign = md5(s).lower()
|
|
|
+ params['sign'] = sign
|
|
|
+
|
|
|
+ consumerkey = params['consumerkey']
|
|
|
+ secretkey = params['secretkey']
|
|
|
+ timestamp = params['timestamp']
|
|
|
+ siteid = params['siteid']
|
|
|
+ pageSize = params['pageSize']
|
|
|
+ starttime = params['starttime']
|
|
|
+ endtime = params['endtime']
|
|
|
+ page = params['page']
|
|
|
+ paystatus = params['paystatus']
|
|
|
+ ## +'&secretkey='+str(secretkey)
|
|
|
+ parameter = 'consumerkey='+str(consumerkey)+'×tamp='+str(timestamp)+'&siteid='+str(siteid)+'&pageSize='+str(pageSize)\
|
|
|
+ +'&starttime='+str(starttime)+'&endtime='+str(endtime)+'&page='+str(page)+'&paystatus='+str(paystatus)+'&sign='+str(sign)
|
|
|
+ global get_url
|
|
|
+ get_url = url+"?"+parameter
|
|
|
+
|
|
|
+
|
|
|
+ while True:
|
|
|
+ r= requests.get(url=get_url)
|
|
|
+ if r.status_code==200:
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ time.sleep(1)
|
|
|
+ print("请求连接出错,等待1s...")
|
|
|
+
|
|
|
+ response_result_json=r.json()
|
|
|
+ del params['sign']
|
|
|
+ return response_result_json
|
|
|
+
|
|
|
+def get_wd_order_task(start,end,account):
|
|
|
+ order_list = []
|
|
|
+ url = 'https://bi.reading.163.com/dist-api/rechargeList'
|
|
|
+ consumerkey = account[0]
|
|
|
+ secretkey = account[1]
|
|
|
+ siteid = account[2]
|
|
|
+ stage = account[3]
|
|
|
+ siteid_list = get_wd_account_siteid_list(account)
|
|
|
+ # print(siteid_list)
|
|
|
+ if len(siteid_list) == 0:
|
|
|
+ siteid_list.append(siteid)
|
|
|
+
|
|
|
+ starttime = du.date_str_to_str(start)+'0000'
|
|
|
+ endtime = du.date_str_to_str(end)+'2359'
|
|
|
+
|
|
|
+ for siteid in siteid_list:
|
|
|
+
|
|
|
+ page = 1
|
|
|
+ while True:
|
|
|
+ params = {
|
|
|
+ 'consumerkey': consumerkey,
|
|
|
+ 'secretkey': secretkey,
|
|
|
+ 'timestamp': int(1601481600),
|
|
|
+ 'siteid': siteid,
|
|
|
+ 'pageSize': 1000,
|
|
|
+ 'starttime': starttime,
|
|
|
+ 'endtime': endtime,
|
|
|
+ 'page': page,
|
|
|
+ 'paystatus': 1}
|
|
|
+
|
|
|
+ response_result_json = get_wending_json_object(url, params)
|
|
|
+
|
|
|
+ order_item_list = response_result_json['data']['rechargeList']
|
|
|
+
|
|
|
+ for x in order_item_list:
|
|
|
+ createTime = time.strftime("%Y-%m-%d %H:%M:%S",
|
|
|
+ time.localtime(x['createTime'] // 1000)) ## 时间戳 》struct_time 》标准时间
|
|
|
+ uid_reg_time = time.strftime("%Y-%m-%d %H:%M:%S",
|
|
|
+ time.localtime(x['userRegisterTime'] // 1000)) ## 13位时间戳 》标准时间
|
|
|
+ y = (int(time.mktime(time.strptime(createTime[:10], '%Y-%m-%d'))),
|
|
|
+ stage,
|
|
|
+ '文鼎',
|
|
|
+ x['wx_mpName'],
|
|
|
+ x['wx_originalId'],
|
|
|
+ x['userId'],
|
|
|
+ createTime,
|
|
|
+ uid_reg_time,
|
|
|
+ x['money'] / 100,
|
|
|
+ x['bookTitle'],
|
|
|
+ x['ewTradeId'])
|
|
|
+ order_list.append(y)
|
|
|
+
|
|
|
+ if len(order_item_list) < 1000:
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ page += 1
|
|
|
+ print(f"{stage} [{start}~{end}] 有订单 {order_list.__len__()}")
|
|
|
+ if order_list.__len__()>0:
|
|
|
+ save_order(order_list)
|
|
|
+
|
|
|
+
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
get_qiyue_order_task('2021-02-01','2021-02-19',['趣程15期','eyJpdiI6ImluVWxoRUl3VTR6QU5hamlYOFBvXC9BPT0iLCJ2YWx1ZSI6Ik5IZ0N4dm5GcmJ0Zklsd0tNZ1JVSVE9PSIsIm1hYyI6IjJjODUzMjdlZTc2ODI2ZjFmY2QyYmU5MGViYTkzOGU4MDEwZTIyODIxOTE4NzgzYTNhOGQ1YWM4OGJkMDAzMmIifQ=='])
|