优化快手 Cloud 主链路状态机
This commit is contained in:
@@ -6,10 +6,11 @@ import { createHttpError } from '../../utils/http.js'
|
||||
import { formatFenToAmount, normalizeFen } from '../../utils/money.js'
|
||||
import { parseTaskContext as parseTaskContextValue } from '../../utils/task-json.js'
|
||||
import { nowIso } from '../../utils/time.js'
|
||||
import { TASK_STATUS, isTaskFinalStatus } from '../../domain/task-status.js'
|
||||
import { buildClaimUrl } from './claim-service.js'
|
||||
import type { ClaimTokenRow, OrderItemRow, OrderRow, TaskRow } from '../../types/repository/rows.js'
|
||||
|
||||
export const CLAIM_TERMINAL_STATUSES = new Set(['expired', 'closed'])
|
||||
export const CLAIM_TERMINAL_STATUSES = new Set([TASK_STATUS.EXPIRED, TASK_STATUS.CLOSED])
|
||||
export const KUAISHOU_CLOUD_CLAIM_GUIDE_BASE_PATH = '/kuaishou-cloud-guide'
|
||||
|
||||
type JsonObject = Record<string, any>
|
||||
@@ -410,16 +411,16 @@ function isClaimPlaceholderSkuName(value: string) {
|
||||
async function expireClaimContext(claimToken: ClaimTokenRow, task: TaskRow) {
|
||||
const now = nowIso()
|
||||
const nextClaimToken = await updateClaimToken(claimToken.id, {
|
||||
status: 'expired',
|
||||
status: TASK_STATUS.EXPIRED,
|
||||
updated_at: now,
|
||||
})
|
||||
|
||||
let nextTask = task
|
||||
|
||||
if (!CLAIM_TERMINAL_STATUSES.has(String(task.task_status || '')) && task.task_status !== 'redeemed') {
|
||||
if (!isTaskFinalStatus(task.task_status)) {
|
||||
nextTask = await updateTask(task.id, {
|
||||
task_status: 'expired',
|
||||
user_action_status: 'expired',
|
||||
task_status: TASK_STATUS.EXPIRED,
|
||||
user_action_status: TASK_STATUS.EXPIRED,
|
||||
last_error: '领取链接已过期',
|
||||
updated_at: now,
|
||||
}) || task
|
||||
|
||||
Reference in New Issue
Block a user