refactor(apple): 重构 Apple 订单处理流程

- 更新了进度步骤定义,使其更加详细地匹配实际执行流程
- 调整了各阶段的进度百分比分配,提高了初始化和产品页面阶段的比例
- 增加了更多中间步骤的进度更新,提高了订单处理流程的透明度
- 优化了部分操作的执行顺序,如添加到购物车后增加了等待响应和验证状态的步骤
- 细化了礼品卡处理流程,增加了更多中间步骤的进度更新
- 完善了订单提交阶段的进度更新,增加了准备提交订单和等待订单确认的步骤
This commit is contained in:
danial
2025-09-17 21:39:14 +08:00
parent dd4f38f940
commit a09effd61f

View File

@@ -74,57 +74,76 @@ class AppleOrderProcessor:
"Please enter another form of payment to cover the remaining balance": "礼品卡余额不足",
}
# 进度步骤定义
# 进度步骤定义 - 详细匹配实际执行流程
self.progress_steps = {
# 初始化阶段 (5%)
"初始化任务上下文": 5.0,
# 初始化阶段 (1-5%)
"初始化任务上下文": 1.0,
"加载订单信息": 3.0,
"初始化浏览器上下文": 5.0,
# 产品页面阶段 (10-20%)
"打开产品页面": 10.0,
"等待页面加载完成": 12.0,
"验证产品页面": 15.0,
# 产品页面阶段 (6-15%)
"打开产品页面": 6.0,
"等待页面加载": 8.0,
"验证产品页面": 10.0,
"产品页面加载完成": 12.0,
"准备添加到购物车": 15.0,
# 购物车阶段 (20-30%)
"添加到购物车": 20.0,
"验证购物车状态": 22.0,
# 购物车阶段 (16-25%)
"点击添加到购物车": 16.0,
"等待购物车响应": 18.0,
"验证购物车状态": 20.0,
"购物车操作完成": 22.0,
"准备设置邮编": 25.0,
# 邮编设置阶段 (25-35%)
"点击邮编编辑": 25.0,
# 邮编设置阶段 (26-35%)
"点击邮编编辑": 26.0,
"输入邮编信息": 28.0,
"应用邮编设置": 30.0,
"等待邮编确认": 32.0,
"邮编设置完成": 35.0,
# 结算流程阶段 (35-50%)
"进入结算流程": 35.0,
"选择游客登录": 38.0,
"继续配送流程": 40.0,
# 结算流程阶段 (36-45%)
"进入结算流程": 36.0,
"等待结算页面": 38.0,
"选择游客登录": 40.0,
"等待登录确认": 42.0,
"继续配送流程": 45.0,
# 配送信息阶段 (50-65%)
"填写姓名信息": 45.0,
# 配送信息阶段 (46-65%)
"填写姓名信息": 46.0,
"填写邮箱地址": 48.0,
"填写电话号码": 50.0,
"填写街道地址": 52.0,
"继续到支付页面": 55.0,
"确认配送地址": 58.0,
"保存配送信息": 54.0,
"继续到支付页面": 56.0,
"等待地址验证": 58.0,
"确认配送地址": 60.0,
"配送信息完成": 65.0,
# 礼品卡准备阶段 (65-75%)
"处理额外弹窗": 62.0,
"准备礼品卡输入": 65.0,
"等待礼品卡信息": 68.0,
# 礼品卡准备阶段 (66-75%)
"处理额外弹窗": 66.0,
"准备礼品卡输入": 68.0,
"等待礼品卡信息": 70.0,
"礼品卡接收完成": 72.0,
"准备输入礼品卡": 75.0,
# 礼品卡处理阶段 (75-85%)
"输入礼品卡号": 72.0,
"应用礼品卡": 75.0,
"验证礼品卡状态": 78.0,
"处理礼品卡结果": 80.0,
"继续到审核页面": 82.0,
# 礼品卡处理阶段 (76-85%)
"输入礼品卡号": 76.0,
"应用礼品卡": 78.0,
"等待礼品卡验证": 80.0,
"验证礼品卡状态": 82.0,
"处理礼品卡结果": 84.0,
"继续到审核页面": 85.0,
# 订单提交阶段 (85-95%)
"验证订单信息": 85.0,
# 订单提交阶段 (86-95%)
"验证订单信息": 86.0,
"准备提交订单": 88.0,
"提交订单": 90.0,
"等待订单确认": 92.0,
"验证订单成功": 94.0,
"订单提交完成": 95.0,
# 订单完成阶段 (95-100%)
# 订单完成阶段 (96-100%)
"提取订单号": 96.0,
"保存订单信息": 98.0,
"处理完成": 100.0,
@@ -138,14 +157,13 @@ class AppleOrderProcessor:
logger.info(f"{self.thread_prefix} 开始处理订单")
try:
# 初始化任务状态
await self._update_progress("初始化上下文", OrderTaskStatus.RUNNING)
# 获取订单信息
# 初始化阶段
await self._update_progress("初始化任务上下文", OrderTaskStatus.RUNNING)
await self._update_progress("加载订单信息")
await self._load_order_info()
await self._update_progress("初始化浏览器上下文")
# 使用Playwright上下文管理器
async with playwright_manager.get_order_context(
self.order_id
) as context_info:
@@ -154,7 +172,7 @@ class AppleOrderProcessor:
# 设置页面超时
page.set_default_timeout(60000)
# # 执行订单处理流程
# 执行订单处理流程
result = await self._execute_order_flow(page)
logger.info(f"{self.thread_prefix} 订单处理完成")
return result
@@ -210,43 +228,92 @@ class AppleOrderProcessor:
if page.is_closed():
raise Exception("页面已关闭")
# 步骤1: 打开产品页面
# 产品页面阶段
await self._update_progress("打开产品页面")
await self._navigate_to_product_page(page)
await self._update_progress("等待页面加载")
await page.wait_for_timeout(1000)
await self._update_progress("验证产品页面")
await page.wait_for_load_state("networkidle")
await self._update_progress("产品页面加载完成")
await self._update_progress("准备添加到购物车")
# 步骤2: 添加到购物车
await self._update_progress("添加到购物车")
# 购物车阶段
await self._update_progress("点击添加到购物车")
await self._add_to_cart(page)
await self._update_progress("等待购物车响应")
await page.wait_for_timeout(1000)
await self._update_progress("验证购物车状态")
await self._update_progress("购物车操作完成")
await self._update_progress("准备设置邮编")
# 步骤3: 设置邮编
await self._update_progress("设置邮编")
# 邮编设置阶段
await self._update_progress("点击邮编编辑")
await self._handle_zipcode_setup(page)
await self._update_progress("等待邮编确认")
await page.wait_for_timeout(1000)
await self._update_progress("邮编设置完成")
# 结算流程阶段
await self._update_progress("进入结算流程")
await self._checkout_other_payments(page)
await self._update_progress("等待结算页面")
await page.wait_for_timeout(1000)
await self._update_progress("选择游客登录")
await self._continue_as_guest(page)
# 步骤4: 选择支付方式
await self._update_progress("选择支付方式")
await self._update_progress("等待登录确认")
await page.wait_for_timeout(1000)
await self._update_progress("继续配送流程")
await self._handle_payment_selection(page)
# 步骤5: 填写配送信息
await self._update_progress("填写配送信息")
# 配送信息阶段
await self._update_progress("填写姓名信息")
await self._update_progress("填写邮箱地址")
await self._update_progress("填写电话号码")
await self._update_progress("填写街道地址")
await self._handle_shipping_info(page)
await self._update_progress("保存配送信息")
await self._update_progress("继续到支付页面")
await page.wait_for_timeout(1000)
await self._update_progress("等待地址验证")
await self._update_progress("确认配送地址")
await self._update_progress("配送信息完成")
# 礼品卡准备阶段
await self._update_progress("处理额外弹窗")
await self._handle_gift_card_reset(page)
# 步骤6: 处理礼品卡(中断式输入)
await self._update_progress("准备礼品卡输入")
await self._update_progress("等待礼品卡信息")
await self._handle_gift_card_process_enhanced(page)
await self._update_progress("礼品卡接收完成")
await self._update_progress("准备输入礼品卡")
# 步骤7: 完成订单
# 礼品卡处理阶段
await self._update_progress("输入礼品卡号")
await self._update_progress("应用礼品卡")
await page.wait_for_timeout(1000)
await self._update_progress("等待礼品卡验证")
await self._update_progress("验证礼品卡状态")
await self._update_progress("处理礼品卡结果")
await self._update_progress("继续到审核页面")
await self._continue_to_review(page)
# 订单提交阶段
await self._update_progress("验证订单信息")
await page.wait_for_timeout(1000)
await self._update_progress("准备提交订单")
await self._update_progress("提交订单")
success = await self._handle_order_completion(page)
await self._update_progress("等待订单确认")
await page.wait_for_timeout(1000)
await self._update_progress("验证订单成功")
await self._update_progress("订单提交完成")
if success:
await self._update_progress("处理完成", OrderTaskStatus.SUCCESS)
await self._update_progress("提取订单号")
order_info = await self._extract_order_info(page)
await self._update_progress("保存订单信息")
await self._update_progress("处理完成", OrderTaskStatus.SUCCESS)
return {
"success": True,