Files
tyapi-server/internal/domains/api/services/processors/dependencies.go

70 lines
2.4 KiB
Go
Raw Normal View History

2025-07-28 01:46:39 +08:00
package processors
import (
"context"
"tyapi-server/internal/application/api/commands"
2025-07-30 00:51:22 +08:00
"tyapi-server/internal/infrastructure/external/tianyancha"
2025-07-28 01:46:39 +08:00
"tyapi-server/internal/infrastructure/external/westdex"
"tyapi-server/internal/infrastructure/external/yushan"
"tyapi-server/internal/shared/interfaces"
)
// CombServiceInterface 组合包服务接口
type CombServiceInterface interface {
2025-08-02 02:54:21 +08:00
ProcessCombRequest(ctx context.Context, params []byte, deps *ProcessorDependencies, packageCode string) (*CombinedResult, error)
2025-07-28 01:46:39 +08:00
}
// ProcessorDependencies 处理器依赖容器
type ProcessorDependencies struct {
2025-07-30 00:51:22 +08:00
WestDexService *westdex.WestDexService
YushanService *yushan.YushanService
TianYanChaService *tianyancha.TianYanChaService
Validator interfaces.RequestValidator
CombService CombServiceInterface // Changed to interface to break import cycle
Options *commands.ApiCallOptions // 添加Options支持
2025-07-28 01:46:39 +08:00
}
// NewProcessorDependencies 创建处理器依赖容器
func NewProcessorDependencies(
westDexService *westdex.WestDexService,
yushanService *yushan.YushanService,
2025-07-30 00:51:22 +08:00
tianYanChaService *tianyancha.TianYanChaService,
2025-07-28 01:46:39 +08:00
validator interfaces.RequestValidator,
combService CombServiceInterface, // Changed to interface
) *ProcessorDependencies {
return &ProcessorDependencies{
2025-07-30 00:51:22 +08:00
WestDexService: westDexService,
YushanService: yushanService,
TianYanChaService: tianYanChaService,
Validator: validator,
CombService: combService,
Options: nil, // 初始化为nil在调用时设置
2025-07-28 01:46:39 +08:00
}
}
// WithOptions 设置Options的便捷方法
func (deps *ProcessorDependencies) WithOptions(options *commands.ApiCallOptions) *ProcessorDependencies {
deps.Options = options
return deps
}
// ProcessorFunc 处理器函数类型定义
2025-08-02 02:54:21 +08:00
type ProcessorFunc func(ctx context.Context, params []byte, deps *ProcessorDependencies) ([]byte, error)
// CombinedResult 组合结果
type CombinedResult struct {
Responses []*SubProductResult `json:"responses"` // 子接口响应列表
}
// SubProductResult 子产品处理结果
type SubProductResult struct {
ApiCode string `json:"api_code"` // 子接口标识
Data interface{} `json:"data"` // 子接口返回数据
Success bool `json:"success"` // 是否成功
Error string `json:"error,omitempty"` // 错误信息(仅在失败时)
SortOrder int `json:"-"` // 排序字段不输出到JSON
}