This commit is contained in:
2025-08-13 19:34:02 +08:00
parent aa2e2b9195
commit 54479c13ba
2 changed files with 2880 additions and 313 deletions

View File

@@ -6,6 +6,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"io" "io"
"log"
"net/http" "net/http"
"net/url" "net/url"
"sort" "sort"
@@ -14,9 +15,9 @@ import (
"sync/atomic" "sync/atomic"
"time" "time"
"tyc-server/app/main/api/internal/config" "tyc-server/app/main/api/internal/config"
tianyuanapi "tyc-server/app/main/api/internal/service/tianyuanapi_sdk"
"tyc-server/app/main/model" "tyc-server/app/main/model"
"tyc-server/pkg/lzkit/crypto" "tyc-server/pkg/lzkit/crypto"
"tyc-server/pkg/lzkit/lzUtils"
"github.com/Masterminds/squirrel" "github.com/Masterminds/squirrel"
"github.com/tidwall/gjson" "github.com/tidwall/gjson"
@@ -28,13 +29,12 @@ type ApiRequestService struct {
westDexService *WestDexService westDexService *WestDexService
yushanService *YushanService yushanService *YushanService
tianjuService *TianjuService tianjuService *TianjuService
tianyuanapiService *tianyuanapi.Client
featureModel model.FeatureModel featureModel model.FeatureModel
productFeatureModel model.ProductFeatureModel productFeatureModel model.ProductFeatureModel
} }
// NewApiRequestService 是一个构造函数,用于初始化 ApiRequestService // NewApiRequestService 是一个构造函数,用于初始化 ApiRequestService
func NewApiRequestService(c config.Config, westDexService *WestDexService, yushanService *YushanService, tianjuService *TianjuService, tianyuanapiService *tianyuanapi.Client, featureModel model.FeatureModel, productFeatureModel model.ProductFeatureModel) *ApiRequestService { func NewApiRequestService(c config.Config, westDexService *WestDexService, yushanService *YushanService, tianjuService *TianjuService, featureModel model.FeatureModel, productFeatureModel model.ProductFeatureModel) *ApiRequestService {
return &ApiRequestService{ return &ApiRequestService{
config: c, config: c,
featureModel: featureModel, featureModel: featureModel,
@@ -42,7 +42,6 @@ func NewApiRequestService(c config.Config, westDexService *WestDexService, yusha
westDexService: westDexService, westDexService: westDexService,
yushanService: yushanService, yushanService: yushanService,
tianjuService: tianjuService, tianjuService: tianjuService,
tianyuanapiService: tianyuanapiService,
} }
} }
@@ -266,16 +265,14 @@ func (a *ApiRequestService) ProcessG09SC02Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "certNumMan": a.westDexService.Encrypt(idCard.String()),
"nameMan": a.westDexService.Encrypt(name.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("IVYZ5733", request) resp, callApiErr := a.westDexService.CallAPI("G09SC02", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
result := gjson.GetBytes(resp, "data.0.maritalStatus") result := gjson.GetBytes(resp, "data.0.maritalStatus")
@@ -303,17 +300,15 @@ func (a *ApiRequestService) ProcessG27BJ05Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "id": a.westDexService.Encrypt(idCard.String()),
"mobile_no": mobile.String(), "name": a.westDexService.Encrypt(name.String()),
"cell": a.westDexService.Encrypt(mobile.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("JRZQ0A03", request) resp, callApiErr := a.westDexService.CallAPI("G27BJ05", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
// 获取 code 字段 // 获取 code 字段
codeResult := gjson.GetBytes(resp, "code") codeResult := gjson.GetBytes(resp, "code")
@@ -360,18 +355,16 @@ func (a *ApiRequestService) ProcessG26BJ05Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "id": a.westDexService.Encrypt(idCard.String()),
"mobile_no": mobile.String(), "name": a.westDexService.Encrypt(name.String()),
"time_range": "5", "cell": a.westDexService.Encrypt(mobile.String()),
"time_range": 5,
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("G26BJ05", request) resp, callApiErr := a.westDexService.CallAPI("G26BJ05", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
codeResult := gjson.GetBytes(resp, "code") codeResult := gjson.GetBytes(resp, "code")
if !codeResult.Exists() { if !codeResult.Exists() {
@@ -416,16 +409,14 @@ func (a *ApiRequestService) ProcessG34BJ03Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"id_card": idCard.String(), "data": map[string]interface{}{
"name": name.String(), "id_card": a.westDexService.Encrypt(idCard.String()),
"name": a.westDexService.Encrypt(name.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("FLXG0V3B", request) resp, callApiErr := a.westDexService.CallAPI("G34BJ03", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
dataResult := gjson.GetBytes(resp, "negative_info.data.risk_level") dataResult := gjson.GetBytes(resp, "negative_info.data.risk_level")
if dataResult.Exists() { if dataResult.Exists() {
@@ -452,16 +443,15 @@ func (a *ApiRequestService) ProcessG35SC01Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"id_card": idCard.String(), "data": map[string]interface{}{
"name": name.String(), "idcard": a.westDexService.Encrypt(idCard.String()),
"name": a.westDexService.Encrypt(name.String()),
"inquired_auth": a.westDexService.GetDateRange(),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("FLXGCA3D", request) resp, callApiErr := a.westDexService.CallAPI("G35SC01", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
// 第一步:提取外层的 data 字段 // 第一步:提取外层的 data 字段
dataResult := gjson.GetBytes(resp, "data") dataResult := gjson.GetBytes(resp, "data")
@@ -511,17 +501,15 @@ func (a *ApiRequestService) ProcessG28BJ05Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "id": a.westDexService.Encrypt(idCard.String()),
"mobile_no": mobile.String(), "name": a.westDexService.Encrypt(name.String()),
"cell": a.westDexService.Encrypt(mobile.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("JRZQ8203", request) resp, callApiErr := a.westDexService.CallAPI("G28BJ05", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
// 获取 code 字段 // 获取 code 字段
codeResult := gjson.GetBytes(resp, "code") codeResult := gjson.GetBytes(resp, "code")
@@ -604,19 +592,17 @@ func (a *ApiRequestService) ProcessQ23SC01Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"ent_code": entCode.String(), "data": map[string]interface{}{
"ent_name": entName.String(), "uscc": a.westDexService.Encrypt(entCode.String()),
"org_name": a.westDexService.Encrypt(entName.String()),
"inquired_auth": a.westDexService.GetDateRange(), "inquired_auth": a.westDexService.GetDateRange(),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("QYGL8261", request) resp, callApiErr := a.westDexService.CallAPI("Q23SC01", request)
if err != nil {
return nil, err
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
}
logx.Infof("企业涉诉返回%+v", string(resp)) logx.Infof("企业涉诉返回%+v", string(resp))
if callApiErr != nil {
return nil, callApiErr
}
// 第一步:提取外层的 data 字段 // 第一步:提取外层的 data 字段
dataResult := gjson.GetBytes(resp, "data") dataResult := gjson.GetBytes(resp, "data")
if !dataResult.Exists() { if !dataResult.Exists() {
@@ -666,17 +652,15 @@ func (a *ApiRequestService) ProcessG15BJ02Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "name": a.westDexService.Encrypt(name.String()),
"mobile_no": mobile.String(), "idNo": a.westDexService.Encrypt(idCard.String()),
"phone": a.westDexService.Encrypt(mobile.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("YYSY6F2E", request) resp, callApiErr := a.westDexService.CallAPI("G15BJ02", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
dataResult := gjson.GetBytes(resp, "data.code") dataResult := gjson.GetBytes(resp, "data.code")
if !dataResult.Exists() { if !dataResult.Exists() {
@@ -702,16 +686,14 @@ func (a *ApiRequestService) ProcessG17BJ02Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"mobile_no": mobile.String(), "name": a.westDexService.Encrypt(name.String()),
"phone": a.westDexService.Encrypt(mobile.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("YYSYBE08", request) resp, callApiErr := a.westDexService.CallAPI("G17BJ02", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
dataResult := gjson.GetBytes(resp, "data.code") dataResult := gjson.GetBytes(resp, "data.code")
if !dataResult.Exists() { if !dataResult.Exists() {
@@ -737,16 +719,14 @@ func (a *ApiRequestService) ProcessG08SC02Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "xm": a.westDexService.Encrypt(name.String()),
"gmsfzhm": a.westDexService.Encrypt(idCard.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("IVYZ385E", request) resp, callApiErr := a.westDexService.CallAPI("G08SC02", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
return &APIInternalResult{ return &APIInternalResult{
Data: resp, Data: resp,
@@ -1101,57 +1081,42 @@ func (a *ApiRequestService) ProcessG10SC02Request(ctx context.Context, params []
// 构造请求数据 // 构造请求数据
request := map[string]interface{}{ request := map[string]interface{}{
"man_id_card": idCardMan.String(), "data": map[string]interface{}{
"man_name": nameMan.String(), "certNumMan": a.westDexService.Encrypt(idCardMan.String()),
"woman_id_card": idCardWoman.String(), "nameMan": a.westDexService.Encrypt(nameMan.String()),
"woman_name": nameWoman.String(), "certNumWoman": a.westDexService.Encrypt(idCardWoman.String()),
"nameWoman": a.westDexService.Encrypt(nameWoman.String()),
},
} }
// 调用 API // 调用 API
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("IVYZ9363", request) resp, callApiErr := a.westDexService.CallAPI("G10SC02", request)
if err != nil && tianyuanapiResp == nil { if callApiErr != nil {
return nil, err return nil, callApiErr
} }
resp, err := convertTianyuanResponse(tianyuanapiResp)
// 解析响应数据
code := gjson.GetBytes(resp, "code").String()
// 状态码校验
if code != "200" {
return nil, fmt.Errorf("婚姻查询失败:%s", string(resp))
}
result := gjson.GetBytes(resp, "data.0.maritalStatus")
if result.Exists() {
responseMap := map[string]string{"status": result.String()}
jsonResponse, err := json.Marshal(responseMap)
if err != nil { if err != nil {
return nil, err return nil, err
} }
result := gjson.GetBytes(resp, "data.data")
if !result.Exists() {
return nil, fmt.Errorf("婚姻状态查询失败")
}
// 获取原始结果
rawResult := result.String()
// 根据结果转换状态码
var statusCode string
switch {
case strings.HasPrefix(rawResult, "INR"):
statusCode = "0" // 匹配不成功
case strings.HasPrefix(rawResult, "IA"):
statusCode = "1" // 结婚
case strings.HasPrefix(rawResult, "IB"):
statusCode = "2" // 离婚
default:
return nil, fmt.Errorf("婚姻状态查询失败,未知状态码: %s", statusCode)
}
// 构建新的返回结果
response := map[string]string{
"status": statusCode,
}
// 序列化为JSON
jsonResponse, err := json.Marshal(response)
if err != nil {
return nil, fmt.Errorf("序列化结果失败: %v", err)
}
return &APIInternalResult{ return &APIInternalResult{
Data: jsonResponse, Data: jsonResponse,
}, nil }, nil
} else {
return nil, errors.New("查询为空")
}
} }
// 手机号码风险 // 手机号码风险
@@ -1163,15 +1128,13 @@ func (a *ApiRequestService) ProcessG03HZ01Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"mobile_no": mobile.String(), "data": map[string]interface{}{
"mobile": a.westDexService.Encrypt(mobile.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("FLXG54F5", request) resp, callApiErr := a.westDexService.CallAPI("G03HZ01", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
// 获取 code 字段 // 获取 code 字段
codeResult := gjson.GetBytes(resp, "code") codeResult := gjson.GetBytes(resp, "code")
@@ -1196,15 +1159,13 @@ func (a *ApiRequestService) ProcessG02BJ02Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"mobile_no": mobile.String(), "data": map[string]interface{}{
"phone": a.westDexService.Encrypt(mobile.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("YYSY4B37", request) resp, callApiErr := a.westDexService.CallAPI("G02BJ02", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
// 获取 code 字段 // 获取 code 字段
codeResult := gjson.GetBytes(resp, "code") codeResult := gjson.GetBytes(resp, "code")
@@ -1230,16 +1191,14 @@ func (a *ApiRequestService) ProcessG19BJ02Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"mobile_no": mobile.String(), "data": map[string]interface{}{
"start_date": startDate.String(), "phone": a.westDexService.Encrypt(mobile.String()),
"startDate": startDate.String(),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("YYSYF7DB", request) resp, callApiErr := a.westDexService.CallAPI("G19BJ02", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
// 获取 code 字段 // 获取 code 字段
codeResult := gjson.GetBytes(resp, "code") codeResult := gjson.GetBytes(resp, "code")
@@ -1267,18 +1226,16 @@ func (a *ApiRequestService) ProcessG20GZ01Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "name": a.westDexService.Encrypt(name.String()),
"bank_card": bankCard.String(), "idcard": a.westDexService.Encrypt(idCard.String()),
"mobile_no": mobile.String(), "acc_no": a.westDexService.Encrypt(bankCard.String()),
"mobile": a.westDexService.Encrypt(mobile.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("JRZQDCBE", request) resp, callApiErr := a.westDexService.CallAPI("G20GZ01", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
// 获取 code 字段 // 获取 code 字段
codeResult := gjson.GetBytes(resp, "code") codeResult := gjson.GetBytes(resp, "code")
@@ -1291,7 +1248,7 @@ func (a *ApiRequestService) ProcessG20GZ01Request(ctx context.Context, params []
} }
// 解析 data.Raw 字符串为接口类型 // 解析 data.Raw 字符串为接口类型
var parsedData interface{} var parsedData interface{}
err = json.Unmarshal([]byte(data.String()), &parsedData) err := json.Unmarshal([]byte(data.String()), &parsedData)
if err != nil { if err != nil {
return nil, fmt.Errorf("解析 data 失败: %v", err) return nil, fmt.Errorf("解析 data 失败: %v", err)
} }
@@ -1317,21 +1274,29 @@ func (a *ApiRequestService) ProcessG37SC01Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "name": a.westDexService.Encrypt(name.String()),
"idcard": a.westDexService.Encrypt(idCard.String()),
"auth_authorizeFileCode": a.westDexService.Encrypt("CON0120250730743901"),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("FLXG8A3F", request) resp, callApiErr := a.westDexService.CallAPI("G37SC01", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
} }
resp, err := convertTianyuanResponse(tianyuanapiResp) parseResult, parseErr := lzUtils.ParseJsonResponse(resp)
if err != nil { if parseErr != nil {
return nil, err return nil, parseErr
} }
// 通过gjson获取指定路径的数据
contentResult := gjson.GetBytes(parseResult, "G37SC0101.G37SC0102.content")
if contentResult.Exists() {
return &APIInternalResult{ return &APIInternalResult{
Data: resp, Data: []byte(contentResult.Raw),
}, nil }, nil
} else {
return nil, fmt.Errorf("找不到数据")
}
} }
// G36SC01 自然人限高信息 // G36SC01 自然人限高信息
@@ -1344,21 +1309,29 @@ func (a *ApiRequestService) ProcessG36SC01Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "name": a.westDexService.Encrypt(name.String()),
"idcard": a.westDexService.Encrypt(idCard.String()),
"auth_authorizeFileCode": a.westDexService.Encrypt("CON0120250730743901"),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("FLXG5B2E", request) resp, callApiErr := a.westDexService.CallAPI("G36SC01", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
} }
resp, err := convertTianyuanResponse(tianyuanapiResp) parseResult, parseErr := lzUtils.ParseJsonResponse(resp)
if err != nil { if parseErr != nil {
return nil, err return nil, parseErr
} }
// 通过gjson获取指定路径的数据
contentResult := gjson.GetBytes(parseResult, "G36SC0101.G36SC0102.content")
if contentResult.Exists() {
return &APIInternalResult{ return &APIInternalResult{
Data: resp, Data: []byte(contentResult.Raw),
}, nil }, nil
} else {
return nil, fmt.Errorf("找不到数据")
}
} }
// G22SC01 自然人司法模型 // G22SC01 自然人司法模型
@@ -1371,21 +1344,32 @@ func (a *ApiRequestService) ProcessG22SC01Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "name": a.westDexService.Encrypt(name.String()),
"idcard": a.westDexService.Encrypt(idCard.String()),
"auth_authorizeFileCode": a.westDexService.Encrypt("CON0120250730743901"),
"inquired_auth": fmt.Sprintf("authed:%s", a.westDexService.GetDateRange()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("FLXG0V4B", request) log.Printf("G22SC01 request: %+v", request)
if err != nil { resp, callApiErr := a.westDexService.CallAPI("G22SC01", request)
return nil, err if callApiErr != nil {
return nil, callApiErr
} }
resp, err := convertTianyuanResponse(tianyuanapiResp) // 正常返回 - 不管有没有deps.Options.Json都进行ParseJsonResponse
if err != nil { parseResult, parseErr := lzUtils.ParseJsonResponse(resp)
return nil, err if parseErr != nil {
return nil, parseErr
} }
// 通过gjson获取指定路径的数据
contentResult := gjson.GetBytes(parseResult, "G22SC0101.G22SC0102.content")
if contentResult.Exists() {
return &APIInternalResult{ return &APIInternalResult{
Data: resp, Data: []byte(contentResult.Raw),
}, nil }, nil
} else {
return nil, fmt.Errorf("找不到数据")
}
} }
// Q03SC01 企业涉诉信息 // Q03SC01 企业涉诉信息
@@ -1398,22 +1382,30 @@ func (a *ApiRequestService) ProcessQ03SC01Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"ent_code": entCode.String(), "data": map[string]interface{}{
"ent_name": entName.String(), "uscc": a.westDexService.Encrypt(entCode.String()),
"org_name": a.westDexService.Encrypt(entName.String()),
"auth_authorizeFileCode": a.westDexService.Encrypt("CON0120250730743901"),
"inquired_auth": fmt.Sprintf("authed:%s", a.westDexService.GetDateRange()), "inquired_auth": fmt.Sprintf("authed:%s", a.westDexService.GetDateRange()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("QYGL8271", request) resp, callApiErr := a.westDexService.CallAPI("Q03SC01", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
} }
resp, err := convertTianyuanResponse(tianyuanapiResp) parseResult, parseErr := lzUtils.ParseJsonResponse(resp)
if err != nil { if parseErr != nil {
return nil, err return nil, parseErr
} }
// 通过gjson获取指定路径的数据
contentResult := gjson.GetBytes(parseResult, "Q03SC0101.Q03SC0102.content")
if contentResult.Exists() {
return &APIInternalResult{ return &APIInternalResult{
Data: resp, Data: []byte(contentResult.Raw),
}, nil }, nil
} else {
return nil, fmt.Errorf("找不到数据")
}
} }
// 出境限制查询 // 出境限制查询
@@ -1737,17 +1729,16 @@ func (a *ApiRequestService) ProcessLayoutIdcardRequest(ctx context.Context, para
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "xM": a.westDexService.Encrypt(name.String()),
"gMSFZHM": a.westDexService.Encrypt(idCard.String()),
"customerNumber": a.config.WestConfig.SecretId,
"timeStamp": fmt.Sprintf("%d", time.Now().UnixNano()/int64(time.Millisecond)),
},
} }
// 注意layoutIdcard在api.json中没有对应的serviceId需要根据实际情况调整 resp, callApiErr := a.westDexService.CallAPI("layoutIdcard", request)
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("YYSYBE08", request) if callApiErr != nil {
if err != nil { return nil, callApiErr
return nil, err
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
// 使用gjson获取resultCode // 使用gjson获取resultCode
resultCode := gjson.GetBytes(resp, "ctidRequest.ctidAuth.resultCode") resultCode := gjson.GetBytes(resp, "ctidRequest.ctidAuth.resultCode")
@@ -2231,17 +2222,15 @@ func (a *ApiRequestService) ProcessG30BJ05Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "name": a.westDexService.Encrypt(name.String()),
"mobile_no": Mobile.String(), "id": a.westDexService.Encrypt(idCard.String()),
"cell": a.westDexService.Encrypt(Mobile.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("FLXGC9D1", request) resp, callApiErr := a.westDexService.CallAPI("G30BJ05", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
fmt.Println(resp) fmt.Println(resp)
flagBlackgraylevel := gjson.GetBytes(resp, "flag_blackgraylevel") flagBlackgraylevel := gjson.GetBytes(resp, "flag_blackgraylevel")
@@ -2270,17 +2259,15 @@ func (a *ApiRequestService) ProcessG31BJ05Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "name": a.westDexService.Encrypt(name.String()),
"mobile_no": Mobile.String(), "id": a.westDexService.Encrypt(idCard.String()),
"cell": a.westDexService.Encrypt(Mobile.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("FLXG9687", request) resp, callApiErr := a.westDexService.CallAPI("G31BJ05", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
fmt.Println(resp) fmt.Println(resp)
flagTelefraudpredictstd := gjson.GetBytes(resp, "flag_telefraudpredictstd") flagTelefraudpredictstd := gjson.GetBytes(resp, "flag_telefraudpredictstd")
@@ -2309,17 +2296,15 @@ func (a *ApiRequestService) ProcessG32BJ05Request(ctx context.Context, params []
} }
request := map[string]interface{}{ request := map[string]interface{}{
"name": name.String(), "data": map[string]interface{}{
"id_card": idCard.String(), "name": a.westDexService.Encrypt(name.String()),
"mobile_no": Mobile.String(), "id": a.westDexService.Encrypt(idCard.String()),
"cell": a.westDexService.Encrypt(Mobile.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("FLXG162A", request) resp, callApiErr := a.westDexService.CallAPI("G32BJ05", request)
if err != nil { if callApiErr != nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
flagFraudrelation := gjson.GetBytes(resp, "flag_fraudrelation") flagFraudrelation := gjson.GetBytes(resp, "flag_fraudrelation")
@@ -2357,19 +2342,16 @@ func (a *ApiRequestService) ProcessG09XM02Request(ctx context.Context, params []
if !idCard.Exists() || !name.Exists() { if !idCard.Exists() || !name.Exists() {
return nil, errors.New("api请求, G09XM02, 获取相关参数失败") return nil, errors.New("api请求, G09XM02, 获取相关参数失败")
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("IVYZ5733", map[string]interface{}{ request := map[string]interface{}{
"id_card": idCard.String(), "data": map[string]interface{}{
"name": name.String(), "idCard": a.westDexService.Encrypt(idCard.String()),
}) "name": a.westDexService.Encrypt(name.String()),
},
if err != nil {
return nil, err
} }
resp, err := convertTianyuanResponse(tianyuanapiResp) resp, err := a.westDexService.CallAPI("G09XM02", request)
if err != nil { if err != nil && resp == nil {
return nil, err return nil, fmt.Errorf("婚姻状态查询失败: %v", err)
} }
result := gjson.GetBytes(resp, "data.data") result := gjson.GetBytes(resp, "data.data")
if !result.Exists() { if !result.Exists() {
return nil, fmt.Errorf("婚姻状态查询失败") return nil, fmt.Errorf("婚姻状态查询失败")
@@ -2421,20 +2403,18 @@ func (a *ApiRequestService) ProcessG10XM02Request(ctx context.Context, params []
// 构造请求数据 // 构造请求数据
request := map[string]interface{}{ request := map[string]interface{}{
"man_id_card": idCardMan.String(), "data": map[string]interface{}{
"man_name": nameMan.String(), "idCardMan": a.westDexService.Encrypt(idCardMan.String()),
"woman_id_card": idCardWoman.String(), "nameMan": a.westDexService.Encrypt(nameMan.String()),
"woman_name": nameWoman.String(), "idCardWoman": a.westDexService.Encrypt(idCardWoman.String()),
"nameWoman": a.westDexService.Encrypt(nameWoman.String()),
},
} }
// 调用 API // 调用 API
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("IVYZ9363", request) resp, callApiErr := a.westDexService.CallAPI("G10XM02", request)
if err != nil && tianyuanapiResp == nil { if callApiErr != nil && resp == nil {
return nil, err return nil, callApiErr
}
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
} }
result := gjson.GetBytes(resp, "data.data") result := gjson.GetBytes(resp, "data.data")
@@ -2480,17 +2460,15 @@ func (a *ApiRequestService) ProcessG11BJ06Request(ctx context.Context, params []
return nil, errors.New("api请求, G11BJ06, 获取相关参数失败") return nil, errors.New("api请求, G11BJ06, 获取相关参数失败")
} }
request := map[string]interface{}{ request := map[string]interface{}{
"id_card": name.String(), "data": map[string]interface{}{
"name": name.String(), "id_card_value": a.westDexService.Encrypt(idCard.String()),
"name_value": a.westDexService.Encrypt(name.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("IVYZ9A2B", request) resp, err := a.westDexService.CallAPI("G11BJ06", request)
if err != nil && tianyuanapiResp == nil { if err != nil && resp == nil {
return nil, fmt.Errorf("教育经历核验查询失败: %v", err) return nil, fmt.Errorf("教育经历核验查询失败: %v", err)
} }
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
}
// 解析响应 // 解析响应
codeResult := gjson.GetBytes(resp, "data.education_background.code") codeResult := gjson.GetBytes(resp, "data.education_background.code")
@@ -2551,18 +2529,16 @@ func (a *ApiRequestService) ProcessG29BJ05Request(ctx context.Context, params []
return nil, errors.New("api请求, G29BJ05, 获取相关参数失败") return nil, errors.New("api请求, G29BJ05, 获取相关参数失败")
} }
request := map[string]interface{}{ request := map[string]interface{}{
"id_card": idCard.String(), "data": map[string]interface{}{
"name": name.String(), "id": a.westDexService.Encrypt(idCard.String()),
"mobile_no": mobile.String(), "name": a.westDexService.Encrypt(name.String()),
"cell": a.westDexService.Encrypt(mobile.String()),
},
} }
tianyuanapiResp, err := a.tianyuanapiService.CallInterface("JRZQ4AA8", request) resp, err := a.westDexService.CallAPI("G29BJ05", request)
if err != nil && tianyuanapiResp == nil { if err != nil && resp == nil {
return nil, fmt.Errorf("偿贷压力查询失败: %v", err) return nil, fmt.Errorf("偿贷压力查询失败: %v", err)
} }
resp, err := convertTianyuanResponse(tianyuanapiResp)
if err != nil {
return nil, err
}
// 获取响应码和偿贷压力标志 // 获取响应码和偿贷压力标志
code := gjson.GetBytes(resp, "code").String() code := gjson.GetBytes(resp, "code").String()
flagDebtRepayStress := gjson.GetBytes(resp, "flag_debtrepaystress").String() flagDebtRepayStress := gjson.GetBytes(resp, "flag_debtrepaystress").String()
@@ -2589,8 +2565,3 @@ func (a *ApiRequestService) ProcessG29BJ05Request(ctx context.Context, params []
Data: jsonResult, Data: jsonResult,
}, nil }, nil
} }
// 辅助函数将天远API响应转换为JSON字节数组
func convertTianyuanResponse(resp *tianyuanapi.Response) ([]byte, error) {
return json.Marshal(resp.Data)
}

File diff suppressed because it is too large Load Diff