This commit is contained in:
2025-09-20 23:29:49 +08:00
parent 7b1b75e7a9
commit 1b931cb816
13 changed files with 582 additions and 37 deletions

View File

@@ -2,6 +2,7 @@ package services
import (
"context"
"encoding/json"
"fmt"
"tyapi-server/internal/application/api/commands"
@@ -119,6 +120,10 @@ func registerAllProcessors(combService *comb.CombService) {
"QYGL8271": qygl.ProcessQYGL8271Request,
"QYGLB4C0": qygl.ProcessQYGLB4C0Request,
"QYGL23T7": qygl.ProcessQYGL23T7Request, // 企业三要素验证
"QYGL5A3C": qygl.ProcessQYGL5A3CRequest, // 对外投资历史
"QYGL8B4D": qygl.ProcessQYGL8B4DRequest, // 融资历史
"QYGL9E2F": qygl.ProcessQYGL9E2FRequest, // 行政处罚
"QYGL7C1A": qygl.ProcessQYGL7C1ARequest, // 经营异常
"COMENT01": qygl.ProcessCOMENT01Request, // 企业风险报告
// YYSY系列处理器
@@ -151,9 +156,8 @@ func registerAllProcessors(combService *comb.CombService) {
"IVYZ5E3F": ivyz.ProcessIVYZ5E3FRequest,
"IVYZ7F3A": ivyz.ProcessIVYZ7F3ARequest,
// COMB系列处理器
"COMB298Y": comb.ProcessCOMB298YRequest,
"COMB86PM": comb.ProcessCOMB86PMRequest,
// COMB系列处理器 - 只注册有自定义逻辑的组合包
"COMB86PM": comb.ProcessCOMB86PMRequest, // 有自定义逻辑重命名ApiCode
// QCXG系列处理器
"QCXG7A2B": qcxg.ProcessQCXG7A2BRequest,
@@ -185,10 +189,31 @@ var RequestProcessors map[string]processors.ProcessorFunc
// PreprocessRequestApi 调用指定的请求处理函数
func (a *ApiRequestService) PreprocessRequestApi(ctx context.Context, apiCode string, params []byte, options *commands.ApiCallOptions, callContext *processors.CallContext) ([]byte, error) {
// 设置Options和CallContext到依赖容器
deps := a.processorDeps.WithOptions(options).WithCallContext(callContext)
// 1. 优先查找已注册的自定义处理器
if processor, exists := RequestProcessors[apiCode]; exists {
// 设置Options和CallContext到依赖容器
deps := a.processorDeps.WithOptions(options).WithCallContext(callContext)
return processor(ctx, params, deps)
}
// 2. 检查是否为组合包COMB开头使用通用组合包处理器
if len(apiCode) >= 4 && apiCode[:4] == "COMB" {
return a.processGenericCombRequest(ctx, apiCode, params, deps)
}
return nil, fmt.Errorf("%s: 未找到处理器: %s", ErrSystem, apiCode)
}
// processGenericCombRequest 通用组合包处理器
func (a *ApiRequestService) processGenericCombRequest(ctx context.Context, apiCode string, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) {
// 调用组合包服务处理请求
// 这里不需要验证参数,因为组合包的参数验证由各个子处理器负责
combinedResult, err := deps.CombService.ProcessCombRequest(ctx, params, deps, apiCode)
if err != nil {
return nil, err
}
// 直接返回组合结果,无任何自定义处理
return json.Marshal(combinedResult)
}