# Author renyupeng # coding=utf-8 # @Time : 2024/1/4 上午9:55 # @Site : # @File : PlatformClipOrderList.py # @Software: PyCharm # @contact: renyupeng@c-top.com.cn # @Tel 1501435553 import datetime import json from math import ceil from time import sleep import requests from utils.mysql_helper import batch_insertPro from utils.mysql_utils_pro import MysqlProUtils from utils.send_wechat_msg import SendWechatMsg class PlatformClipOrderList: def __int__(self): self.conn = MysqlProUtils() @staticmethod def HandlerRequest(startDate, endDate, cookie, name): url = "https://cps.kwaixiaodian.com/gateway/distribute/platform/clip/order/list?offset=0&limit=1&searchDelivered=0&orderCreateTimeStart={start_date}&orderCreateTimeEnd={end_date}&status=0".format( start_date=startDate, end_date=endDate) print(url) payload = {} headers = { 'Cookie': cookie, 'User-Agent': 'Apifox/1.0.0 (https://apifox.com)', 'Accept': '*/*', 'Host': 'cps.kwaixiaodian.com', 'Connection': 'keep-alive' } response = requests.request("GET", url, headers=headers, data=payload) data = json.loads(response.text)["data"] print(data) total_num = data["total"] page = ceil(total_num / 200) for i in range(page+1): if i != 0: print(i) url = "https://cps.kwaixiaodian.com/gateway/distribute/platform/clip/order/list?offset={offset}&limit={total_num}&searchDelivered=0&orderCreateTimeStart={start_date}&orderCreateTimeEnd={end_date}&status=0".format( start_date=startDate, end_date=endDate, total_num=200 * i, offset=200 * (i - 1)) print(url,'-------') rep = requests.request("GET", url, headers=headers, data=payload) if json.loads(rep.text)["result"] != 1: SendWechatMsg().send_data(json.loads(rep.text)) continue else: total_list = json.loads(rep.text)["data"]["list"] dataInfoList = [] try: for dataInfo in total_list: oid = dataInfo["oid"] order_status = dataInfo["cpsOrderStatus"] order_create_time = dataInfo["orderCreateTime"] send_status = dataInfo["sendStatus"] settlement_biz_type = dataInfo["settlementBizType"] settlement_biz_type_desc = dataInfo["settlementBizTypeDesc"] send_time = dataInfo["sendTime"] recv_time = dataInfo["recvTime"] order_amount = dataInfo["orderTradeAmount"] regimental_promotion_rate = None share_rate = dataInfo["shareRate"] base_amount = dataInfo["baseAmount"] clip_user_id = dataInfo["clipUserId"] mcn_settlement_amount = dataInfo["settlementAmount"] for item in dataInfo["itemList"]: item_id = item["itemId"] item_title = item["itemTitle"] reserve_price = item["price"] image_url = item["itemPicUrl"] seller_id = item["sellerId"] promotion_id = None promotion_nick_name = None clip_nick_name = name activity_id = None pay_amount = item["paymentFee"] service_amount = item["serviceAmount"] commission_rate = item["commissionRate"] regimental_promotion_amount = None total_regimental_settle_amount = None mcn_promotion_amount = item["estimatedIncome"] stat_date = datetime.datetime.fromtimestamp(order_create_time / 1000).strftime("%Y%m%d") stat_hour = datetime.datetime.fromtimestamp(order_create_time / 1000).strftime("%H") account_type = 2 dataItem = { "oid": oid, "order_status": order_status, "order_create_time": order_create_time, "send_status": send_status, "settlement_biz_type": settlement_biz_type, "settlement_biz_type_desc": settlement_biz_type_desc, "send_time": send_time, "recv_time": recv_time, "order_amount": order_amount, "regimental_promotion_rate": regimental_promotion_rate, "share_rate": share_rate, "base_amount": base_amount, "item_id": item_id, "item_title": item_title, "reserve_price": reserve_price, "image_url": image_url, "seller_id": seller_id, "promotion_id": promotion_id, "promotion_nick_name": promotion_nick_name, "clip_user_id": clip_user_id, "clip_nick_name": clip_nick_name, "activity_id": activity_id, "pay_amount": pay_amount, "service_amount": service_amount, "commission_rate": commission_rate, "regimental_promotion_amount": regimental_promotion_amount, "total_regimental_settle_amount": total_regimental_settle_amount, "mcn_promotion_amount": mcn_promotion_amount, "mcn_settlement_amount": mcn_settlement_amount, "stat_date": stat_date, "stat_hour": stat_hour, "account_type": account_type } # print(dataItem) dataInfoList.append(dataItem) print(dataInfoList) batch_insertPro(item_list=dataInfoList, table_name='jy_order_list') sleep(3) except Exception as e: print(e)