package test_node import ( "fmt" "git.sxidc.com/go-tools/utils/pipeline/component" "git.sxidc.com/go-tools/utils/pipeline/component/flow" "github.com/mitchellh/mapstructure" "github.com/pkg/errors" ) const ( TypePrintln = "println" ) type PrintlnRunParams struct { Content string `mapstructure:"content"` } type PrintlnNode struct { component.BaseComponent } func (n *PrintlnNode) Run(globalRunParams *component.GlobalRunParams, dynamicParams map[string]any) (any, error) { return n.OnRun(globalRunParams, dynamicParams, func(globalRunParams *component.GlobalRunParams, dynamicParams map[string]any) (any, error) { fmt.Println("----------PRINTLN----------") fmt.Println("Global Params:") for key, value := range globalRunParams.CustomRunParams { fmt.Println(key+":", value) } rangeIndex, ok := dynamicParams[flow.RangeIndex] if ok { fmt.Println("Range Params Index:", rangeIndex) } rangeOnceValue, ok := dynamicParams[flow.RangeOnceValue] if ok { fmt.Println("Range Params:", rangeOnceValue) } biLeftParams, ok := dynamicParams[flow.BiLeft] if ok { fmt.Println("Bi Left Params:", biLeftParams) } biRightParams, ok := dynamicParams[flow.BiRight] if ok { fmt.Println("Bi Right Params:", biRightParams) } params := new(PrintlnRunParams) err := mapstructure.Decode(dynamicParams, params) if err != nil { return nil, errors.New(TypePrintln + "节点运行时参数Decode失败: " + err.Error()) } fmt.Println(params.Content) fmt.Println("----------PRINTLN----------") return nil, nil }) } type PrintlnBuilder struct{} func (builder *PrintlnBuilder) ProductType() string { return TypePrintln } func (builder *PrintlnBuilder) Build(name string, _ map[string]any, runParams map[string]any) (component.Component, error) { return &PrintlnNode{ BaseComponent: *component.NewBaseComponent(TypePrintln, name, runParams), }, nil }