|
@@ -51,54 +51,62 @@ func (a ruleChainService) Create(ruleChain *models.RuleChain) error {
|
|
|
}
|
|
|
|
|
|
func (a ruleChainService) create(ruleChain *models.RuleChain) error {
|
|
|
- if len(ruleChain.Cell) > 0 {
|
|
|
- nodeMap := make(map[string]models.RuleNode)
|
|
|
- for _, v := range ruleChain.Cell {
|
|
|
- if v.Shape != "edge" {
|
|
|
- ruleNode := models.RuleNode{
|
|
|
- Model: gorm.Model{},
|
|
|
- RecordId: guid.S(),
|
|
|
- RuleChainID: ruleChain.RecordId,
|
|
|
- Type: v.Data.Type,
|
|
|
- Name: v.Data.Name,
|
|
|
- DebugModel: true,
|
|
|
- Intro: v.Data.Desc,
|
|
|
- }
|
|
|
- if v.Shape == "input-node" {
|
|
|
- ruleChain.FirstRuleNodeID = ruleNode.RecordId
|
|
|
- ruleNode.Name = "数据输入"
|
|
|
- }
|
|
|
-
|
|
|
- if len(v.Data.Headers) > 0 {
|
|
|
- marshal, _ := json.Marshal(v.Data.Headers)
|
|
|
- ruleNode.Configuration = fmt.Sprintf("%s", marshal)
|
|
|
- }
|
|
|
-
|
|
|
- nodeMap[v.Id] = ruleNode
|
|
|
-
|
|
|
- err := a.model.RuleNode.Create(&ruleNode)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
+
|
|
|
+ nodeMap := make(map[string]models.RuleNode)
|
|
|
+ for _, v := range ruleChain.Cell {
|
|
|
+ if v.Shape != "edge" {
|
|
|
+ ruleNode := models.RuleNode{
|
|
|
+ Model: gorm.Model{},
|
|
|
+ RecordId: guid.S(),
|
|
|
+ RuleChainID: ruleChain.RecordId,
|
|
|
+ Type: v.Data.Type,
|
|
|
+ Name: v.Data.Name,
|
|
|
+ DebugModel: true,
|
|
|
+ Intro: v.Data.Desc,
|
|
|
+ }
|
|
|
+ if v.Shape == "input-node" {
|
|
|
+ ruleChain.FirstRuleNodeID = ruleNode.RecordId
|
|
|
+ ruleNode.Name = "数据输入"
|
|
|
+ }
|
|
|
+
|
|
|
+ configuration := models.NodeConfiguration{
|
|
|
+ Url: v.Data.Url,
|
|
|
+ Method: v.Data.Method,
|
|
|
+ Headers: v.Data.Headers,
|
|
|
+ Retry: v.Data.Retry,
|
|
|
+ TimeOut: v.Data.TimeOut,
|
|
|
+ RetryWait: v.Data.RetryWait,
|
|
|
+ }
|
|
|
+
|
|
|
+ marshal, _ := json.Marshal(configuration)
|
|
|
+ ruleNode.Configuration = fmt.Sprintf("%s", marshal)
|
|
|
+
|
|
|
+ nodeMap[v.Id] = ruleNode
|
|
|
+
|
|
|
+ err := a.model.RuleNode.Create(&ruleNode)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- for _, v := range ruleChain.Cell {
|
|
|
- if v.Shape == "edge" {
|
|
|
- err := a.model.Relation.Create(&models.Relation{
|
|
|
- RecordId: guid.S(),
|
|
|
- RuleChainId: ruleChain.RecordId,
|
|
|
- FromID: nodeMap[v.Data.Source].RecordId,
|
|
|
- FromType: nodeMap[v.Data.Source].Type,
|
|
|
- ToID: nodeMap[v.Data.Target].RecordId,
|
|
|
- ToType: nodeMap[v.Data.Target].Type,
|
|
|
- })
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
+ for _, v := range ruleChain.Cell {
|
|
|
+ if v.Shape == "edge" {
|
|
|
+ err := a.model.Relation.Create(&models.Relation{
|
|
|
+ RecordId: guid.S(),
|
|
|
+ RuleChainId: ruleChain.RecordId,
|
|
|
+ FromID: nodeMap[v.Source.Cell].RecordId,
|
|
|
+ FromType: nodeMap[v.Target.Cell].Type,
|
|
|
+ ToID: nodeMap[v.Source.Cell].RecordId,
|
|
|
+ ToType: nodeMap[v.Target.Cell].Type,
|
|
|
+ RelationType: v.Data.Label,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
return nil
|
|
|
}
|
|
|
|