diff --git a/app/main/api/internal/service/apirequestService.go b/app/main/api/internal/service/apirequestService.go index d854f78..7ff69d3 100644 --- a/app/main/api/internal/service/apirequestService.go +++ b/app/main/api/internal/service/apirequestService.go @@ -182,6 +182,8 @@ var requestProcessors = map[string]func(*ApiRequestService, []byte) ([]byte, err "YYSY09CD": (*ApiRequestService).ProcessYYSY09CDRequest, "FLXGC9D1": (*ApiRequestService).ProcessFLXGC9D1Request, "FLXG0687": (*ApiRequestService).ProcessFLXG0687Request, + "FLXG9687": (*ApiRequestService).ProcessFLXG9687Request, + "FLXG162A": (*ApiRequestService).ProcessFLXG162ARequest, "FLXG3D56": (*ApiRequestService).ProcessFLXG3D56Request, "FLXG0V4B": (*ApiRequestService).ProcesFLXG0V4BRequest, "QYGL8271": (*ApiRequestService).ProcessQYGL8271Request, @@ -631,6 +633,95 @@ func (a *ApiRequestService) ProcessFLXG0687Request(params []byte) ([]byte, error return []byte(Value.Raw), nil } +// ProcessFLXG9687Request 电诈风险预警 +func (a *ApiRequestService) ProcessFLXG9687Request(params []byte) ([]byte, error) { + name := gjson.GetBytes(params, "name") + idCard := gjson.GetBytes(params, "id_card") + mobile := gjson.GetBytes(params, "mobile") + if !name.Exists() || !idCard.Exists() || !mobile.Exists() { + return nil, errors.New("api请求, FLXG9687, 获取相关参数失败") + } + + resp, err := a.tianyuanapi.CallInterface("FLXG9687", map[string]interface{}{ + "name": name.String(), + "id_card": idCard.String(), + "mobile_no": mobile.String(), + }) + + if err != nil { + return nil, err + } + + respBytes, err := convertTianyuanResponse(resp) + if err != nil { + return nil, err + } + flagTelefraudpredictstd := gjson.GetBytes(respBytes, "flag_telefraudpredictstd") + if !flagTelefraudpredictstd.Exists() || flagTelefraudpredictstd.String() != "1" { + return nil, fmt.Errorf("自然人电诈风险预警查询失败") + } + + tfpsLevel := gjson.GetBytes(respBytes, "tfps_level") + if !tfpsLevel.Exists() { + return nil, fmt.Errorf("tfps_level 字段不存在") + } + + return []byte(tfpsLevel.Raw), nil +} + +// ProcessFLXG162ARequest 团伙欺诈 + +func (a *ApiRequestService) ProcessFLXG162ARequest(params []byte) ([]byte, error) { + name := gjson.GetBytes(params, "name") + idCard := gjson.GetBytes(params, "id_card") + mobile := gjson.GetBytes(params, "mobile") + if !name.Exists() || !idCard.Exists() || !mobile.Exists() { + return nil, errors.New("api请求, FLXG162A, 获取相关参数失败") + } + + resp, err := a.tianyuanapi.CallInterface("FLXG162A", map[string]interface{}{ + "name": name.String(), + "id_card": idCard.String(), + "mobile_no": mobile.String(), + }) + + if err != nil { + return nil, err + } + + respBytes, err := convertTianyuanResponse(resp) + if err != nil { + return nil, err + } + + flagFraudrelation := gjson.GetBytes(respBytes, "flag_fraudrelation") + if !flagFraudrelation.Exists() || flagFraudrelation.String() != "1" { + return nil, fmt.Errorf("自然人团伙欺诈排查查询失败") + } + frgListLevel := gjson.GetBytes(respBytes, "frg_list_level") + if !frgListLevel.Exists() { + return nil, fmt.Errorf("frg_list_level 字段不存在") + } + + frgGroupNum := gjson.GetBytes(respBytes, "frg_group_num") + if !frgGroupNum.Exists() { + return nil, fmt.Errorf("frg_group_num 字段不存在") + } + + // 构建包含两个字段的JSON响应 + result := map[string]interface{}{ + "frg_list_level": frgListLevel.Value(), + "frg_group_num": frgGroupNum.Value(), + } + + resultJSON, err := json.Marshal(result) + if err != nil { + return nil, fmt.Errorf("序列化结果失败: %v", err) + } + + return resultJSON, nil +} + // ProcessFLXG3D56Request 特殊名单 func (a *ApiRequestService) ProcessFLXG3D56Request(params []byte) ([]byte, error) { name := gjson.GetBytes(params, "name") @@ -1202,53 +1293,37 @@ func (a *ApiRequestService) ProcessBehaviorRiskScanRequest(params []byte) ([]byt data []byte err error } - results := make(chan apiResult, 2) // 2个风险检测项 + results := make(chan apiResult, 4) // 4个风险检测项 // 并行调用两个不同的风险检测API - wg.Add(2) + wg.Add(4) // 黑灰产检测 go func() { defer wg.Done() - resp, err := a.tianyuanapi.CallInterface("FLXGC9D1", map[string]interface{}{ - "name": name.String(), - "id_card": idCard.String(), - "mobile_no": mobile.String(), - }) - if err != nil { - results <- apiResult{name: "black_gray_level", data: nil, err: err} - return - } + respBytes, err := a.ProcessFLXGC9D1Request(params) + results <- apiResult{name: "black_gray_level", data: respBytes, err: err} + }() - respBytes, err := convertTianyuanResponse(resp) - if err != nil { - results <- apiResult{name: "black_gray_level", data: nil, err: err} - return - } - - results <- apiResult{name: "black_gray_level", data: respBytes, err: nil} + // 反赌反诈 + go func() { + defer wg.Done() + respBytes, err := a.ProcessFLXG0687Request(params) + results <- apiResult{name: "anti_fraud_gaming", data: respBytes, err: err} }() // 电诈风险预警 go func() { defer wg.Done() - resp, err := a.tianyuanapi.CallInterface("FLXG0687", map[string]interface{}{ - "name": name.String(), - "id_card": idCard.String(), - "mobile_no": mobile.String(), - }) - if err != nil { - results <- apiResult{name: "telefraud_level", data: nil, err: err} - return - } + respBytes, err := a.ProcessFLXG9687Request(params) + results <- apiResult{name: "telefraud_level", data: respBytes, err: err} + }() - respBytes, err := convertTianyuanResponse(resp) - if err != nil { - results <- apiResult{name: "telefraud_level", data: nil, err: err} - return - } - - results <- apiResult{name: "telefraud_level", data: respBytes, err: nil} + // 团伙欺诈 + go func() { + defer wg.Done() + respBytes, err := a.ProcessFLXG162ARequest(params) + results <- apiResult{name: "fraud_group", data: respBytes, err: err} }() // 关闭结果通道