add workflow partner1site,dev

This commit is contained in:
root 2025-09-28 15:07:55 +08:00
parent 69dada94c3
commit 684465c71f
1 changed files with 177 additions and 173 deletions

View File

@ -22,10 +22,10 @@ SECRET_KEY = "117347a7dd066a50a4d2973c5f3d5ba9101094c5"
# URL 用占位符,外部替换
BASE_URLS = {
"visits": "http://onesite.tek.cn/api/summary/visits", # 客户拜访数据
# "reports": "http://onesite.tek.cn/api/summary/visits", # 报备数据
# "pos_datas": "http://onesite.tek.cn/api/summary/visits", # POS数据
# "customer_and_contact_datas": "http://onesite.tek.cn/api/summary/visits" # 客户及联系人数据
"visits": "http://onesite.tek.cn/api/summary/visits", # 客户拜访数据
"reports": "http://onesite.tek.cn/api/summary/visits", # 报备数据
"pos_datas": "http://onesite.tek.cn/api/summary/visits", # POS数据
"customer_and_contact_datas": "http://onesite.tek.cn/api/summary/visits" # 客户及联系人数据
}
PG_DSN = dict(
@ -35,6 +35,8 @@ PG_DSN = dict(
host="124.221.232.219",
port="5432"
)
API_ID = "2460976d-00c1-47d9-84b2-33e66d68" # 外部传入 api_id占位符
# ======================
@ -49,19 +51,15 @@ class Partner1SiteClient:
@staticmethod
def urlsafe_b64encode(data: bytes) -> str:
"""URL安全Base64编码"""
return base64.urlsafe_b64encode(data).decode()
def gen_token(self, expire_sec: int = 600) -> str:
"""生成 token —— 按最初调通算法修复"""
"""生成 token —— 按调通算法"""
random_num = str(random.randint(100000, 999999))
deadline = int(datetime.now(timezone.utc).timestamp()) + expire_sec
parm_str = f"{random_num}:{deadline}"
# 参数字符串 URL 安全 Base64 编码
enc_parm = self.urlsafe_b64encode(parm_str.encode())
# HMAC-SHA1 签名(对 enc_parm 编码进行)
sign = hmac.new(self.sk.encode(), enc_parm.encode(), hashlib.sha1).digest()
# digest 转成十六进制字符串再 URL 安全 Base64 编码
enc_sign = self.urlsafe_b64encode(sign.hex().encode())
return f"{self.ak}:{enc_sign}:{enc_parm}"
@ -140,34 +138,40 @@ def get_previous_date(days: int = 0) -> str:
def main():
client = Partner1SiteClient(ACCESS_KEY, SECRET_KEY)
# 客户拜访数据
# ✅ 1客户拜访数据
visits_data = client.fetch_all_pages(
api_name="visits",
params={"startInsertDate": get_previous_date(5), "endInsertDate": get_previous_date(0)}
)
save_json_to_pg(visits_data, "partner1site_visits")
save_json_to_pg(visits_data, API_ID)
# ❌ 2⃣ 报备数据(注释掉,后续可启用)
"""
# 报备数据
reports_data = client.fetch_all_pages(
api_name="reports",
params={"startApplyDate": get_previous_date(5), "endApplyDate": get_previous_date(0)}
)
save_json_to_pg(reports_data, "partner1site_reports")
save_json_to_pg(reports_data, API_ID)
"""
# POS 数据
# ❌ 3⃣ POS 数据(注释掉,后续可启用)
"""
pos_data = client.fetch_all_pages(
api_name="pos_datas",
params={"startPosInsertDate": get_previous_date(10), "endPosInsertDate": get_previous_date(0)}
)
save_json_to_pg(pos_data, "partner1site_pos_datas")
save_json_to_pg(pos_data, API_ID)
"""
# 客户及联系人数据
# ❌ 4⃣ 客户及联系人数据(注释掉,后续可启用)
"""
cust_contact_data = client.fetch_all_pages(
api_name="customer_and_contact_datas",
params={"customerId": 0, "customerContactId": 0}
)
save_json_to_pg(cust_contact_data, "partner1site_cust_contact")
save_json_to_pg(cust_contact_data, API_ID)
"""
if __name__ == "__main__":
main()