From 8913c12ff7ebd991298b6fb2f917cfe4a1b31e28 Mon Sep 17 00:00:00 2001 From: yml Date: Thu, 21 May 2026 16:42:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E7=AB=AF=E8=BF=81=E7=A7=BB=E5=BF=AB?= =?UTF-8?q?=E6=89=8BCloud=E6=A0=B8=E5=BF=83=E5=B1=A5=E7=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...vice.js => kuaishou-cloud-task-service.ts} | 38 ++++++++++++++----- docs/backend-typescript-migration-plan.md | 8 ++++ 2 files changed, 36 insertions(+), 10 deletions(-) rename apps/backend/src/services/fulfillment/{kuaishou-cloud-task-service.js => kuaishou-cloud-task-service.ts} (98%) diff --git a/apps/backend/src/services/fulfillment/kuaishou-cloud-task-service.js b/apps/backend/src/services/fulfillment/kuaishou-cloud-task-service.ts similarity index 98% rename from apps/backend/src/services/fulfillment/kuaishou-cloud-task-service.js rename to apps/backend/src/services/fulfillment/kuaishou-cloud-task-service.ts index f328f402..d0dd4c31 100644 --- a/apps/backend/src/services/fulfillment/kuaishou-cloud-task-service.js +++ b/apps/backend/src/services/fulfillment/kuaishou-cloud-task-service.ts @@ -1,5 +1,3 @@ -// @ts-check - import { createTaskEvent } from "../../repositories/task-event-repo.js"; import { getOrderById } from "../../repositories/order-repo.js"; import { updateTask } from "../../repositories/task-repo.js"; @@ -46,6 +44,8 @@ import { nowIso } from "../../utils/time.js"; const KUAISHOU_CLOUD_FIXED_VN_KEY = "1"; +type JsonObject = Record; + export function isKuaishouCloudTask(task) { return String(task?.executor_key || "").trim() === "kuaishou_ct_assisted"; } @@ -306,7 +306,10 @@ export async function ensureTaskClaimLink(task) { }; } -export async function prepareKuaishouCloudFulfillmentTask(task, options = {}) { +export async function prepareKuaishouCloudFulfillmentTask( + task, + options: JsonObject = {} +) { if (!isKuaishouCloudTask(task)) { throw createHttpError("当前任务不是快手 Cloud 履约任务", { statusCode: 409, @@ -534,7 +537,10 @@ export async function prepareKuaishouCloudFulfillmentTask(task, options = {}) { }; } -export async function refreshKuaishouCloudTaskBindUrl(task, options = {}) { +export async function refreshKuaishouCloudTaskBindUrl( + task, + options: JsonObject = {} +) { if (!isKuaishouCloudTask(task)) { throw createHttpError("当前任务不是快手 Cloud 履约任务", { statusCode: 409, @@ -704,7 +710,10 @@ export async function refreshKuaishouCloudTaskBindUrl(task, options = {}) { }; } -export async function probeKuaishouCloudTaskBindUrl(task, options = {}) { +export async function probeKuaishouCloudTaskBindUrl( + task, + options: JsonObject = {} +) { if (!isKuaishouCloudTask(task)) { throw createHttpError("当前任务不是快手 Cloud 履约任务", { statusCode: 409, @@ -800,7 +809,7 @@ export async function probeKuaishouCloudTaskBindUrl(task, options = {}) { */ async function markKuaishouCloudBindUrlRefreshFailed( task, - { taskContext, flow, now, actor, error } = {} + { taskContext, flow, now, actor, error }: JsonObject = {} ) { const errorMessage = error instanceof Error @@ -864,7 +873,10 @@ async function markKuaishouCloudBindUrlRefreshFailed( return updatedTask; } -export async function refreshKuaishouCloudTaskRoleInfo(task, options = {}) { +export async function refreshKuaishouCloudTaskRoleInfo( + task, + options: JsonObject = {} +) { if (!isKuaishouCloudTask(task)) { throw createHttpError("当前任务不是快手 Cloud 履约任务", { statusCode: 409, @@ -985,7 +997,10 @@ export async function refreshKuaishouCloudTaskRoleInfo(task, options = {}) { }; } -export async function dispatchKuaishouCloudFulfillmentTask(task, options = {}) { +export async function dispatchKuaishouCloudFulfillmentTask( + task, + options: JsonObject = {} +) { if (!isKuaishouCloudTask(task)) { throw createHttpError("当前任务不是快手 Cloud 履约任务", { statusCode: 409, @@ -1117,7 +1132,10 @@ export async function dispatchKuaishouCloudFulfillmentTask(task, options = {}) { }; } -export async function returnKuaishouCloudFulfillmentTask(task, options = {}) { +export async function returnKuaishouCloudFulfillmentTask( + task, + options: JsonObject = {} +) { if (!isKuaishouCloudTask(task)) { throw createHttpError("当前任务不是快手 Cloud 履约任务", { statusCode: 409, @@ -1424,7 +1442,7 @@ function resolveKuaishouCloudVnKeyCandidates(_input = {}) { return [KUAISHOU_CLOUD_FIXED_VN_KEY]; } -async function prepareKuaishouCloudBindResourceWithFallback(input = {}) { +async function prepareKuaishouCloudBindResourceWithFallback(input: JsonObject = {}) { const { cloudContext = {}, vnKeyCandidates = [] } = input; const candidates = Array.isArray(vnKeyCandidates) ? vnKeyCandidates : []; let lastError = null; diff --git a/docs/backend-typescript-migration-plan.md b/docs/backend-typescript-migration-plan.md index 15f92f7c..c6d14b45 100644 --- a/docs/backend-typescript-migration-plan.md +++ b/docs/backend-typescript-migration-plan.md @@ -695,6 +695,14 @@ - `npm run typecheck` - `npm run build` - `npm test` 共 139 个用例通过 +171. 快手 Cloud 核心履约任务服务迁移到 `.ts`: + - `src/services/fulfillment/kuaishou-cloud-task-service.ts` +172. 快手 Cloud 绑定准备、过期链接刷新、绑定链接探测、角色信息刷新、cloudtentacles 发货、退还虚拟号、快手电子券核销、履约 flow 归一化与敏感信息脱敏已进入 TS 编译链路;入口 options、失败标记 input 与虚拟号准备 input 补齐动态对象类型 +173. Docker 内验证通过: + - `src/services/order/kuaishou-cloud-fulfillment-config-service.test.js` 相关用例通过 + - `npm run typecheck` + - `npm run build` + - `npm test` 共 139 个用例通过 ## 下一步建议