package ruleEngine type RuleChainService interface { // 根据id查询规则链数据 FindRuleChainById(tenantId, ruleChainId string) (*RuleChain, error) // 根据id查询规则节点数据 FindRuleNodeById(tenantId, ruleNodeId string) (*RuleNode, error) // 查询规则链的节点列表 GetRuleChainNodes(tenantId, ruleChainId string) ([]*RuleNode, error) // 查询租户的全部规则链 FindRuleChains(tenantId string) ([]*RuleChain, error) // 查询节点的连接关系列表 GetRuleNodeRelations(tenantId, nodeId string) ([]*Relation, error) } type TestRuleChainService struct { } func (t *TestRuleChainService) GetRuleNodeRelations(tenantId, nodeId string) ([]*Relation, error) { if nodeId == "node1" { return []*Relation{ { From: "node1", To: "node2", Type: "True", RelationTypeGroup: COMMON, }, }, nil } if nodeId == "node2" { return []*Relation { { From: "node2", To: "node3", Type: "True", RelationTypeGroup: COMMON, }, }, nil } return nil, nil } func (t *TestRuleChainService) FindRuleChainById(tenantId, ruleChainId string) (*RuleChain, error) { return &RuleChain{ TenantId: "tenant_1", Name: "test rule chain 1", FirstNodeId: "node1", IsDebug: true, IsRoot: true, Config: "", ChainId: "chain id 1", }, nil } func (t *TestRuleChainService) FindRuleNodeById(tenantId, ruleNodeId string) (*RuleNode, error) { switch ruleNodeId { case "node1": return &RuleNode{ RuleChainId: "chain id 1", Type: "MsgTypeFilterNode", Name: "filternode1", IsDebug: true, Config: "", RuleNodeId: "node1", }, nil case "node2": return &RuleNode{ RuleChainId: "chain id 2", Type: "MsgTypeFilterNode", Name: "filternode2", IsDebug: true, Config: "", RuleNodeId: "node2", }, nil case "node3": return &RuleNode{ RuleChainId: "chain id 2", Type: "RestApiRequestNode", Name: "rest api", IsDebug: true, Config: "", RuleNodeId: "node3", }, nil } return nil, nil } func (t *TestRuleChainService) GetRuleChainNodes(tenantId, ruleChainId string) ([]*RuleNode, error) { return []*RuleNode{ { RuleChainId: "chain id 1", Type: "MsgTypeFilterNode", Name: "filternode", IsDebug: true, Config: "", RuleNodeId: "node1", }, { RuleChainId: "chain id 2", Type: "MsgTypeFilterNode", Name: "filternode", IsDebug: true, Config: "", RuleNodeId: "node2", }, { RuleChainId: "chain id 2", Type: "RestApiRequestNode", Name: "rest api", IsDebug: true, Config: "", RuleNodeId: "node3", }, }, nil } func (t *TestRuleChainService) FindRuleChains(tenantId string) ([]*RuleChain, error) { return []*RuleChain{ { TenantId: "tenant_1", Name: "test rule chain 1", FirstNodeId: "node1", IsDebug: true, IsRoot: true, Config: "", ChainId: "chain id 1", }, }, nil }