优化快手 Cloud 主链路状态机

This commit is contained in:
yml
2026-05-28 10:03:23 +08:00
parent 0876e3ff5b
commit 9709643583
14 changed files with 513 additions and 122 deletions
@@ -3,6 +3,7 @@ import { createTaskEvent } from "../../../repositories/task-event-repo.js";
import { updateTask } from "../../../repositories/task-repo.js";
import { createHttpError } from "../../../utils/http.js";
import { nowIso } from "../../../utils/time.js";
import { TASK_STATUS, normalizeTaskStatus, type TaskStatus } from "../../../domain/task-status.js";
import { notifyKuaishouCloudConsumeFailed } from "../../notification/domain-notifications.js";
import { useCloudtentaclesSku } from "../../platforms/cloudtentacles/catalog-service.js";
import { backCloudtentaclesVirtualNumber } from "../../platforms/cloudtentacles/virtual-number-service.js";
@@ -78,7 +79,7 @@ export async function dispatchKuaishouCloudFulfillmentTask(
if (
flow.dispatch.status === "success" &&
String(task.task_status || "").trim() === "dispatched_pending_return"
normalizeTaskStatus(task.task_status) === TASK_STATUS.DISPATCHED_PENDING_RETURN
) {
return { task, flow };
}
@@ -163,7 +164,7 @@ export async function dispatchKuaishouCloudFulfillmentTask(
};
let updatedTask = await updateTask(task.id, {
task_status: "dispatched_pending_return",
task_status: TASK_STATUS.DISPATCHED_PENDING_RETURN,
delivery_status: "delivered",
result_code: "kuaishou_cloud_dispatched",
result_message: dispatchSummary,
@@ -285,11 +286,10 @@ export async function returnKuaishouCloudFulfillmentTask(
});
}
const taskStatus = normalizeTaskStatus(task.task_status);
if (
flow.returnNumber.status === "success" &&
["completed", "manual_review"].includes(
String(task.task_status || "").trim()
)
(taskStatus === TASK_STATUS.COMPLETED || taskStatus === TASK_STATUS.MANUAL_REVIEW)
) {
return { task, flow };
}
@@ -316,7 +316,7 @@ export async function returnKuaishouCloudFulfillmentTask(
let consumeStatus = "pending";
let consumeErrorMessage = "";
let consumedAt = null;
let nextTaskStatus = "completed";
let nextTaskStatus: TaskStatus = TASK_STATUS.COMPLETED;
let nextResultCode = "kuaishou_cloud_completed";
let nextResultMessage = "cloudtentacles 发货、退号并完成快手核销";
@@ -369,7 +369,7 @@ export async function returnKuaishouCloudFulfillmentTask(
}
if (consumeStatus !== "success") {
nextTaskStatus = "manual_review";
nextTaskStatus = TASK_STATUS.MANUAL_REVIEW;
nextResultCode = "kuaishou_cloud_consume_failed";
nextResultMessage =
consumeErrorMessage || "号码已退还,但快手核销未完成,请人工处理";