43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
# dingdan/cross_platform_tasks.py
|
||
|
||
#不在使用
|
||
|
||
|
||
import logging
|
||
import requests
|
||
from django.conf import settings
|
||
|
||
logger = logging.getLogger(__name__)
|
||
|
||
def send_partner_sync_order(partner_order_id, jine, dashou_fencheng, jieshao, beizhu, create_time,nicheng):
|
||
"""
|
||
异步发送派单通知给对方平台(使用简单线程,非Celery)
|
||
注意:此函数应在线程中调用,避免阻塞主请求。
|
||
生产环境建议使用Celery,此处提供线程兼容版本。
|
||
"""
|
||
url = f"{settings.PARTNER_BASE_URL}/dingdan/partner_sync_order"
|
||
payload = {
|
||
'token': settings.CROSS_PLATFORM_TOKEN,
|
||
'partner_order_id': partner_order_id,
|
||
'jine': jine,
|
||
'dashou_fencheng': dashou_fencheng,
|
||
'jieshao': jieshao,
|
||
'beizhu': beizhu,
|
||
'create_time': create_time,
|
||
'nicheng': nicheng,
|
||
}
|
||
try:
|
||
response = requests.post(url, json=payload, timeout=5)
|
||
if response.status_code == 200:
|
||
data = response.json()
|
||
if data.get('code') == 0:
|
||
logger.info(f"跨平台派单同步成功: {partner_order_id}")
|
||
# 可在此处保存对方返回的 local_order_id 到本地订单(如果需要)
|
||
# local_order_id = data['data'].get('local_order_id')
|
||
# Dingdan.objects.filter(dingdan_id=partner_order_id).update(partner_order_id=local_order_id)
|
||
else:
|
||
logger.error(f"跨平台派单同步业务失败: {data}")
|
||
else:
|
||
logger.error(f"跨平台派单同步HTTP失败: {response.status_code}")
|
||
except Exception as e:
|
||
logger.error(f"跨平台派单同步异常: {str(e)}", exc_info=True) |