diff --git a/internal/domains/api/dto/api_request_dto.go b/internal/domains/api/dto/api_request_dto.go index 858bb49..da25a51 100644 --- a/internal/domains/api/dto/api_request_dto.go +++ b/internal/domains/api/dto/api_request_dto.go @@ -1156,6 +1156,13 @@ type YYSYS9W1Req struct { MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"` } +// YYSYS98AReq 移动手机号易诉分(转发海宇 YYSYS7Y1) +type YYSYS98AReq struct { + MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"` + Name string `json:"name" validate:"omitempty,min=1,validName"` + IDCard string `json:"id_card" validate:"omitempty,validIDCard"` +} + type YYSYK8R3Req struct { MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"` } diff --git a/internal/domains/api/services/api_request_service.go b/internal/domains/api/services/api_request_service.go index ecdbd1a..1112ea7 100644 --- a/internal/domains/api/services/api_request_service.go +++ b/internal/domains/api/services/api_request_service.go @@ -308,6 +308,7 @@ func registerAllProcessors(combService *comb.CombService) { "YYSYP0T4": yysy.ProcessYYSYP0T4Request, //在网时长查询 "YYSYE7V5": yysy.ProcessYYSYE7V5Request, //手机在网状态查询 "YYSYS9W1": yysy.ProcessYYSYS9W1Request, //手机携号转网查询 + "YYSYS98A": yysy.ProcessYYSYS98ARequest, //移动手机号易诉分(海宇) "YYSYK8R3": yysy.ProcessYYSYK8R3Request, //手机空号检测查询 "YYSYH6F3": yysy.ProcessYYSYH6F3Request, //运营商三要素即时版查询 "YYSYK9R4": yysy.ProcessYYSYK9R4Request, //全网手机三要素验证1979周更新版 diff --git a/internal/domains/api/services/form_config_service.go b/internal/domains/api/services/form_config_service.go index ce4f1f0..654fefa 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 "YYSYP0T4": &dto.YYSYP0T4Req{}, //在网时长查询 "YYSYE7V5": &dto.YYSYE7V5Req{}, //手机在网状态查询 "YYSYS9W1": &dto.YYSYS9W1Req{}, //手机携号转网查询 + "YYSYS98A": &dto.YYSYS98AReq{}, //移动手机号易诉分(海宇) "YYSYK8R3": &dto.YYSYK8R3Req{}, //手机空号检测查询 "YYSYF2T7": &dto.YYSYF2T7Req{}, //手机二次放号检测查询 "IVYZA1B3": &dto.IVYZA1B3Req{}, //公安三要素人脸识别 diff --git a/internal/domains/api/services/processors/yysy/yysys98a_processor.go b/internal/domains/api/services/processors/yysy/yysys98a_processor.go new file mode 100644 index 0000000..288a7df --- /dev/null +++ b/internal/domains/api/services/processors/yysy/yysys98a_processor.go @@ -0,0 +1,50 @@ +package yysy + +import ( + "context" + "encoding/json" + "errors" + + "tyapi-server/internal/domains/api/dto" + "tyapi-server/internal/domains/api/services/processors" + "tyapi-server/internal/infrastructure/external/haiyuapi" +) + +// ProcessYYSYS98ARequest YYSYS98A API处理方法 - 移动手机号易诉分(转发海宇 YYSYS7Y1) +func ProcessYYSYS98ARequest(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) { + var paramsDto dto.YYSYS98AReq + 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) + } + + if deps.HaiyuapiService == nil { + return nil, errors.Join(processors.ErrSystem, errors.New("海宇API服务未初始化")) + } + + reqParams := map[string]interface{}{ + "mobile_no": paramsDto.MobileNo, + } + if paramsDto.Name != "" { + reqParams["name"] = paramsDto.Name + } + if paramsDto.IDCard != "" { + reqParams["id_card"] = paramsDto.IDCard + } + + respBytes, err := deps.HaiyuapiService.CallAPI(ctx, "YYSYS7Y1", reqParams) + if err != nil { + if errors.Is(err, haiyuapi.ErrNotFound) { + return nil, errors.Join(processors.ErrNotFound, err) + } + if errors.Is(err, haiyuapi.ErrDatasource) { + return nil, errors.Join(processors.ErrDatasource, err) + } + return nil, errors.Join(processors.ErrSystem, err) + } + + return respBytes, nil +}