增加电子凭证核销详情

This commit is contained in:
yml2213
2026-07-08 17:52:10 +08:00
parent 9a6d083096
commit 85209d8082
5 changed files with 201 additions and 0 deletions
@@ -168,6 +168,8 @@ function mapAdminKuaishouIndustryVoucher(voucher: {
send_callback_attempt_count?: unknown
send_callback_last_error?: unknown
send_callback_sent_at?: unknown
consume_serial_num?: unknown
consume_details_json?: unknown
consumed_at?: unknown
destroyed_at?: unknown
}) {
@@ -180,6 +182,8 @@ function mapAdminKuaishouIndustryVoucher(voucher: {
sendCallbackAttemptCount: Number(voucher.send_callback_attempt_count || 0) || 0,
sendCallbackLastError: String(voucher.send_callback_last_error || '').trim(),
sendCallbackSentAt: voucher.send_callback_sent_at || null,
consumeSerialNum: String(voucher.consume_serial_num || '').trim(),
consumeDetails: normalizeAdminJsonArray(voucher.consume_details_json),
consumedAt: voucher.consumed_at || null,
destroyedAt: voucher.destroyed_at || null,
}
@@ -382,11 +386,32 @@ function mapKuaishouIndustryVoucherContext(value: unknown): JsonRecord | null {
sendCallbackLastError: String(record.sendCallbackLastError || '').trim(),
sendCallbackAttemptCount: Number(record.sendCallbackAttemptCount || 0) || 0,
sendCallbackSentAt: record.sendCallbackSentAt || null,
consumeSerialNum: String(record.consumeSerialNum || '').trim(),
consumeDetails: normalizeAdminJsonArray(record.consumeDetails),
consumedAt: record.consumedAt || null,
destroyedAt: record.destroyedAt || null,
}
}
function normalizeAdminJsonArray(value: unknown): JsonRecord[] {
if (Array.isArray(value)) {
return value.filter((item): item is JsonRecord =>
Boolean(item && typeof item === 'object' && !Array.isArray(item)),
)
}
try {
const parsed = JSON.parse(String(value || '[]'))
return Array.isArray(parsed)
? parsed.filter((item): item is JsonRecord =>
Boolean(item && typeof item === 'object' && !Array.isArray(item)),
)
: []
} catch {
return []
}
}
function resolveKuaishouIndustryVoucherForTask(
task: TaskRow,
taskContext: JsonRecord,