|  | @@ -2,6 +2,7 @@ import time
 | 
	
		
			
				|  |  |  from model.DateUtils import DateUtils
 | 
	
		
			
				|  |  |  from model.ComUtils import md5
 | 
	
		
			
				|  |  |  import requests
 | 
	
		
			
				|  |  | +from model.ComUtils import split_int
 | 
	
		
			
				|  |  |  from app.api_data.platform_order.order_util import save_order
 | 
	
		
			
				|  |  |  ut = DateUtils()
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -18,87 +19,101 @@ def get_yuewen_order_task(st, et, account):
 | 
	
		
			
				|  |  |          end_time = DateUtils.str_to_stamp(ut.get_n_minutes_ago(), "%Y-%m-%d %H:%M:%S")
 | 
	
		
			
				|  |  |      else:
 | 
	
		
			
				|  |  |          end_time = DateUtils.str_to_stamp(et) + 86399
 | 
	
		
			
				|  |  | -    page = 1
 | 
	
		
			
				|  |  | -    last_min_id = ''
 | 
	
		
			
				|  |  | -    last_max_id = ''
 | 
	
		
			
				|  |  | -    total_count = ''
 | 
	
		
			
				|  |  | -    last_page = ''
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    li = []
 | 
	
		
			
				|  |  | -    while True:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        params = {
 | 
	
		
			
				|  |  | -            'email': email,
 | 
	
		
			
				|  |  | -            'timestamp': int(time.time()),
 | 
	
		
			
				|  |  | -            'start_time': start_time,
 | 
	
		
			
				|  |  | -            'end_time': end_time,
 | 
	
		
			
				|  |  | -            'page': page,
 | 
	
		
			
				|  |  | -            'version':1
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +    for i in split_int(start_time,end_time,3600):
 | 
	
		
			
				|  |  | +        start = i[0]
 | 
	
		
			
				|  |  | +        end = i[1]
 | 
	
		
			
				|  |  | +        print(ut.stamp_to_str(end))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if page > 1:
 | 
	
		
			
				|  |  | -            params['last_min_id'] = last_min_id
 | 
	
		
			
				|  |  | -            params['last_max_id'] = last_max_id
 | 
	
		
			
				|  |  | -            params['total_count'] = total_count
 | 
	
		
			
				|  |  | -            params['last_page'] = last_page
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        sorted_data = sorted(params.items())
 | 
	
		
			
				|  |  | -        str_params = ''
 | 
	
		
			
				|  |  | -        for k, v in sorted_data:
 | 
	
		
			
				|  |  | -            str_params = str_params + str(k) + str(v)
 | 
	
		
			
				|  |  | +        page = 1
 | 
	
		
			
				|  |  | +        last_min_id = ''
 | 
	
		
			
				|  |  | +        last_max_id = ''
 | 
	
		
			
				|  |  | +        total_count = ''
 | 
	
		
			
				|  |  | +        last_page = ''
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        sign = md5(appsecert + str_params).upper()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        # 放入签名
 | 
	
		
			
				|  |  | -        params['sign'] = sign
 | 
	
		
			
				|  |  | -        # print(params)
 | 
	
		
			
				|  |  | -        response_result_json = requests.get(url=url, params=params).json()
 | 
	
		
			
				|  |  | -        # print(response_result_json)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        # print(len(response_result_json["data"]["list"]))
 | 
	
		
			
				|  |  | +        li = []
 | 
	
		
			
				|  |  | +        while True:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            params = {
 | 
	
		
			
				|  |  | +                'email': email,
 | 
	
		
			
				|  |  | +                'timestamp': int(time.time()),
 | 
	
		
			
				|  |  | +                'start_time': start,
 | 
	
		
			
				|  |  | +                'end_time': end,
 | 
	
		
			
				|  |  | +                'page': page,
 | 
	
		
			
				|  |  | +                'version':1
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            if page > 1:
 | 
	
		
			
				|  |  | +                params['last_min_id'] = last_min_id
 | 
	
		
			
				|  |  | +                params['last_max_id'] = last_max_id
 | 
	
		
			
				|  |  | +                params['total_count'] = total_count
 | 
	
		
			
				|  |  | +                params['last_page'] = last_page
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        response_data = response_result_json['data']
 | 
	
		
			
				|  |  | -        total_count = response_data['total_count']
 | 
	
		
			
				|  |  | +            sorted_data = sorted(params.items())
 | 
	
		
			
				|  |  | +            str_params = ''
 | 
	
		
			
				|  |  | +            for k, v in sorted_data:
 | 
	
		
			
				|  |  | +                str_params = str_params + str(k) + str(v)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            sign = md5(appsecert + str_params).upper()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        last_min_id = response_data['min_id']
 | 
	
		
			
				|  |  | -        last_max_id = response_data['max_id']
 | 
	
		
			
				|  |  | -        last_page = response_data['page']
 | 
	
		
			
				|  |  | -        order_item_list = response_data['list']
 | 
	
		
			
				|  |  | +            # 放入签名
 | 
	
		
			
				|  |  | +            params['sign'] = sign
 | 
	
		
			
				|  |  | +            # print(params)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if len(order_item_list) == 0:
 | 
	
		
			
				|  |  | -            break
 | 
	
		
			
				|  |  | +            response_result_json = requests.get(url=url, params=params).json()
 | 
	
		
			
				|  |  | +            # print(response_result_json)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        for i in order_item_list:
 | 
	
		
			
				|  |  | -            order_time = i["order_time"]
 | 
	
		
			
				|  |  | -            li.append((order_time[:10],
 | 
	
		
			
				|  |  | -                       '',
 | 
	
		
			
				|  |  | -                       '阅文',
 | 
	
		
			
				|  |  | -                       i['app_name'],
 | 
	
		
			
				|  |  | -                       i['channel_id'],
 | 
	
		
			
				|  |  | -                       i['openid'],
 | 
	
		
			
				|  |  | -                       i['order_time'],
 | 
	
		
			
				|  |  | -                       i['reg_time'],
 | 
	
		
			
				|  |  | -                       i['amount'],
 | 
	
		
			
				|  |  | -                       i['book_name'],
 | 
	
		
			
				|  |  | -                       i['order_id'],
 | 
	
		
			
				|  |  | -                       i['order_status']
 | 
	
		
			
				|  |  | +            # print(len(response_result_json["data"]["list"]))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            ))
 | 
	
		
			
				|  |  | +            if not response_result_json.get('data'):
 | 
	
		
			
				|  |  | +                print(response_result_json)
 | 
	
		
			
				|  |  | +                raise
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if len(order_item_list) < 100:
 | 
	
		
			
				|  |  | -            break
 | 
	
		
			
				|  |  | -        else:
 | 
	
		
			
				|  |  | -            page += 1
 | 
	
		
			
				|  |  | +            response_data = response_result_json['data']
 | 
	
		
			
				|  |  | +            total_count = response_data['total_count']
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    if len(li) > 0:
 | 
	
		
			
				|  |  | -        print(f"{email} 有订单{len(li)}")
 | 
	
		
			
				|  |  | -        save_order(li)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            last_min_id = response_data['min_id']
 | 
	
		
			
				|  |  | +            last_max_id = response_data['max_id']
 | 
	
		
			
				|  |  | +            last_page = response_data['page']
 | 
	
		
			
				|  |  | +            order_item_list = response_data['list']
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if len(order_item_list) == 0:
 | 
	
		
			
				|  |  | +                break
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for i in order_item_list:
 | 
	
		
			
				|  |  | +                order_time = i["order_time"]
 | 
	
		
			
				|  |  | +                li.append((order_time[:10],
 | 
	
		
			
				|  |  | +                           '',
 | 
	
		
			
				|  |  | +                           '阅文',
 | 
	
		
			
				|  |  | +                           i['app_name'],
 | 
	
		
			
				|  |  | +                           i['channel_id'],
 | 
	
		
			
				|  |  | +                           i['openid'],
 | 
	
		
			
				|  |  | +                           i['order_time'],
 | 
	
		
			
				|  |  | +                           i['reg_time'],
 | 
	
		
			
				|  |  | +                           i['amount'],
 | 
	
		
			
				|  |  | +                           i['book_name'],
 | 
	
		
			
				|  |  | +                           i['order_id'],
 | 
	
		
			
				|  |  | +                           i['order_status']
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                ))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if len(order_item_list) < 100:
 | 
	
		
			
				|  |  | +                break
 | 
	
		
			
				|  |  | +            else:
 | 
	
		
			
				|  |  | +                page += 1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if len(li) > 0:
 | 
	
		
			
				|  |  | +            print(f"{email} 有订单{len(li)}")
 | 
	
		
			
				|  |  | +            save_order(li)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  if __name__ == '__main__':
 | 
	
		
			
				|  |  | -    a = "mqud82950@163.com,74ca754515fa253c8ab790603cebc2ee"
 | 
	
		
			
				|  |  | -    get_yuewen_order_task('2021-05-14', '2021-05-14', a.split(','))
 | 
	
		
			
				|  |  | +    a = "guangzhouliuqi2@sina.com,10ce1dd6ccb330a82b73701d1e78f518"
 | 
	
		
			
				|  |  | +    b = "mqud82950@163.com,74ca754515fa253c8ab790603cebc2ee"
 | 
	
		
			
				|  |  | +    get_yuewen_order_task('2021-05-28', '2021-05-28', a.split(','))
 |