From 39f799bc41e01baff76b527cae30ab7909f4094f Mon Sep 17 00:00:00 2001 From: liangzai <2440983361@qq.com> Date: Wed, 31 Dec 2025 18:06:59 +0800 Subject: [PATCH] fix --- internal/domains/api/dto/api_request_dto.go | 4 ++ .../api/services/api_request_service.go | 1 + .../api/services/form_config_service.go | 1 + .../processors/qcxg/qcxg4d2e_processor.go | 49 +++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 internal/domains/api/services/processors/qcxg/qcxg4d2e_processor.go diff --git a/internal/domains/api/dto/api_request_dto.go b/internal/domains/api/dto/api_request_dto.go index 9ce65a9..2804264 100644 --- a/internal/domains/api/dto/api_request_dto.go +++ b/internal/domains/api/dto/api_request_dto.go @@ -275,6 +275,10 @@ type QCXG4896Req struct { type QCXG5F3AReq struct { IDCard string `json:"id_card" validate:"required,validIDCard"` } +type QCXG4D2EReq struct { + IDCard string `json:"id_card" validate:"required,validIDCard"` + UserType string `json:"user_type" validate:"required,oneof=1 2 3"` +} type COMENT01Req struct { EntName string `json:"ent_name" validate:"required,min=1,validEnterpriseName"` EntCode string `json:"ent_code" validate:"required,validUSCI"` diff --git a/internal/domains/api/services/api_request_service.go b/internal/domains/api/services/api_request_service.go index 8587da5..12db52f 100644 --- a/internal/domains/api/services/api_request_service.go +++ b/internal/domains/api/services/api_request_service.go @@ -225,6 +225,7 @@ func registerAllProcessors(combService *comb.CombService) { "QCXG6B4E": qcxg.ProcessQCXG6B4ERequest, "QCXG4896": qcxg.ProcessQCXG4896Request, "QCXG5F3A": qcxg.ProcessQCXG5F3ARequest, // 极光个人车辆查询 + "QCXG4D2E": qcxg.ProcessQCXG4D2ERequest, // 极光名下车辆数量查询 // DWBG系列处理器 - 多维报告 "DWBG6A2C": dwbg.ProcessDWBG6A2CRequest, diff --git a/internal/domains/api/services/form_config_service.go b/internal/domains/api/services/form_config_service.go index d9c3546..b49089d 100644 --- a/internal/domains/api/services/form_config_service.go +++ b/internal/domains/api/services/form_config_service.go @@ -205,6 +205,7 @@ func (s *FormConfigServiceImpl) getDTOStruct(ctx context.Context, apiCode string "IVYZBPQ2": &dto.IVYZBPQ2Req{}, //人脸比对V2 "IVYZSFEL": &dto.IVYZSFELReq{}, //全国自然人人像三要素核验_V1 "QCXG5F3A": &dto.QCXG5F3AReq{}, //极光个人车辆查询 + "QCXG4D2E": &dto.QCXG4D2EReq{}, //极光名下车辆数量查询 } // 优先返回已配置的DTO diff --git a/internal/domains/api/services/processors/qcxg/qcxg4d2e_processor.go b/internal/domains/api/services/processors/qcxg/qcxg4d2e_processor.go new file mode 100644 index 0000000..adbff30 --- /dev/null +++ b/internal/domains/api/services/processors/qcxg/qcxg4d2e_processor.go @@ -0,0 +1,49 @@ +package qcxg + +import ( + "context" + "encoding/json" + "errors" + + "tyapi-server/internal/domains/api/dto" + "tyapi-server/internal/domains/api/services/processors" + "tyapi-server/internal/infrastructure/external/jiguang" +) + +// ProcessQCXG4D2ERequest QCXG4D2E API处理方法 - 极光名下车辆数量查询 +func ProcessQCXG4D2ERequest(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) { + var paramsDto dto.QCXG4D2EReq + if err := json.Unmarshal(params, ¶msDto); err != nil { + return nil, errors.Join(processors.ErrSystem, err) + } + + if err := deps.Validator.ValidateStruct(paramsDto); err != nil { + return nil, errors.Join(processors.ErrInvalidParam, err) + } + + // 构建请求参数 + reqData := map[string]interface{}{ + "idNum": paramsDto.IDCard, + "userType": paramsDto.UserType, + } + + + // 调用极光API + // apiCode: vehicle-inquiry-under-name (用于请求头) + // apiPath: vehicle/inquiry-under-name (用于URL路径) + respBytes, err := deps.JiguangService.CallAPI(ctx, "vehicle-inquiry-under-name", "vehicle/inquiry-under-name", reqData) + if err != nil { + // 根据错误类型返回相应的错误 + if errors.Is(err, jiguang.ErrNotFound) { + return nil, errors.Join(processors.ErrNotFound, err) + } else if errors.Is(err, jiguang.ErrDatasource) { + return nil, errors.Join(processors.ErrDatasource, err) + } else { + return nil, errors.Join(processors.ErrSystem, err) + } + } + + // 极光服务已经返回了 data 字段的 JSON,直接返回即可 + return respBytes, nil +} +