123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- # 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
- 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):
- 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=20 * i, offset=20 * (i - 1))
- rep = requests.request("GET", url, headers=headers, data=payload)
- if json.loads(rep.text)["result"] != 1:
- return
- else:
- total_list = json.loads(rep.text)["data"]["list"]
- print(total_list)
- dataInfoList = []
- try:
- for dataInfo in total_list:
- print(dataInfo)
- oid = dataInfo["oid"]
- order_status = dataInfo["status"]
- 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
- }
- dataInfoList.append(dataItem)
- batch_insertPro(item_list=dataInfoList, table_name='jy_order_list')
- sleep(3)
- except Exception as e:
- print(e)
|