add COMBHZY2

This commit is contained in:
2025-11-12 23:16:37 +08:00
parent a3d0b341a9
commit 3745a3768f
5 changed files with 1856 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
package comb
import (
"context"
"encoding/json"
"errors"
"fmt"
"tyapi-server/internal/domains/api/dto"
"tyapi-server/internal/domains/api/services/processors"
)
// ProcessCOMBHZY2Request 处理 COMBHZY2 组合包请求
func ProcessCOMBHZY2Request(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) {
var req dto.COMBHZY2Req
if err := json.Unmarshal(params, &req); err != nil {
return nil, errors.Join(processors.ErrSystem, err)
}
if err := deps.Validator.ValidateStruct(req); err != nil {
return nil, errors.Join(processors.ErrInvalidParam, err)
}
combinedResult, err := deps.CombService.ProcessCombRequest(ctx, params, deps, "COMBHZY2")
if err != nil {
return nil, err
}
sourceCtx, err := buildSourceContextFromCombined(combinedResult)
if err != nil {
return nil, err
}
report := buildTargetReport(sourceCtx)
return json.Marshal(report)
}
func buildSourceContextFromCombined(result *processors.CombinedResult) (*sourceContext, error) {
if result == nil {
return nil, errors.New("组合包响应为空")
}
src := sourceFile{Responses: make([]sourceResponse, 0, len(result.Responses))}
for _, resp := range result.Responses {
if !resp.Success {
continue
}
raw, err := json.Marshal(resp.Data)
if err != nil {
return nil, fmt.Errorf("序列化子产品(%s)数据失败: %w", resp.ApiCode, err)
}
src.Responses = append(src.Responses, sourceResponse{
ApiCode: resp.ApiCode,
Data: raw,
Success: resp.Success,
})
}
if len(src.Responses) == 0 {
return nil, errors.New("组合包子产品全部调用失败")
}
return buildSourceContext(src)
}

File diff suppressed because it is too large Load Diff