增加兑换重试链路

This commit is contained in:
yml2213
2026-04-13 22:54:14 +08:00
parent bc0d6fc8aa
commit 0c2f2e0a12
12 changed files with 661 additions and 31 deletions
@@ -314,6 +314,7 @@ export async function getAdminTaskDetail(taskId, session = null) {
roleId: String(taskState.reviewRoleId || '').trim() || '',
roleName: String(taskState.reviewRoleName || '').trim() || '',
},
redeemResolution: mapRedeemResolutionContext(taskContext.redeemResolution),
manualDispatch: mapManualDispatchContext(taskContext.manualDispatch, viewerContext),
events: taskEvents.map(mapAdminTaskEvent),
operations: {
@@ -2017,6 +2018,42 @@ function mapManualDispatchContext(value, viewerContext = createAdminViewerContex
}
}
function mapRedeemResolutionContext(value) {
if (!value || typeof value !== 'object') {
return null
}
const attempts = Array.isArray(value.attempts)
? value.attempts
.map((attempt) => mapRedeemResolutionAttempt(attempt))
.filter(Boolean)
: []
return {
status: String(value.status || '').trim(),
taskStatus: String(value.taskStatus || '').trim(),
replacementCount: Math.max(0, Number(value.replacementCount || 0)),
finishedAt: value.finishedAt || null,
attempts,
}
}
function mapRedeemResolutionAttempt(value) {
if (!value || typeof value !== 'object') {
return null
}
return {
attempt: Math.max(1, Number(value.attempt || 1)),
inventoryItemId: Number(value.inventoryItemId || 0) || null,
codeMasked: String(value.codeMasked || '').trim(),
credentialType: String(value.credentialType || '').trim(),
outcome: String(value.outcome || '').trim(),
resultCode: String(value.resultCode || '').trim(),
resultMessage: String(value.resultMessage || '').trim(),
}
}
function normalizeManualDispatchOutcome(value) {
const normalized = String(value || '').trim().toLowerCase()