rule_chain_service.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package ruleEngine
  2. type RuleChainService interface {
  3. // 根据id查询规则链数据
  4. FindRuleChainById(tenantId, ruleChainId string) (*RuleChain, error)
  5. // 根据id查询规则节点数据
  6. FindRuleNodeById(tenantId, ruleNodeId string) (*RuleNode, error)
  7. // 查询规则链的节点列表
  8. GetRuleChainNodes(tenantId, ruleChainId string) ([]*RuleNode, error)
  9. // 查询租户的全部规则链
  10. FindRuleChains(tenantId string) ([]*RuleChain, error)
  11. // 查询节点的连接关系列表
  12. GetRuleNodeRelations(tenantId, nodeId string) ([]*Relation, error)
  13. }
  14. type TestRuleChainService struct {
  15. }
  16. func (t *TestRuleChainService) GetRuleNodeRelations(tenantId, nodeId string) ([]*Relation, error) {
  17. if nodeId == "node1" {
  18. return []*Relation{
  19. {
  20. From: "node1",
  21. To: "node2",
  22. Type: "True",
  23. RelationTypeGroup: COMMON,
  24. },
  25. }, nil
  26. }
  27. return nil, nil
  28. }
  29. func (t *TestRuleChainService) FindRuleChainById(tenantId, ruleChainId string) (*RuleChain, error) {
  30. return &RuleChain{
  31. TenantId: "tenant_1",
  32. Name: "test rule chain 1",
  33. FirstNodeId: "node1",
  34. IsDebug: false,
  35. IsRoot: true,
  36. Config: "",
  37. ChainId: "chain id 1",
  38. }, nil
  39. }
  40. func (t *TestRuleChainService) FindRuleNodeById(tenantId, ruleNodeId string) (*RuleNode, error) {
  41. switch ruleNodeId {
  42. case "node1":
  43. return &RuleNode{
  44. RuleChainId: "chain id 1",
  45. Type: "MsgTypeFilterNode",
  46. Name: "filternode1",
  47. IsDebug: false,
  48. Config: "",
  49. RuleNodeId: "node1",
  50. }, nil
  51. case "node2":
  52. return &RuleNode{
  53. RuleChainId: "chain id 2",
  54. Type: "MsgTypeFilterNode",
  55. Name: "filternode2",
  56. IsDebug: false,
  57. Config: "",
  58. RuleNodeId: "node2",
  59. }, nil
  60. }
  61. return nil, nil
  62. }
  63. func (t *TestRuleChainService) GetRuleChainNodes(tenantId, ruleChainId string) ([]*RuleNode, error) {
  64. return []*RuleNode{
  65. {
  66. RuleChainId: "chain id 1",
  67. Type: "MsgTypeFilterNode",
  68. Name: "filternode",
  69. IsDebug: false,
  70. Config: "",
  71. RuleNodeId: "node1",
  72. },
  73. {
  74. RuleChainId: "chain id 2",
  75. Type: "MsgTypeFilterNode",
  76. Name: "filternode",
  77. IsDebug: false,
  78. Config: "",
  79. RuleNodeId: "node2",
  80. },
  81. }, nil
  82. }
  83. func (t *TestRuleChainService) FindRuleChains(tenantId string) ([]*RuleChain, error) {
  84. return []*RuleChain{
  85. {
  86. TenantId: "tenant_1",
  87. Name: "test rule chain 1",
  88. FirstNodeId: "node1",
  89. IsDebug: false,
  90. IsRoot: true,
  91. Config: "",
  92. ChainId: "chain id 1",
  93. },
  94. }, nil
  95. }