优化发码回调,失败停止整个流程
This commit is contained in:
@@ -63,6 +63,11 @@ async function insertKuaishouIndustryVoucher(
|
||||
consume_details_json,
|
||||
consumed_at,
|
||||
destroyed_at,
|
||||
send_callback_status,
|
||||
send_callback_attempt_count,
|
||||
send_callback_last_error,
|
||||
send_callback_response_json,
|
||||
send_callback_sent_at,
|
||||
raw_payload_json,
|
||||
created_at,
|
||||
updated_at
|
||||
@@ -82,9 +87,14 @@ async function insertKuaishouIndustryVoucher(
|
||||
$12::jsonb,
|
||||
$13,
|
||||
$14,
|
||||
$15::jsonb,
|
||||
$15,
|
||||
$16,
|
||||
$17
|
||||
$17,
|
||||
$18::jsonb,
|
||||
$19,
|
||||
$20::jsonb,
|
||||
$21,
|
||||
$22
|
||||
)
|
||||
ON CONFLICT (oid, unit_index) DO UPDATE
|
||||
SET
|
||||
@@ -100,6 +110,10 @@ async function insertKuaishouIndustryVoucher(
|
||||
task_id = COALESCE(kuaishou_industry_vouchers.task_id, EXCLUDED.task_id),
|
||||
valid_start_time = EXCLUDED.valid_start_time,
|
||||
valid_end_time = EXCLUDED.valid_end_time,
|
||||
send_callback_status = EXCLUDED.send_callback_status,
|
||||
send_callback_last_error = EXCLUDED.send_callback_last_error,
|
||||
send_callback_response_json = EXCLUDED.send_callback_response_json,
|
||||
send_callback_sent_at = EXCLUDED.send_callback_sent_at,
|
||||
raw_payload_json = EXCLUDED.raw_payload_json,
|
||||
updated_at = EXCLUDED.updated_at
|
||||
RETURNING *
|
||||
@@ -119,6 +133,11 @@ async function insertKuaishouIndustryVoucher(
|
||||
stringifyJson(input.consumeDetailsJson ?? []),
|
||||
input.consumedAt || null,
|
||||
input.destroyedAt || null,
|
||||
input.sendCallbackStatus || 'success',
|
||||
normalizeNonNegativeInteger(input.sendCallbackAttemptCount, 0),
|
||||
input.sendCallbackLastError || '',
|
||||
stringifyJson(input.sendCallbackResponseJson ?? {}),
|
||||
input.sendCallbackSentAt || null,
|
||||
stringifyJson(input.rawPayloadJson ?? {}),
|
||||
input.createdAt,
|
||||
input.updatedAt,
|
||||
@@ -277,6 +296,33 @@ function normalizeVoucherPatchColumns(
|
||||
columns.push({ column: 'destroyed_at', value: patch.destroyedAt || null })
|
||||
}
|
||||
|
||||
if (patch.sendCallbackStatus !== undefined) {
|
||||
columns.push({ column: 'send_callback_status', value: patch.sendCallbackStatus || 'success' })
|
||||
}
|
||||
|
||||
if (patch.sendCallbackAttemptCount !== undefined) {
|
||||
columns.push({
|
||||
column: 'send_callback_attempt_count',
|
||||
value: normalizeNonNegativeInteger(patch.sendCallbackAttemptCount, 0),
|
||||
})
|
||||
}
|
||||
|
||||
if (patch.sendCallbackLastError !== undefined) {
|
||||
columns.push({ column: 'send_callback_last_error', value: patch.sendCallbackLastError || '' })
|
||||
}
|
||||
|
||||
if (patch.sendCallbackResponseJson !== undefined) {
|
||||
columns.push({
|
||||
column: 'send_callback_response_json',
|
||||
value: stringifyJson(patch.sendCallbackResponseJson ?? {}),
|
||||
cast: '::jsonb',
|
||||
})
|
||||
}
|
||||
|
||||
if (patch.sendCallbackSentAt !== undefined) {
|
||||
columns.push({ column: 'send_callback_sent_at', value: patch.sendCallbackSentAt || null })
|
||||
}
|
||||
|
||||
if (patch.rawPayloadJson !== undefined) {
|
||||
columns.push({
|
||||
column: 'raw_payload_json',
|
||||
@@ -337,6 +383,11 @@ function normalizeNullableId(value: unknown): number | null {
|
||||
return Number.isFinite(parsed) && parsed > 0 ? parsed : null
|
||||
}
|
||||
|
||||
function normalizeNonNegativeInteger(value: unknown, fallback: number) {
|
||||
const parsed = Number(value)
|
||||
return Number.isInteger(parsed) && parsed >= 0 ? parsed : fallback
|
||||
}
|
||||
|
||||
function stringifyJson(value: unknown): string {
|
||||
if (typeof value === 'string') {
|
||||
return value
|
||||
|
||||
Reference in New Issue
Block a user