fix(channels): sanitize card data and format suffixes
This commit is contained in:
+26
-11
@@ -133,10 +133,16 @@ export async function createChannelAction(
|
||||
return { success: false, error: "关联的部分账户不存在或已被删除" }
|
||||
}
|
||||
|
||||
// 自动提取或补全卡号后4位
|
||||
let suffix = val.cardNumberSuffix?.trim() || null
|
||||
if (!suffix && val.cardNumberFull && val.cardNumberFull.length >= 4) {
|
||||
suffix = val.cardNumberFull.slice(-4)
|
||||
// 自动提取并清洗纯数字卡号及后4位
|
||||
const cleanFull = val.cardNumberFull
|
||||
? val.cardNumberFull.replace(/\D/g, "")
|
||||
: ""
|
||||
const cleanSuffix = val.cardNumberSuffix
|
||||
? val.cardNumberSuffix.replace(/\D/g, "")
|
||||
: ""
|
||||
let suffix = cleanSuffix.slice(-4) || null
|
||||
if (!suffix && cleanFull.length >= 4) {
|
||||
suffix = cleanFull.slice(-4)
|
||||
}
|
||||
|
||||
const [newChannel] = await db
|
||||
@@ -151,8 +157,9 @@ export async function createChannelAction(
|
||||
region: val.region ? val.region.toUpperCase().trim() : null,
|
||||
issuerName: val.issuerName?.trim() || null,
|
||||
cardType: val.cardType || null,
|
||||
cardNumberFull: val.cardNumberFull?.trim() || null,
|
||||
cardNumberSuffix: suffix,
|
||||
cardNumberFull:
|
||||
val.channelType === "PAYMENT_CARD" ? cleanFull || null : null,
|
||||
cardNumberSuffix: val.channelType === "PAYMENT_CARD" ? suffix : null,
|
||||
cardBrand: val.cardBrand?.trim() || null,
|
||||
platform: val.platform?.trim() || null,
|
||||
platformAccountId: val.platformAccountId?.trim() || null,
|
||||
@@ -205,9 +212,16 @@ export async function updateChannelAction(
|
||||
return { success: false, error: "关联的部分账户不存在或已被删除" }
|
||||
}
|
||||
|
||||
let suffix = val.cardNumberSuffix?.trim() || null
|
||||
if (!suffix && val.cardNumberFull && val.cardNumberFull.length >= 4) {
|
||||
suffix = val.cardNumberFull.slice(-4)
|
||||
// 自动提取并清洗纯数字卡号及后4位
|
||||
const cleanFull = val.cardNumberFull
|
||||
? val.cardNumberFull.replace(/\D/g, "")
|
||||
: ""
|
||||
const cleanSuffix = val.cardNumberSuffix
|
||||
? val.cardNumberSuffix.replace(/\D/g, "")
|
||||
: ""
|
||||
let suffix = cleanSuffix.slice(-4) || null
|
||||
if (!suffix && cleanFull.length >= 4) {
|
||||
suffix = cleanFull.slice(-4)
|
||||
}
|
||||
|
||||
const [updated] = await db
|
||||
@@ -220,8 +234,9 @@ export async function updateChannelAction(
|
||||
region: val.region ? val.region.toUpperCase().trim() : null,
|
||||
issuerName: val.issuerName?.trim() || null,
|
||||
cardType: val.cardType || null,
|
||||
cardNumberFull: val.cardNumberFull?.trim() || null,
|
||||
cardNumberSuffix: suffix,
|
||||
cardNumberFull:
|
||||
val.channelType === "PAYMENT_CARD" ? cleanFull || null : null,
|
||||
cardNumberSuffix: val.channelType === "PAYMENT_CARD" ? suffix : null,
|
||||
cardBrand: val.cardBrand?.trim() || null,
|
||||
platform: val.platform?.trim() || null,
|
||||
platformAccountId: val.platformAccountId?.trim() || null,
|
||||
|
||||
Reference in New Issue
Block a user