From 130f49fb9df4377d5637ca09352c9cdc0dcc4283 Mon Sep 17 00:00:00 2001 From: Mrx <18278715334@163.com> Date: Wed, 1 Apr 2026 14:18:23 +0800 Subject: [PATCH] f --- internal/domains/api/dto/api_request_dto.go | 7 ++ .../api/services/api_request_service.go | 1 + .../api/services/form_config_service.go | 1 + .../processors/ivyz/ivyz5e22_processor.go | 66 +++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 internal/domains/api/services/processors/ivyz/ivyz5e22_processor.go diff --git a/internal/domains/api/dto/api_request_dto.go b/internal/domains/api/dto/api_request_dto.go index 5398178..7c4eeae 100644 --- a/internal/domains/api/dto/api_request_dto.go +++ b/internal/domains/api/dto/api_request_dto.go @@ -633,6 +633,13 @@ type IVYZ38SRReq struct { WomanIDCard string `json:"woman_id_card" validate:"required,validIDCard"` } +type IVYZ5E22Req struct { + ManName string `json:"man_name" validate:"required,min=1,validName"` + ManIDCard string `json:"man_id_card" validate:"required,validIDCard"` + WomanName string `json:"woman_name" validate:"required,min=1,validName"` + WomanIDCard string `json:"woman_id_card" validate:"required,validIDCard"` + Authorized string `json:"authorized" validate:"required,oneof=0 1"` +} type IVYZ48SRReq struct { ManName string `json:"man_name" validate:"required,min=1,validName"` ManIDCard string `json:"man_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 1024151..8c21ec1 100644 --- a/internal/domains/api/services/api_request_service.go +++ b/internal/domains/api/services/api_request_service.go @@ -326,6 +326,7 @@ func registerAllProcessors(combService *comb.CombService) { "IVYZ28HY": ivyz.ProcessIVYZ28HYRequest, //婚姻状况核验(单人) "IVYZ38SR": ivyz.ProcessIVYZ38SRRequest, //婚姻状态核验(双人) "IVYZ48SR": ivyz.ProcessIVYZ48SRRequest, //婚姻状态核验V2(双人) + "IVYZ5E22": ivyz.ProcessIVYZ5E22Request, //双人婚姻评估查询zhicha版本 // COMB系列处理器 - 只注册有自定义逻辑的组合包 "COMB86PM": comb.ProcessCOMB86PMRequest, // 有自定义逻辑:重命名ApiCode diff --git a/internal/domains/api/services/form_config_service.go b/internal/domains/api/services/form_config_service.go index 0741884..9a431e2 100644 --- a/internal/domains/api/services/form_config_service.go +++ b/internal/domains/api/services/form_config_service.go @@ -271,6 +271,7 @@ func (s *FormConfigServiceImpl) getDTOStruct(ctx context.Context, apiCode string "IVYZ28HY": &dto.IVYZ28HYReq{}, //婚姻状况核验(单人) "IVYZ38SR": &dto.IVYZ38SRReq{}, //婚姻状态核验(双人) "IVYZ48SR": &dto.IVYZ48SRReq{}, //婚姻状态核验V2(双人) + "IVYZ5E22": &dto.IVYZ5E22Req{}, //双人婚姻评估查询zhicha版本 } // 优先返回已配置的DTO diff --git a/internal/domains/api/services/processors/ivyz/ivyz5e22_processor.go b/internal/domains/api/services/processors/ivyz/ivyz5e22_processor.go new file mode 100644 index 0000000..9468bfb --- /dev/null +++ b/internal/domains/api/services/processors/ivyz/ivyz5e22_processor.go @@ -0,0 +1,66 @@ +package ivyz + +import ( + "context" + "encoding/json" + "errors" + + "tyapi-server/internal/domains/api/dto" + "tyapi-server/internal/domains/api/services/processors" + "tyapi-server/internal/infrastructure/external/zhicha" +) + +// ProcessIVYZ5E22Request API处理方法 - 双人婚姻评估查询 +func ProcessIVYZ5E22Request(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) { + var paramsDto dto.IVYZ5E22Req + 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) + } + + encryptedManName, err := deps.ZhichaService.Encrypt(paramsDto.ManName) + if err != nil { + return nil, errors.Join(processors.ErrSystem, err) + } + + encryptedManIDCard, err := deps.ZhichaService.Encrypt(paramsDto.ManIDCard) + if err != nil { + return nil, errors.Join(processors.ErrSystem, err) + } + encryptedWomanName, err := deps.ZhichaService.Encrypt(paramsDto.WomanName) + if err != nil { + return nil, errors.Join(processors.ErrSystem, err) + } + encryptedWomanIDCard, err := deps.ZhichaService.Encrypt(paramsDto.WomanIDCard) + if err != nil { + return nil, errors.Join(processors.ErrSystem, err) + } + + reqData := map[string]interface{}{ + "nameMan": encryptedManName, + "idCardMan": encryptedManIDCard, + "nameWoman": encryptedWomanName, + "idCardWoman": encryptedWomanIDCard, + "authorized": paramsDto.Authorized, + } + + respData, err := deps.ZhichaService.CallAPI(ctx, "ZCI042", reqData) + if err != nil { + if errors.Is(err, zhicha.ErrDatasource) { + return nil, errors.Join(processors.ErrDatasource, err) + } else { + return nil, errors.Join(processors.ErrSystem, err) + } + } + + // 将响应数据转换为JSON字节 + respBytes, err := json.Marshal(respData) + if err != nil { + return nil, errors.Join(processors.ErrSystem, err) + } + + return respBytes, nil +}