This commit is contained in:
2026-06-21 19:08:18 +08:00
parent 9d373d60a5
commit c2ccdb0226
5 changed files with 156 additions and 42 deletions

View File

@@ -132,12 +132,11 @@ type QCXGA8V3Req struct {
}
type QCXGCP77Req struct {
VinCode string `json:"vin_code" validate:"required"`
}
type QCXGX2X6Req struct {
PlateNo string `json:"plate_no" validate:"required"`
PlateNo string `json:"plate_no" validate:"required"`
VehicleType string `json:"vehicle_type" validate:"omitempty"`
Name string `json:"name" validate:"required,min=1,validName"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type QCXG1S2LReq struct {
VinCode string `json:"vin_code" validate:"required"`
@@ -174,6 +173,16 @@ type QCXG3M7ZReq struct {
Name string `json:"name" validate:"required,min=1,validName"`
PlateColor string `json:"plate_color" validate:"omitempty"`
}
type JRZQ7D1XReq struct {
Name string `json:"name" validate:"required,min=1,validName"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
}
type JRZQTH74Req struct {
Name string `json:"name" validate:"required,min=1,validName"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
}
type QCXG76VAReq struct {
PlateNo string `json:"plate_no" validate:"required"`
}

View File

@@ -23,8 +23,8 @@ import (
"hyapi-server/internal/infrastructure/external/muzi"
nuoerext "hyapi-server/internal/infrastructure/external/nuoer"
"hyapi-server/internal/infrastructure/external/shujubao"
"hyapi-server/internal/infrastructure/external/tianyuanapi"
"hyapi-server/internal/infrastructure/external/tianyancha"
"hyapi-server/internal/infrastructure/external/tianyuanapi"
"hyapi-server/internal/infrastructure/external/westdex"
"hyapi-server/internal/infrastructure/external/xingwei"
"hyapi-server/internal/infrastructure/external/yushan"
@@ -170,25 +170,28 @@ func registerAllProcessors(combService *comb.CombService) {
"JRZQOICN": jrzq.ProcessJRZQOICNRequest, // 银行卡四要素
"JRZQMDQ1": jrzq.ProcessJRZQMDQ1Request, // 银行卡OCR数卖
"JRZQDMLO": jrzq.ProcessJRZQDMLORequest, // 银行卡OCR数据宝
"JRZQ65ZO": jrzq.ProcessJRZQ65ZORequest, // 支付行为指数诺尔
"JRZQNKEI": jrzq.ProcessJRZQNKEIRequest, //风险量级V8
"JRZQQKEC": jrzq.ProcessJRZQQKECRequest, //风险量级V9
"JRZQI079": jrzq.ProcessJRZQI079Request, //风险量级V10
"JRZQV7YZ": jrzq.ProcessJRZQV7YZRequest, //信用全景V21
"JRZQX5DM": jrzq.ProcessJRZQX5DMRequest, //借贷意向验证
"JRZQ1AIJ": jrzq.ProcessJRZQ1AIJRequest, //洞侦多头履约行为
"JRZQZ05I": jrzq.ProcessJRZQZ05IRequest, //租赁申请意向
"JRZQNK43": jrzq.ProcessJRZQNK43Request, //租赁申请意向V22
"JRZQNVM8": jrzq.ProcessJRZQNVM8Request, //风险变量V5F4
"JRZQMLZX": jrzq.ProcessJRZQMLZXRequest, //特殊名单
"JRZQQD4F": jrzq.ProcessJRZQQD4FRequest, //债务逾期黑名单V3_1
"JRZQVBHJ": jrzq.ProcessJRZQVBHJRequest, //投诉风险筛查V709
"JRZQBQIR": jrzq.ProcessJRZQBQIRRequest, //黑名单V110_c10
"JRZQTM1V": jrzq.ProcessJRZQTM1VRequest, //特殊名单1010
"JRZQNEP0": jrzq.ProcessJRZQNEP0Request, //智享分
"JRZQLY6D": jrzq.ProcessJRZQLY6DRequest, //智瞳-通用版
"JRZQAH34": jrzq.ProcessJRZQAH34Request, //智瞳分尊享版
"JRZQML9G": jrzq.ProcessJRZQML9GRequest, //坤羽模型V3-标签版
"JRZQ65ZO": jrzq.ProcessJRZQ65ZORequest, // 支付行为指数诺尔
"JRZQNKEI": jrzq.ProcessJRZQNKEIRequest, //风险量级V8
"JRZQQKEC": jrzq.ProcessJRZQQKECRequest, //风险量级V9
"JRZQI079": jrzq.ProcessJRZQI079Request, //风险量级V10
"JRZQV7YZ": jrzq.ProcessJRZQV7YZRequest, //信用全景V21
"JRZQX5DM": jrzq.ProcessJRZQX5DMRequest, //借贷意向验证
"JRZQ1AIJ": jrzq.ProcessJRZQ1AIJRequest, //洞侦多头履约行为
"JRZQZ05I": jrzq.ProcessJRZQZ05IRequest, //租赁申请意向
"JRZQNK43": jrzq.ProcessJRZQNK43Request, //租赁申请意向V22
"JRZQNVM8": jrzq.ProcessJRZQNVM8Request, //风险变量V5F4
"JRZQMLZX": jrzq.ProcessJRZQMLZXRequest, //特殊名单
"JRZQQD4F": jrzq.ProcessJRZQQD4FRequest, //债务逾期黑名单V3_1
"JRZQVBHJ": jrzq.ProcessJRZQVBHJRequest, //投诉风险筛查V709
"JRZQBQIR": jrzq.ProcessJRZQBQIRRequest, //黑名单V110_c10
"JRZQTM1V": jrzq.ProcessJRZQTM1VRequest, //特殊名单1010
"JRZQNEP0": jrzq.ProcessJRZQNEP0Request, //智享分
"JRZQLY6D": jrzq.ProcessJRZQLY6DRequest, //智瞳-通用版
"JRZQAH34": jrzq.ProcessJRZQAH34Request, //智瞳分尊享版
"JRZQML9G": jrzq.ProcessJRZQML9GRequest, //坤羽模型V3-标签版
"JRZQ7D1X": jrzq.ProcessJRZQ7D1XRequest, //借贷意向V2
"JRZQTH74": jrzq.ProcessJRZQTH74Request, //团伙欺诈
// QYGL系列处理器
"QYGL7HBN": qygl.ProcessQYGL7HBNRequest, //企业全景报告(聚合 QYGLUY3S/QYGLJ0Q1/QYGL5S1I
"QYGL9MYB": qygl.ProcessQYGL9MYBRequest, //企业股权结构全景查询
@@ -204,19 +207,19 @@ func registerAllProcessors(combService *comb.CombService) {
"QCXG1S2L": qcxg.ProcessQCXG1S2LRequest, //汽车车辆五项
// YYSY系列处理器
"YYSY0YYV": yysy.ProcessYYSY0YYVRequest, //运营商二要素查询
"YYSYS66T": yysy.ProcessYYSYS66TRequest, //运营商三要素详版查询
"YYSYN8DI": yysy.ProcessYYSYN8DIRequest, //运营商三要素简版查询
"YYSYUO7E": yysy.ProcessYYSYUO7ERequest, //在网时长查询
"YYSYKTQO": yysy.ProcessYYSYKTQORequest, //手机在网状态查询
"YYSYXAES": yysy.ProcessYYSYXAESRequest, //手机携号转网查询
"YYSYJXZF": yysy.ProcessYYSYJXZFRequest, //手机空号检测查询
"YYSYXHHO": yysy.ProcessYYSYXHHORequest, //运营商三要素即时版查询
"YYSYGLSF": yysy.ProcessYYSYGLSFRequest, //全网手机三要素验证1979周更新版
"YYSYP7PL": yysy.ProcessYYSYP7PLRequest, //手机二次放号检测查询
"YYSY2M8Q": yysy.ProcessYYSY2M8QRequest, //手机消费区间验证
"YYSY7R4V": yysy.ProcessYYSY7R4VRequest, //手机停机验证
"YYSYS7Y1": yysy.ProcessYYSYS7Y1Request, //移动手机号易诉分
"YYSY0YYV": yysy.ProcessYYSY0YYVRequest, //运营商二要素查询
"YYSYS66T": yysy.ProcessYYSYS66TRequest, //运营商三要素详版查询
"YYSYN8DI": yysy.ProcessYYSYN8DIRequest, //运营商三要素简版查询
"YYSYUO7E": yysy.ProcessYYSYUO7ERequest, //在网时长查询
"YYSYKTQO": yysy.ProcessYYSYKTQORequest, //手机在网状态查询
"YYSYXAES": yysy.ProcessYYSYXAESRequest, //手机携号转网查询
"YYSYJXZF": yysy.ProcessYYSYJXZFRequest, //手机空号检测查询
"YYSYXHHO": yysy.ProcessYYSYXHHORequest, //运营商三要素即时版查询
"YYSYGLSF": yysy.ProcessYYSYGLSFRequest, //全网手机三要素验证1979周更新版
"YYSYP7PL": yysy.ProcessYYSYP7PLRequest, //手机二次放号检测查询
"YYSY2M8Q": yysy.ProcessYYSY2M8QRequest, //手机消费区间验证
"YYSY7R4V": yysy.ProcessYYSY7R4VRequest, //手机停机验证
"YYSYS7Y1": yysy.ProcessYYSYS7Y1Request, //移动手机号易诉分
// IVYZ系列处理器
"IVYZSQ0E": ivyz.ProcessIVYZSQ0ERequest, //身份证实名认证即时版
@@ -240,12 +243,12 @@ func registerAllProcessors(combService *comb.CombService) {
// QCXG系列处理器
"QCXGFV9W": qcxg.ProcessQCXGFV9WRequest, //疑似营运车辆注册平台数 10386
"QCXG76VA": qcxg.ProcessQCXG76VARequest, //疑似运营车辆查询月度里程10268
"QCXGYQDC": qcxg.ProcessQCXGYQDCRequest, //疑似运营车辆查询季度里程10269
"QCXGGFWW": qcxg.ProcessQCXGGFWWRequest, //疑似运营车辆查询半年度里程10270
"QCXGYWSV": qcxg.ProcessQCXGYWSVRequest, //疑似运营车辆查询年度里程10271
"QCXG521L": qcxg.ProcessQCXG521LRequest, // 车辆静态信息查询 10479
"QCXGIJY3": qcxg.ProcessQCXGIJY3Request, // 名下车辆诺尔
"QCXG76VA": qcxg.ProcessQCXG76VARequest, //疑似运营车辆查询月度里程10268
"QCXGYQDC": qcxg.ProcessQCXGYQDCRequest, //疑似运营车辆查询季度里程10269
"QCXGGFWW": qcxg.ProcessQCXGGFWWRequest, //疑似运营车辆查询半年度里程10270
"QCXGYWSV": qcxg.ProcessQCXGYWSVRequest, //疑似运营车辆查询年度里程10271
"QCXG521L": qcxg.ProcessQCXG521LRequest, // 车辆静态信息查询 10479
"QCXGIJY3": qcxg.ProcessQCXGIJY3Request, // 名下车辆诺尔
// DWBG系列处理器 - 多维报告

View File

@@ -305,6 +305,8 @@ func (s *FormConfigServiceImpl) getDTOStruct(ctx context.Context, apiCode string
"QCXGX2X6": &dto.QCXGX2X6Req{}, //行驶证信息核验V2
"QCXG1S2L": &dto.QCXG1S2LReq{}, //汽车车辆五项
"YYSYS7Y1": &dto.YYSYS7Y1Req{}, //移动手机号易诉分
"JRZQ7D1X": &dto.JRZQ7D1XReq{}, //借贷意向V2
"JRZQTH74": &dto.JRZQTH74Req{}, //团伙欺诈
}
// 优先返回已配置的DTO

View File

@@ -0,0 +1,50 @@
package jrzq
import (
"context"
"encoding/json"
"errors"
"hyapi-server/internal/domains/api/dto"
"hyapi-server/internal/domains/api/services/processors"
"hyapi-server/internal/infrastructure/external/nuoer"
)
// ProcessJRZQ7D1XRequest JRZQVZ3Y API处理方法 - 7天1x贷
func ProcessJRZQ7D1XRequest(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) {
var paramsDto dto.JRZQ7D1XReq
if err := json.Unmarshal(params, &paramsDto); 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{
"name": paramsDto.Name,
"idCard": paramsDto.IDCard,
"mobile": paramsDto.MobileNo,
}
nuoerDoCheckAPIKey := "loanRiskTagV22"
ApiPath := "/v1/doCheck"
resp, err := deps.NuoerService.CallAPI(ctx, nuoerDoCheckAPIKey, ApiPath, body)
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
}

View File

@@ -0,0 +1,50 @@
package jrzq
import (
"context"
"encoding/json"
"errors"
"hyapi-server/internal/domains/api/dto"
"hyapi-server/internal/domains/api/services/processors"
"hyapi-server/internal/infrastructure/external/nuoer"
)
// ProcessJRZQTH74Request JRZQVZ3Y API处理方法 - 团伙欺诈
func ProcessJRZQTH74Request(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) {
var paramsDto dto.JRZQTH74Req
if err := json.Unmarshal(params, &paramsDto); 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{
"name": paramsDto.Name,
"idCard": paramsDto.IDCard,
"mobile": paramsDto.MobileNo,
}
nuoerDoCheckAPIKey := "idRelationRisk"
ApiPath := "/v1/doCheck"
resp, err := deps.NuoerService.CallAPI(ctx, nuoerDoCheckAPIKey, ApiPath, body)
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
}