优化快手 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
@@ -19,6 +19,7 @@ import {
} from "../../notification/domain-notifications.js";
import { createHttpError } from "../../../utils/http.js";
import { nowIso } from "../../../utils/time.js";
import { TASK_STATUS, normalizeTaskStatus } from "../../../domain/task-status.js";
import {
KUAISHOU_CLOUD_FIXED_VN_KEY,
isKuaishouCloudBindUrlFresh,
@@ -126,9 +127,9 @@ export async function prepareKuaishouCloudFulfillmentTask(
let readyTask = task;
if (String(task.task_status || "").trim() !== "waiting_binding") {
if (normalizeTaskStatus(task.task_status) !== TASK_STATUS.WAITING_BINDING) {
readyTask = (await updateTask(task.id, {
task_status: "waiting_binding",
task_status: TASK_STATUS.WAITING_BINDING,
claim_token: claimLinkState.token || task.claim_token || "",
claim_expires_at:
claimLinkState.expiredAt || getTaskClaimExpiresAt(task),
@@ -314,7 +315,7 @@ export async function prepareKuaishouCloudFulfillmentTask(
};
const updatedTask = await updateTask(task.id, {
task_status: "waiting_binding",
task_status: TASK_STATUS.WAITING_BINDING,
user_action_status: "pending_claim",
claim_token: claimLinkState.token || task.claim_token || "",
claim_expires_at: claimLinkState.expiredAt || getTaskClaimExpiresAt(task),
@@ -462,16 +463,16 @@ export async function refreshKuaishouCloudTaskBindUrl(
bindProbeStatus: "pending",
bindProbeMessage: "",
roleName:
String(task.task_status || "").trim() === "role_confirmed"
normalizeTaskStatus(task.task_status) === TASK_STATUS.ROLE_CONFIRMED
? flow.binding.roleName
: "",
roleId:
String(task.task_status || "").trim() === "role_confirmed"
normalizeTaskStatus(task.task_status) === TASK_STATUS.ROLE_CONFIRMED
? flow.binding.roleId
: "",
},
role:
String(task.task_status || "").trim() === "role_confirmed"
normalizeTaskStatus(task.task_status) === TASK_STATUS.ROLE_CONFIRMED
? flow.role
: {
status: "pending",
@@ -488,17 +489,17 @@ export async function refreshKuaishouCloudTaskBindUrl(
options.claimLinkState || (await ensureTaskClaimLink(task));
const updatedTask = await updateTask(task.id, {
task_status:
String(task.task_status || "").trim() === "role_confirmed"
normalizeTaskStatus(task.task_status) === TASK_STATUS.ROLE_CONFIRMED
? task.task_status
: "waiting_binding",
: TASK_STATUS.WAITING_BINDING,
claim_token: claimLinkState.token || task.claim_token || "",
claim_expires_at: claimLinkState.expiredAt || getTaskClaimExpiresAt(task),
role_id:
String(task.task_status || "").trim() === "role_confirmed"
normalizeTaskStatus(task.task_status) === TASK_STATUS.ROLE_CONFIRMED
? task.role_id
: "",
role_name:
String(task.task_status || "").trim() === "role_confirmed"
normalizeTaskStatus(task.task_status) === TASK_STATUS.ROLE_CONFIRMED
? task.role_name
: "",
last_error: "",
@@ -665,7 +666,7 @@ async function markKuaishouCloudBindUrlRefreshFailed(
};
const updatedTask = await updateTask(task.id, {
task_status: "pending_binding_prepare",
task_status: TASK_STATUS.PENDING_BINDING_PREPARE,
role_id: "",
role_name: "",
last_error: `绑定链接过期,旧号码已退还,新链接准备失败:${errorMessage}`,