fix qygl8271
This commit is contained in:
@@ -13,6 +13,79 @@ import (
|
|||||||
"github.com/tidwall/gjson"
|
"github.com/tidwall/gjson"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// ProcessFLXG0V4BRequest FLXG0V4B API处理方法
|
||||||
|
func ProcessFLXG0V4BRequest(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) {
|
||||||
|
var paramsDto dto.FLXG0V4BReq
|
||||||
|
if err := json.Unmarshal(params, ¶msDto); err != nil {
|
||||||
|
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := deps.Validator.ValidateStruct(paramsDto); err != nil {
|
||||||
|
return nil, fmt.Errorf("%s: %w", processors.ErrInvalidParam, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
encryptedName, err := deps.WestDexService.Encrypt(paramsDto.Name)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
encryptedIDCard, err := deps.WestDexService.Encrypt(paramsDto.IDCard)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
||||||
|
}
|
||||||
|
encryptedAuthAuthorizeFileCode, err := deps.WestDexService.Encrypt(deps.CallContext.ContractCode)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
||||||
|
}
|
||||||
|
reqData := map[string]interface{}{
|
||||||
|
"data": map[string]interface{}{
|
||||||
|
"name": encryptedName,
|
||||||
|
"idcard": encryptedIDCard,
|
||||||
|
"auth_authorizeFileCode": encryptedAuthAuthorizeFileCode,
|
||||||
|
"inquired_auth": fmt.Sprintf("authed:%s", paramsDto.AuthDate),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
respBytes, err := deps.WestDexService.CallAPI("G22SC01", reqData)
|
||||||
|
if err != nil {
|
||||||
|
// 数据源错误
|
||||||
|
if errors.Is(err, westdex.ErrDatasource) {
|
||||||
|
// 如果有返回内容,优先解析返回内容
|
||||||
|
if respBytes != nil {
|
||||||
|
parsed, parseErr := ParseJsonResponse(respBytes)
|
||||||
|
if parseErr == nil {
|
||||||
|
// 通过gjson获取指定路径的数据
|
||||||
|
contentResult := gjson.GetBytes(parsed, "G22SC0101.G22SC0102.content")
|
||||||
|
if contentResult.Exists() {
|
||||||
|
return []byte(contentResult.Raw), fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
||||||
|
}
|
||||||
|
return parsed, fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
||||||
|
}
|
||||||
|
// 解析失败,返回原始内容和系统错误
|
||||||
|
return respBytes, fmt.Errorf("%s: %w", processors.ErrSystem, parseErr)
|
||||||
|
}
|
||||||
|
// 没有返回内容,直接返回数据源错误
|
||||||
|
return nil, fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
||||||
|
}
|
||||||
|
// 其他系统错误
|
||||||
|
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 正常返回 - 不管有没有deps.Options.Json都进行ParseJsonResponse
|
||||||
|
parsed, parseErr := ParseJsonResponse(respBytes)
|
||||||
|
if parseErr != nil {
|
||||||
|
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, parseErr)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通过gjson获取指定路径的数据
|
||||||
|
contentResult := gjson.GetBytes(parsed, "G22SC0101.G22SC0102.content")
|
||||||
|
if contentResult.Exists() {
|
||||||
|
return []byte(contentResult.Raw), nil
|
||||||
|
} else {
|
||||||
|
return nil, fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Content 数据内容
|
// Content 数据内容
|
||||||
type FLXG0V4BResponse struct {
|
type FLXG0V4BResponse struct {
|
||||||
Sxbzxr Sxbzxr `json:"sxbzxr"` // 失信被执行人
|
Sxbzxr Sxbzxr `json:"sxbzxr"` // 失信被执行人
|
||||||
@@ -385,79 +458,6 @@ type XgbzxrItem struct {
|
|||||||
Fbrq string `json:"fbrq"` // 发布时间
|
Fbrq string `json:"fbrq"` // 发布时间
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProcessFLXG0V4BRequest FLXG0V4B API处理方法
|
|
||||||
func ProcessFLXG0V4BRequest(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) {
|
|
||||||
var paramsDto dto.FLXG0V4BReq
|
|
||||||
if err := json.Unmarshal(params, ¶msDto); err != nil {
|
|
||||||
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := deps.Validator.ValidateStruct(paramsDto); err != nil {
|
|
||||||
return nil, fmt.Errorf("%s: %w", processors.ErrInvalidParam, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
encryptedName, err := deps.WestDexService.Encrypt(paramsDto.Name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
encryptedIDCard, err := deps.WestDexService.Encrypt(paramsDto.IDCard)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
|
||||||
}
|
|
||||||
encryptedAuthAuthorizeFileCode, err := deps.WestDexService.Encrypt(deps.CallContext.ContractCode)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
|
||||||
}
|
|
||||||
reqData := map[string]interface{}{
|
|
||||||
"data": map[string]interface{}{
|
|
||||||
"name": encryptedName,
|
|
||||||
"idcard": encryptedIDCard,
|
|
||||||
"auth_authorizeFileCode": encryptedAuthAuthorizeFileCode,
|
|
||||||
"inquired_auth": fmt.Sprintf("authed:%s", paramsDto.AuthDate),
|
|
||||||
},
|
|
||||||
}
|
|
||||||
respBytes, err := deps.WestDexService.CallAPI("G22SC01", reqData)
|
|
||||||
if err != nil {
|
|
||||||
// 数据源错误
|
|
||||||
if errors.Is(err, westdex.ErrDatasource) {
|
|
||||||
// 如果有返回内容,优先解析返回内容
|
|
||||||
if respBytes != nil {
|
|
||||||
parsed, parseErr := ParseJsonResponse(respBytes)
|
|
||||||
if parseErr == nil {
|
|
||||||
// 通过gjson获取指定路径的数据
|
|
||||||
contentResult := gjson.GetBytes(parsed, "G22SC0101.G22SC0102.content")
|
|
||||||
if contentResult.Exists() {
|
|
||||||
return []byte(contentResult.Raw), fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
|
||||||
}
|
|
||||||
return parsed, fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
|
||||||
}
|
|
||||||
// 解析失败,返回原始内容和系统错误
|
|
||||||
return respBytes, fmt.Errorf("%s: %w", processors.ErrSystem, parseErr)
|
|
||||||
}
|
|
||||||
// 没有返回内容,直接返回数据源错误
|
|
||||||
return nil, fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
|
||||||
}
|
|
||||||
// 其他系统错误
|
|
||||||
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 正常返回 - 不管有没有deps.Options.Json都进行ParseJsonResponse
|
|
||||||
parsed, parseErr := ParseJsonResponse(respBytes)
|
|
||||||
if parseErr != nil {
|
|
||||||
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, parseErr)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 通过gjson获取指定路径的数据
|
|
||||||
contentResult := gjson.GetBytes(parsed, "G22SC0101.G22SC0102.content")
|
|
||||||
if contentResult.Exists() {
|
|
||||||
return []byte(contentResult.Raw), nil
|
|
||||||
}else{
|
|
||||||
return nil,fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// ParseWestResponse 解析西部返回的响应数据(获取data字段后解析)
|
// ParseWestResponse 解析西部返回的响应数据(获取data字段后解析)
|
||||||
// westResp: 西部返回的原始响应
|
// westResp: 西部返回的原始响应
|
||||||
// Returns: 解析后的数据字节数组
|
// Returns: 解析后的数据字节数组
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import (
|
|||||||
"tyapi-server/internal/domains/api/dto"
|
"tyapi-server/internal/domains/api/dto"
|
||||||
"tyapi-server/internal/domains/api/services/processors"
|
"tyapi-server/internal/domains/api/services/processors"
|
||||||
"tyapi-server/internal/infrastructure/external/westdex"
|
"tyapi-server/internal/infrastructure/external/westdex"
|
||||||
|
|
||||||
|
"github.com/tidwall/gjson"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ProcessQYGL8271Request QYGL8271 API处理方法
|
// ProcessQYGL8271Request QYGL8271 API处理方法
|
||||||
@@ -40,18 +42,46 @@ func ProcessQYGL8271Request(ctx context.Context, params []byte, deps *processors
|
|||||||
"org_name": encryptedEntName,
|
"org_name": encryptedEntName,
|
||||||
"uscc": encryptedEntCode,
|
"uscc": encryptedEntCode,
|
||||||
"auth_authorizeFileCode": encryptedAuthAuthorizeFileCode,
|
"auth_authorizeFileCode": encryptedAuthAuthorizeFileCode,
|
||||||
"inquired_auth": paramsDto.AuthDate, // AuthDate 有 encrypt:"false" 标签,不加密
|
"inquired_auth": fmt.Sprintf("authed:%s", paramsDto.AuthDate),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
respBytes, err := deps.WestDexService.CallAPI("Q03SC01", reqData)
|
respBytes, err := deps.WestDexService.CallAPI("Q03SC01", reqData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
// 数据源错误
|
||||||
if errors.Is(err, westdex.ErrDatasource) {
|
if errors.Is(err, westdex.ErrDatasource) {
|
||||||
|
// 如果有返回内容,优先解析返回内容
|
||||||
|
if respBytes != nil {
|
||||||
|
parsed, parseErr := ParseJsonResponse(respBytes)
|
||||||
|
if parseErr == nil {
|
||||||
|
// 通过gjson获取指定路径的数据
|
||||||
|
contentResult := gjson.GetBytes(parsed, "Q03SC0101.Q03SC0102.content")
|
||||||
|
if contentResult.Exists() {
|
||||||
|
return []byte(contentResult.Raw), fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
||||||
|
}
|
||||||
|
return parsed, fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
||||||
|
}
|
||||||
|
// 解析失败,返回原始内容和系统错误
|
||||||
|
return respBytes, fmt.Errorf("%s: %w", processors.ErrSystem, parseErr)
|
||||||
|
}
|
||||||
|
// 没有返回内容,直接返回数据源错误
|
||||||
return nil, fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
return nil, fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
||||||
} else {
|
}
|
||||||
|
// 其他系统错误
|
||||||
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 正常返回 - 不管有没有deps.Options.Json都进行ParseJsonResponse
|
||||||
|
parsed, parseErr := ParseJsonResponse(respBytes)
|
||||||
|
if parseErr != nil {
|
||||||
|
return nil, fmt.Errorf("%s: %w", processors.ErrSystem, parseErr)
|
||||||
}
|
}
|
||||||
|
|
||||||
return respBytes, nil
|
// 通过gjson获取指定路径的数据
|
||||||
|
contentResult := gjson.GetBytes(parsed, "Q03SC0101.Q03SC0102.content")
|
||||||
|
if contentResult.Exists() {
|
||||||
|
return []byte(contentResult.Raw), nil
|
||||||
|
} else {
|
||||||
|
return nil, fmt.Errorf("%s: %w", processors.ErrDatasource, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user