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)
}
// 三选一校验:MobileNo、IDCard、BankCard 必须且只能有一个
var fieldCount int
// MobileNo、IDCard、BankCard 中按优先级选择一个MobileNo > IDCard > BankCard
var selectedField string
var selectedValue string
if paramsDto.MobileNo != "" {
fieldCount++
selectedField = "mobile_no"
selectedValue = paramsDto.MobileNo
}
if paramsDto.IDCard != "" {
fieldCount++
} else if paramsDto.IDCard != "" {
selectedField = "id_card"
selectedValue = paramsDto.IDCard
}
if paramsDto.BankCard != "" {
fieldCount++
} else if paramsDto.BankCard != "" {
selectedField = "bank_card"
selectedValue = paramsDto.BankCard
}
if fieldCount == 0 {
if selectedField == "" {
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