From e8b9a45763f1dbbac0226f9ae1e879790d663ba2 Mon Sep 17 00:00:00 2001 From: Mrxs <18278715334@163.com> Date: Tue, 23 Jun 2026 11:31:33 +0800 Subject: [PATCH] add --- 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/qcxg6u5g_processor.go | 48 +++++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 internal/domains/api/services/processors/qcxg/qcxg6u5g_processor.go diff --git a/internal/domains/api/dto/api_request_dto.go b/internal/domains/api/dto/api_request_dto.go index d06b0cb..ea16585 100644 --- a/internal/domains/api/dto/api_request_dto.go +++ b/internal/domains/api/dto/api_request_dto.go @@ -187,6 +187,10 @@ type JRZQFC59Req struct { MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"` } +type QCXG6U5GReq struct { + MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"` +} + type IVYZX7J9Req struct { Name string `json:"name" validate:"required,min=1,validName"` IDCard string `json:"id_card" validate:"required,validIDCard"` diff --git a/internal/domains/api/services/api_request_service.go b/internal/domains/api/services/api_request_service.go index afd2fc2..30b12c1 100644 --- a/internal/domains/api/services/api_request_service.go +++ b/internal/domains/api/services/api_request_service.go @@ -252,6 +252,7 @@ func registerAllProcessors(combService *comb.CombService) { "QCXGYWSV": qcxg.ProcessQCXGYWSVRequest, //疑似运营车辆查询(年度里程)10271 "QCXG521L": qcxg.ProcessQCXG521LRequest, // 车辆静态信息查询 10479 "QCXGIJY3": qcxg.ProcessQCXGIJY3Request, // 名下车辆诺尔 + "QCXG6U5G": qcxg.ProcessQCXG6U5GRequest, // 车辆核验 // DWBG系列处理器 - 多维报告 diff --git a/internal/domains/api/services/form_config_service.go b/internal/domains/api/services/form_config_service.go index 3a6cc2c..ce7eb57 100644 --- a/internal/domains/api/services/form_config_service.go +++ b/internal/domains/api/services/form_config_service.go @@ -310,6 +310,7 @@ func (s *FormConfigServiceImpl) getDTOStruct(ctx context.Context, apiCode string "JRZQGJ99": &dto.JRZQGJ99Req{}, //公积金核验 "JRZQFC59": &dto.JRZQFC59Req{}, //房产核验 "IVYZX7J9": &dto.IVYZX7J9Req{}, //学籍核验 + "QCXG6U5G": &dto.QCXG6U5GReq{}, //车辆核验 } // 优先返回已配置的DTO diff --git a/internal/domains/api/services/processors/qcxg/qcxg6u5g_processor.go b/internal/domains/api/services/processors/qcxg/qcxg6u5g_processor.go new file mode 100644 index 0000000..2e56d55 --- /dev/null +++ b/internal/domains/api/services/processors/qcxg/qcxg6u5g_processor.go @@ -0,0 +1,48 @@ +package qcxg + +import ( + "context" + "encoding/json" + "errors" + + "hyapi-server/internal/domains/api/dto" + "hyapi-server/internal/domains/api/services/processors" + "hyapi-server/internal/infrastructure/external/nuoer" +) + +// ProcessQCXG6U5GRequest QCXG6U5G API处理方法 - 车辆核验 +func ProcessQCXG6U5GRequest(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) { + var paramsDto dto.QCXG6U5GReq + 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) + } + + body := map[string]string{ + "mobileNo": paramsDto.MobileNo, + } + + nuoerDoCheckAPIKey := "idVerify130" + ApiPath := "/v1/doCheck" + + resp, err := deps.NuoerService.CallAPI(ctx, nuoerDoCheckAPIKey, ApiPath, body, 2) + if err != nil { + if errors.Is(err, nuoer.ErrDatasource) { + return nil, errors.Join(processors.ErrDatasource, err) + } + if errors.Is(err, nuoer.ErrNotFound) { + return nil, errors.Join(processors.ErrNotFound, err) + } + return nil, errors.Join(processors.ErrSystem, err) + } + + respBytes, err := json.Marshal(resp.Data) + if err != nil { + return nil, errors.Join(processors.ErrSystem, err) + } + + return respBytes, nil +}