fix comb298

This commit is contained in:
liangzai 2025-06-14 15:12:34 +08:00
parent d7763927ac
commit c8da895533
2 changed files with 44 additions and 33 deletions

View File

@ -109,17 +109,17 @@ func (l *COMB298YLogic) COMB298Y(req *types.Request) (resp string, err *errs.App
// 准备并发请求 // 准备并发请求
apiRequests := []APIRequest{ apiRequests := []APIRequest{
{SourceId: "G16BJ02", ServiceId: "YYSY09CD", Mapping: westmodel.YYSY09CDFieldMapping, Wrap: "data", Service: "west"}, // {SourceId: "G16BJ02", ServiceId: "YYSY09CD", Mapping: westmodel.YYSY09CDFieldMapping, Wrap: "data", Service: "west"},
{SourceId: "G27BJ05", ServiceId: "JRZQ0A03", Mapping: westmodel.JRZQ0A03FieldMapping, Wrap: "data", Service: "west"}, // {SourceId: "G27BJ05", ServiceId: "JRZQ0A03", Mapping: westmodel.JRZQ0A03FieldMapping, Wrap: "data", Service: "west"},
{SourceId: "G28BJ05", ServiceId: "JRZQ8203", Mapping: westmodel.JRZQ8203FieldMapping, Wrap: "data", Service: "west"}, // {SourceId: "G28BJ05", ServiceId: "JRZQ8203", Mapping: westmodel.JRZQ8203FieldMapping, Wrap: "data", Service: "west"},
{SourceId: "G26BJ05", ServiceId: "FLXG3D56", Mapping: westmodel.FLXG3D56FieldMapping, Wrap: "data", Service: "west"}, // {SourceId: "G26BJ05", ServiceId: "FLXG3D56", Mapping: westmodel.FLXG3D56FieldMapping, Wrap: "data", Service: "west"},
{SourceId: "G22SC01", ServiceId: "FLXGCA3D", Mapping: westmodel.FLXGCA3DFieldMapping, Wrap: "data", Service: "west"}, {SourceId: "G22SC01", ServiceId: "FLXGCA3D", Mapping: westmodel.FLXGCA3DFieldMapping, Wrap: "data", Service: "west"},
{SourceId: "G29BJ05", ServiceId: "JRZQ4AA8", Mapping: westmodel.JRZQ4AA8FieldMapping, Wrap: "data", Service: "west"}, // {SourceId: "G29BJ05", ServiceId: "JRZQ4AA8", Mapping: westmodel.JRZQ4AA8FieldMapping, Wrap: "data", Service: "west"},
{SourceId: "G30BJ05", ServiceId: "FLXGC9D1", Mapping: westmodel.FLXGC9D1FieldMapping, Wrap: "data", Service: "west"}, // {SourceId: "G30BJ05", ServiceId: "FLXGC9D1", Mapping: westmodel.FLXGC9D1FieldMapping, Wrap: "data", Service: "west"},
{SourceId: "G32BJ05", ServiceId: "FLXG162A", Mapping: westmodel.FLXG162AFieldMapping, Wrap: "data", Service: "west"}, // {SourceId: "G32BJ05", ServiceId: "FLXG162A", Mapping: westmodel.FLXG162AFieldMapping, Wrap: "data", Service: "west"},
{SourceId: "G03HZ01", ServiceId: "FLXG54F5", Mapping: westmodel.FLXG54F5FieldMapping, Wrap: "data", Service: "west"}, // {SourceId: "G03HZ01", ServiceId: "FLXG54F5", Mapping: westmodel.FLXG54F5FieldMapping, Wrap: "data", Service: "west"},
{SourceId: "G09XM02", ServiceId: "IVYZ5733", Mapping: westmodel.IVYZ5733FieldMapping, Wrap: "data", Service: "west"}, // {SourceId: "G09XM02", ServiceId: "IVYZ5733", Mapping: westmodel.IVYZ5733FieldMapping, Wrap: "data", Service: "west"},
{SourceId: "G11BJ06", ServiceId: "IVYZ9A2B", Mapping: westmodel.IVYZ9A2BFieldMapping, Wrap: "data", Service: "west"}, // {SourceId: "G11BJ06", ServiceId: "IVYZ9A2B", Mapping: westmodel.IVYZ9A2BFieldMapping, Wrap: "data", Service: "west"},
{SourceId: "G05HZ01", ServiceId: "QYGLB4C0", Mapping: westmodel.QYGLB4C0FieldMapping, Wrap: "", Service: "west"}, {SourceId: "G05HZ01", ServiceId: "QYGLB4C0", Mapping: westmodel.QYGLB4C0FieldMapping, Wrap: "", Service: "west"},
{SourceId: "RIS031", ServiceId: "FLXG8UI0", Mapping: westmodel.FLXG8UI0FieldMapping, Wrap: "data", Service: "yushan"}, {SourceId: "RIS031", ServiceId: "FLXG8UI0", Mapping: westmodel.FLXG8UI0FieldMapping, Wrap: "data", Service: "yushan"},
} }
@ -129,29 +129,32 @@ func (l *COMB298YLogic) COMB298Y(req *types.Request) (resp string, err *errs.App
if apiRequests[i].Service == "west" { if apiRequests[i].Service == "west" {
// 西部服务先加密后mapping // 西部服务先加密后mapping
westConfig := l.svcCtx.Config.WestConfig westConfig := l.svcCtx.Config.WestConfig
// 直接使用结构体进行加密 if apiRequests[i].SourceId == "G05HZ01" {
encryptedRequest, encryptErr := common.EncryptStructFields(data, westConfig.Key) // G05HZ01 不需要加密,直接使用原始数据
if encryptErr != nil {
logx.Errorf("西部加密错误:%v", encryptErr)
return "", errs.ErrSystem
}
// mapping
apiRequests[i].Request = common.MapStructToAPIRequest(encryptedRequest, apiRequests[i].Mapping, apiRequests[i].Wrap)
} else {
// 羽山服务直接mapping
dataMap, err := common.StructToMap(data) dataMap, err := common.StructToMap(data)
if err != nil { if err != nil {
logx.Errorf("结构体转map失败%v", err) logx.Errorf("结构体转map失败%v", err)
return "", errs.ErrSystem return "", errs.ErrSystem
} }
apiRequests[i].Request = common.MapStructToAPIRequest(dataMap, apiRequests[i].Mapping, apiRequests[i].Wrap) apiRequests[i].Request = common.MapStructToAPIRequest(dataMap, apiRequests[i].Mapping, apiRequests[i].Wrap)
} else {
// 其他西部服务需要加密
encryptedRequest, encryptErr := common.EncryptStructFields(data, westConfig.Key)
if encryptErr != nil {
logx.Errorf("西部加密错误:%v", encryptErr)
return "", errs.ErrSystem
}
apiRequests[i].Request = common.MapStructToAPIRequest(encryptedRequest, apiRequests[i].Mapping, apiRequests[i].Wrap)
}
} else {
// 如果是 RIS031添加 type: 3 // 如果是 RIS031添加 type: 3
if apiRequests[i].SourceId == "RIS031" { if apiRequests[i].SourceId == "RIS031" {
if apiRequests[i].Request == nil { apiRequests[i].Request = map[string]interface{}{
apiRequests[i].Request = make(map[string]interface{}) "data": map[string]interface{}{
"keyWord": data.IDCard,
"type": 3,
},
} }
apiRequests[i].Request["type"] = 3
} }
} }
logx.Infof("sourceId:%s,请求参数:%v", apiRequests[i].SourceId, apiRequests[i].Request) logx.Infof("sourceId:%s,请求参数:%v", apiRequests[i].SourceId, apiRequests[i].Request)
@ -173,14 +176,22 @@ func (l *COMB298YLogic) COMB298Y(req *types.Request) (resp string, err *errs.App
// 根据服务类型选择不同的调用方式 // 根据服务类型选择不同的调用方式
switch req.Service { switch req.Service {
case "west": case "west":
// 4、发送请求到西部 // 4、发送请求到西部
logx.Infof("交易号:%s", transactionID) logx.Infof("交易号:%s", transactionID)
var respData []byte
respData, err := l.svcCtx.WestDexService.CallAPI(req.SourceId, req.Request, l.svcCtx.Config.WestConfig.SecretId) var err error
if req.SourceId == "G05HZ01" {
respData, err = l.svcCtx.WestDexService.CallAPISecond(req.SourceId, req.Request, l.svcCtx.Config.WestConfig.SecretId)
} else {
respData, err = l.svcCtx.WestDexService.CallAPI(req.SourceId, req.Request, l.svcCtx.Config.WestConfig.SecretId)
}
if err != nil { if err != nil {
logx.Errorf("西部请求失败sourceId:%s,err:%v", req.SourceId, err) logx.Errorf("西部请求失败sourceId:%s,err:%v", req.SourceId, err)
callAPIErr = err if appErr, ok := err.(*errs.AppError); ok {
callAPIErr = appErr
} else {
callAPIErr = errs.ErrSystem
}
westResp = "{}" // 发生错误时返回空对象 westResp = "{}" // 发生错误时返回空对象
} else { } else {
// 确保返回的是有效的 JSON // 确保返回的是有效的 JSON

View File

@ -43,7 +43,7 @@ var FLXGC9D1FieldMapping = map[string]string{
"MobileNo": "cell", "MobileNo": "cell",
} }
var FLXGCA3DFieldMapping = map[string]string{ var FLXGCA3DFieldMapping = map[string]string{
"IDCard": "id_card", "IDCard": "idcard",
"Name": "name", "Name": "name",
"AuthDate": "inquired_auth", "AuthDate": "inquired_auth",
} }