This commit is contained in:
Mrx
2026-04-27 21:15:15 +08:00
parent e246271a24
commit 972d1a0217

View File

@@ -22,33 +22,24 @@ func ProcessFLXG8B4DRequest(ctx context.Context, params []byte, deps *processors
return nil, errors.Join(processors.ErrInvalidParam, err) return nil, errors.Join(processors.ErrInvalidParam, err)
} }
// 三选一校验:MobileNo、IDCard、BankCard 必须且只能有一个 // MobileNo、IDCard、BankCard 中按优先级选择一个MobileNo > IDCard > BankCard
var fieldCount int
var selectedField string var selectedField string
var selectedValue string var selectedValue string
if paramsDto.MobileNo != "" { if paramsDto.MobileNo != "" {
fieldCount++
selectedField = "mobile_no" selectedField = "mobile_no"
selectedValue = paramsDto.MobileNo selectedValue = paramsDto.MobileNo
} } else if paramsDto.IDCard != "" {
if paramsDto.IDCard != "" {
fieldCount++
selectedField = "id_card" selectedField = "id_card"
selectedValue = paramsDto.IDCard selectedValue = paramsDto.IDCard
} } else if paramsDto.BankCard != "" {
if paramsDto.BankCard != "" {
fieldCount++
selectedField = "bank_card" selectedField = "bank_card"
selectedValue = paramsDto.BankCard selectedValue = paramsDto.BankCard
} }
if fieldCount == 0 { if selectedField == "" {
return nil, fmt.Errorf("%s: %w", processors.ErrInvalidParam, errors.New("必须提供手机号、身份证号或银行卡号中的其中一个")) return nil, fmt.Errorf("%s: %w", processors.ErrInvalidParam, errors.New("必须提供手机号、身份证号或银行卡号中的其中一个"))
} }
if fieldCount > 1 {
return nil, fmt.Errorf("%s: %w", processors.ErrInvalidParam, errors.New("只能提供手机号、身份证号或银行卡号中的一个,不能同时提供多个"))
}
// 只对选中的字段进行加密 // 只对选中的字段进行加密
var encryptedValue string var encryptedValue string