fix: 识别失效商品链接返回首页 (#111)

This commit is contained in:
chengma
2026-08-10 18:20:34 +08:00
parent 3b659eba0a
commit 8c9dbfed44
15 changed files with 802 additions and 62 deletions
+11 -1
View File
@@ -146,6 +146,7 @@ class CollectTaskService:
collector = self._factory(
self._device_address, self._client.client_id, self._cancelled
)
business_failure_message = ""
try:
result = collector.collect(started.task)
event = self._repository.save_collect_result(
@@ -165,7 +166,14 @@ class CollectTaskService:
)
if exc.code == "PDD_CANCELLED":
return self._submit_cancelled(event, remote_task_id)
return self._submit(event)
if exc.code == "PDD_GOODS_UNAVAILABLE":
business_failure_message = exc.message
outcome = self._submit(event)
if business_failure_message and outcome.kind == "failed":
return CollectTaskOutcome(
"business_failed", business_failure_message, remote_task_id
)
return outcome
def _submit_cancelled(
self, event: OutboxEventRecord, remote_task_id: str
@@ -226,6 +234,8 @@ class CollectTaskService:
def _classify_error(code: str) -> tuple[TaskStatus, bool]:
if code == "PDD_CANCELLED":
return TaskStatus.CANCELLED, False
if code == "PDD_GOODS_UNAVAILABLE":
return TaskStatus.FAILED, False
if code in {
"PDD_PAGE_LOGIN_REQUIRED",
"PDD_PAGE_CAPTCHA",