diff --git a/internal/application/product/product_application_service_impl.go b/internal/application/product/product_application_service_impl.go index d08a9da..25ae9ec 100644 --- a/internal/application/product/product_application_service_impl.go +++ b/internal/application/product/product_application_service_impl.go @@ -1070,6 +1070,7 @@ func (s *ProductApplicationServiceImpl) getDTOMap() map[string]interface{} { "DWBG8B4D": &dto.DWBG8B4DReq{}, "FLXG8B4D": &dto.FLXG8B4DReq{}, "IVYZ81NC": &dto.IVYZ81NCReq{}, + "IVYZ2MN6": &dto.IVYZ2MN6Req{}, "IVYZ7F3A": &dto.IVYZ7F3AReq{}, "IVYZ3P9M": &dto.IVYZ3P9MReq{}, "IVYZ3A7F": &dto.IVYZ3A7FReq{}, diff --git a/internal/domains/api/dto/api_request_dto.go b/internal/domains/api/dto/api_request_dto.go index 9f1d94c..f627f49 100644 --- a/internal/domains/api/dto/api_request_dto.go +++ b/internal/domains/api/dto/api_request_dto.go @@ -72,6 +72,11 @@ type IVYZ81NCReq struct { Name string `json:"name" validate:"required,min=1,validName"` IDCard string `json:"id_card" validate:"required,validIDCard"` } +type IVYZ2MN6Req struct { + IDCard string `json:"id_card" validate:"required,validIDCard"` + Name string `json:"name" validate:"required,min=1,validName"` + Authorized string `json:"authorized" validate:"required,oneof=0 1"` +} type IVYZ9363Req 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 d775005..af10d86 100644 --- a/internal/domains/api/services/api_request_service.go +++ b/internal/domains/api/services/api_request_service.go @@ -301,6 +301,7 @@ func registerAllProcessors(combService *comb.CombService) { "IVYZ3A7F": ivyz.ProcessIVYZ3A7FRequest, "IVYZ9D2E": ivyz.ProcessIVYZ9D2ERequest, "IVYZ81NC": ivyz.ProcessIVYZ81NCRequest, + "IVYZ2MN6": ivyz.ProcessIVYZ2MN6Request, "IVYZ6G7H": ivyz.ProcessIVYZ6G7HRequest, "IVYZ8I9J": ivyz.ProcessIVYZ8I9JRequest, "IVYZ9K2L": ivyz.ProcessIVYZ9K2LRequest, diff --git a/internal/domains/api/services/form_config_service.go b/internal/domains/api/services/form_config_service.go index 67bde47..8d1b6b6 100644 --- a/internal/domains/api/services/form_config_service.go +++ b/internal/domains/api/services/form_config_service.go @@ -152,6 +152,7 @@ func (s *FormConfigServiceImpl) getDTOStruct(ctx context.Context, apiCode string "DWBG8B4D": &dto.DWBG8B4DReq{}, "FLXG8B4D": &dto.FLXG8B4DReq{}, "IVYZ81NC": &dto.IVYZ81NCReq{}, + "IVYZ2MN6": &dto.IVYZ2MN6Req{}, "IVYZ7F3A": &dto.IVYZ7F3AReq{}, "IVYZ3P9M": &dto.IVYZ3P9MReq{}, "IVYZ3A7F": &dto.IVYZ3A7FReq{}, @@ -450,6 +451,7 @@ func (s *FormConfigServiceImpl) generateFieldLabel(jsonTag string) string { labelMap := map[string]string{ "mobile_no": "手机号码", "id_card": "身份证号", + "idCard": "身份证号", "name": "姓名", "man_name": "男方姓名", "woman_name": "女方姓名", @@ -517,6 +519,7 @@ func (s *FormConfigServiceImpl) generateExampleValue(fieldType reflect.Type, jso exampleMap := map[string]string{ "mobile_no": "13800138000", "id_card": "110101199001011234", + "idCard": "110101199001011234", "name": "张三", "man_name": "张三", "woman_name": "李四", @@ -591,6 +594,7 @@ func (s *FormConfigServiceImpl) generatePlaceholder(jsonTag string, fieldType st placeholderMap := map[string]string{ "mobile_no": "请输入11位手机号码", "id_card": "请输入18位身份证号码", + "idCard": "请输入18位身份证号码", "name": "请输入真实姓名", "man_name": "请输入男方真实姓名", "woman_name": "请输入女方真实姓名", @@ -667,6 +671,7 @@ func (s *FormConfigServiceImpl) generateDescription(jsonTag string, validation s descMap := map[string]string{ "mobile_no": "请输入11位手机号码", "id_card": "请输入18位身份证号码最后一位如是字母请大写", + "idCard": "请输入18位身份证号码最后一位如是字母请大写", "name": "请输入真实姓名", "man_name": "请输入男方真实姓名", "woman_name": "请输入女方真实姓名", diff --git a/internal/domains/api/services/processors/ivyz/ivyz2mn6_processor.go b/internal/domains/api/services/processors/ivyz/ivyz2mn6_processor.go new file mode 100644 index 0000000..434a337 --- /dev/null +++ b/internal/domains/api/services/processors/ivyz/ivyz2mn6_processor.go @@ -0,0 +1,54 @@ +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" +) + +// ProcessIVYZ2MN6Request IVYZ2MN6 API处理方法 +func ProcessIVYZ2MN6Request(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) { + var paramsDto dto.IVYZ2MN6Req + 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) + } + + encryptedName, err := deps.ZhichaService.Encrypt(paramsDto.Name) + if err != nil { + return nil, errors.Join(processors.ErrSystem, err) + } + + encryptedIDCard, err := deps.ZhichaService.Encrypt(paramsDto.IDCard) + if err != nil { + return nil, errors.Join(processors.ErrSystem, err) + } + + reqData := map[string]interface{}{ + "name": encryptedName, + "idCard": encryptedIDCard, + "authorized": paramsDto.Authorized, + } + + respData, err := deps.ZhichaService.CallAPI(ctx, "ZCI1004", reqData) + if err != nil { + if errors.Is(err, zhicha.ErrDatasource) { + return nil, errors.Join(processors.ErrDatasource, err) + } + return nil, errors.Join(processors.ErrSystem, err) + } + + respBytes, err := json.Marshal(respData) + if err != nil { + return nil, errors.Join(processors.ErrSystem, err) + } + + return respBytes, nil +}