Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xqh_temu_api
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
lqy
xqh_temu_api
Commits
55fb4906
提交
55fb4906
authored
2月 13, 2026
作者:
刘擎阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.优化
上级
c3fbce7a
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
38 行增加
和
3 行删除
+38
-3
create_pdf.py
services/create_pdf.py
+23
-2
temu_service.py
services/temu_service.py
+15
-1
没有找到文件。
services/create_pdf.py
浏览文件 @
55fb4906
...
...
@@ -45,6 +45,24 @@ class CreateCartonPdf(object):
_logger
.
error
(
f
"发生异常,将在 1秒 后重试。错误详情: {str(err)}"
)
time
.
sleep
(
1
)
# 出错后多睡一会儿,防止日志刷屏
def
cancel_sns
(
self
,
order_id
):
"""
启动守护进程循环
:param interval: 每次循环的休眠时间(秒)
"""
_logger
.
info
(
f
">>>订单{order_id} 取消重新下单 <<<"
)
try
:
# --- 执行业务逻辑 ---
result
=
odoo_conn
.
odoo_db
.
execute
(
"temu.order"
,
"cancel_sns"
,
[
"self"
],
order_id
)
# 如果 Odoo 返回了处理的数量,可以打个日志
if
result
:
_logger
.
info
(
f
"本次执行结果: {result}"
)
except
Exception
as
err
:
# --- 异常处理 ---
# 捕获所有异常,确保脚本不会崩掉退出
_logger
.
error
(
f
"发生异常,将在 1秒 后重试。错误详情: {str(err)}"
)
time
.
sleep
(
1
)
# 出错后多睡一会儿,防止日志刷屏
try
:
pool
=
redis
.
ConnectionPool
(
**
config
.
redis_options
)
...
...
@@ -56,10 +74,13 @@ try:
result
=
r
.
brpop
([
'create_pdf_data'
],
0
)
data1
=
result
[
1
]
task_data
=
json
.
loads
(
data1
)
if
result
:
data_type
=
task_data
.
get
(
'type'
)
if
data_type
==
'cancel'
:
pdf_obj
.
cancel_sns
(
task_data
.
get
(
'order_id'
))
elif
data_type
==
'pdf'
:
pdf_obj
.
start_worker
(
task_data
.
get
(
'order_no'
),
task_data
.
get
(
'count'
))
else
:
logging
.
error
(
'未
找到数据类型'
)
logging
.
error
(
'未
识别到类型
%
s'
%
data_type
)
except
Exception
as
e
:
logging
.
error
(
'error:
%
s'
%
str
(
e
))
continue
...
...
services/temu_service.py
浏览文件 @
55fb4906
...
...
@@ -109,6 +109,8 @@ class TemuService(object):
return
return_res
# === 场景 C: 更新模式 ===
else
:
if
state
==
'cancel'
:
redis_obj
.
lpush
(
'create_pdf_data'
,
json
.
dumps
({
'order_id'
:
order_id
,
'type'
:
'cancel'
}))
# 原生 SQL 更新主表
self
.
_update_order
(
cr
,
order_id
,
kw
)
# 清理旧数据 (全删全插模式)
...
...
@@ -226,7 +228,7 @@ class TemuService(object):
'cartonInfo'
:
final_cartons
}
# 记录日志
redis_obj
.
lpush
(
'create_pdf_data'
,
json
.
dumps
({
'order_no'
:
order_no
,
'count'
:
len
(
final_cartons
)}))
redis_obj
.
lpush
(
'create_pdf_data'
,
json
.
dumps
({
'order_no'
:
order_no
,
'count'
:
len
(
final_cartons
)
,
'type'
:
'pdf'
}))
self
.
_log_api
(
cr
,
kw_data
,
order_no
,
""
)
except
Exception
as
e
:
...
...
@@ -391,6 +393,12 @@ class TemuService(object):
# 【核心修改】开启一个新的事务来记录错误日志
try
:
with
db_handle
.
get_cursor
()
as
log_cr
:
log_sql
=
"""
INSERT INTO temu_api_log (
big_bag_no, error_msg, push_time, data_text,
success_bl, request_id, source, create_date
) VALUES (
%
s,
%
s,
%
s,
%
s,
%
s,
%
s, '推入', (NOW() at time zone 'UTC'))
"""
log_params
=
(
f
'Temu订单取消: {order_no}'
,
f
"系统异常: {str(err)}"
,
# 记录具体的报错信息
...
...
@@ -500,6 +508,12 @@ class TemuService(object):
str
(
err
))
try
:
with
db_handle
.
get_cursor
()
as
log_cr
:
log_sql
=
"""
INSERT INTO temu_api_log (
big_bag_no, error_msg, push_time, data_text,
success_bl, request_id, source, create_date
) VALUES (
%
s,
%
s, (NOW() at time zone 'UTC'),
%
s,
%
s,
%
s, '推入', (NOW() at time zone 'UTC'))
"""
log_params
=
(
f
'Temu订单查询箱贴: {order_no}'
,
f
"系统异常: {str(err)}"
,
# 记录详细错误
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论