feat(kuaishou-industry): 实现电子凭证自动核销推进器与查码流程优化

- 新增 voucher-auto-consume-service,对非发单平台大厅待发布任务实现生成即核销与发码成功闭环核销
- 严格保留发单平台待发布工单(pending_material/unassigned)在大厅发布时核销逻辑
- manual-executor 在任务生成进入 MANUAL_REVIEW 时直接触发核销
- send-code-service 在发码出站回调成功后自动调度非大厅任务的凭证核销
- 优化 query-code-service 查码接口,避免发码初期误报 4012002 订单不存在
- 标记废弃 kuaishou_feifei 渠道模块
- 补齐 voucher-auto-consume-service 单元测试用例
This commit is contained in:
yml2213
2026-09-10 10:01:40 +08:00
parent 4544622cb3
commit 076b113ae5
8 changed files with 601 additions and 21 deletions
@@ -9,6 +9,9 @@ import {
} from './types.js'
import type { TaskRow } from '../../../types/repository/rows.js'
/**
* @deprecated 待移除,快手飞飞直充渠道已废弃,不再使用。
*/
export const kuaishouFeifeiExecutor: FulfillmentExecutor = {
key: FULFILLMENT_EXECUTOR_KEYS.KUAISHOU_FEIFEI,
preparePaidTask,
@@ -1,4 +1,5 @@
import { TASK_STATUS } from '../../../domain/task-status.js'
import { autoConsumeKuaishouIndustryVouchersForTask } from '../../platforms/kuaishou-industry/voucher-auto-consume-service.js'
import {
FULFILLMENT_EXECUTOR_KEYS,
type FulfillmentExecutor,
@@ -29,5 +30,12 @@ async function preparePaidTask(
source: 'manual_dispatch_profile',
})
const effectiveTask = updatedTask || task
await autoConsumeKuaishouIndustryVouchersForTask(effectiveTask, {
source: 'manual_dispatch_prepared',
}).catch(() => {
// 忽略异常,发码回调完成后仍会自动补核销
})
return updatedTask
}
@@ -18,6 +18,9 @@ import { buildKuaishouIndustryVoucherContext } from '../../platforms/kuaishou-in
import { normalizeShortLinkPayload } from '../../short-links/short-link-service.js'
import type { TaskRow } from '../../../types/repository/rows.js'
/**
* @deprecated 待移除,快手飞飞直充渠道已废弃,不再使用。
*/
export function isKuaishouFeifeiTask(task: Partial<TaskRow> | null | undefined) {
return String(task?.executor_key || '').trim() === 'kuaishou_feifei'
}