|
@@ -38,7 +38,7 @@ func NewRuleChainService(model *model.All) RuleChainService {
|
|
}
|
|
}
|
|
|
|
|
|
func (a ruleChainService) Query(pi, ps int, name string) ([]models.RuleChain, int, error) {
|
|
func (a ruleChainService) Query(pi, ps int, name string) ([]models.RuleChain, int, error) {
|
|
- return a.model.RuleChain.Query(pi, ps, name)
|
|
|
|
|
|
+ return a.model.RuleChain.Query(pi, ps, name, false)
|
|
}
|
|
}
|
|
|
|
|
|
func (a ruleChainService) Get(vendorId, recordId string) (models.RuleChain, error) {
|
|
func (a ruleChainService) Get(vendorId, recordId string) (models.RuleChain, error) {
|
|
@@ -47,7 +47,18 @@ func (a ruleChainService) Get(vendorId, recordId string) (models.RuleChain, erro
|
|
|
|
|
|
func (a ruleChainService) Create(ruleChain *models.RuleChain) error {
|
|
func (a ruleChainService) Create(ruleChain *models.RuleChain) error {
|
|
ruleChain.RecordId = guid.S()
|
|
ruleChain.RecordId = guid.S()
|
|
-
|
|
|
|
|
|
+ if ruleChain.Root {
|
|
|
|
+ result, total, err := a.model.RuleChain.Query(1, 1, "", true)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ if total > 0 {
|
|
|
|
+ _, err = a.model.RuleChain.UpdateChainRoot(result[0].RecordId, false)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
err := a.model.RuleChain.Create(ruleChain)
|
|
err := a.model.RuleChain.Create(ruleChain)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
@@ -142,18 +153,19 @@ func (a ruleChainService) create(params *models.RuleChainParams) (firstNodeId st
|
|
if err != nil {
|
|
if err != nil {
|
|
return firstNodeId, err
|
|
return firstNodeId, err
|
|
}
|
|
}
|
|
- if firstNodeId == "" {
|
|
|
|
- firstNodeId = ruleNode.RecordId
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
for _, v := range params.Cell {
|
|
for _, v := range params.Cell {
|
|
- if v.GetString("shape") == "edge" && v.GetString("source.cell") != inputNodeId {
|
|
|
|
|
|
+ if v.GetString("shape") == "edge" {
|
|
|
|
+ if v.GetString("source.cell") == inputNodeId {
|
|
|
|
+ firstNodeId = nodeMap[v.GetString("target.cell")].RecordId
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
err = a.model.Relation.Create(&models.Relation{
|
|
err = a.model.Relation.Create(&models.Relation{
|
|
- RecordId: guid.S(),
|
|
|
|
- RuleChainId: params.RecordId,
|
|
|
|
- FromID: nodeMap[v.GetString("source.cell")].RecordId,
|
|
|
|
|
|
+ RecordId: guid.S(),
|
|
|
|
+ //RuleChainId: params.RecordId,
|
|
|
|
+ FromID: nodeMap[v.GetString("source.cell")].RecordId,
|
|
//FromType: nodeMap[v.Source.Cell].Type,
|
|
//FromType: nodeMap[v.Source.Cell].Type,
|
|
ToID: nodeMap[v.GetString("target.cell")].RecordId,
|
|
ToID: nodeMap[v.GetString("target.cell")].RecordId,
|
|
ToType: nodeMap[v.GetString("target.cell")].Type,
|
|
ToType: nodeMap[v.GetString("target.cell")].Type,
|
|
@@ -163,21 +175,6 @@ func (a ruleChainService) create(params *models.RuleChainParams) (firstNodeId st
|
|
return firstNodeId, err
|
|
return firstNodeId, err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- //if v.Shape == "edge" && v.Source.Cell != inputNodeId {
|
|
|
|
- // err := a.model.Relation.Create(&models.Relation{
|
|
|
|
- // RecordId: guid.S(),
|
|
|
|
- // RuleChainId: params.RecordId,
|
|
|
|
- // FromID: nodeMap[v.Source.Cell].RecordId,
|
|
|
|
- // //FromType: nodeMap[v.Source.Cell].Type,
|
|
|
|
- // ToID: nodeMap[v.Target.Cell].RecordId,
|
|
|
|
- // ToType: nodeMap[v.Target.Cell].Type,
|
|
|
|
- // RelationType: v.Data.Label,
|
|
|
|
- // })
|
|
|
|
- // if err != nil {
|
|
|
|
- // return firstNodeId, err
|
|
|
|
- // }
|
|
|
|
- //}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
return firstNodeId, err
|
|
return firstNodeId, err
|
|
@@ -215,15 +212,15 @@ func (a ruleChainService) delete(ruleChain *models.RuleChain) error {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- relation, _, err := a.model.Relation.Query(1, 100, ruleChain.RecordId)
|
|
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- if len(relation) > 0 {
|
|
|
|
- for _, v := range relation {
|
|
|
|
- _ = a.model.Relation.DeleteByChainId(&v)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ //relation, _, err := a.model.Relation.Query(1, 100, ruleChain.RecordId)
|
|
|
|
+ //if err != nil {
|
|
|
|
+ // return err
|
|
|
|
+ //}
|
|
|
|
+ //if len(relation) > 0 {
|
|
|
|
+ // for _, v := range relation {
|
|
|
|
+ // _ = a.model.Relation.DeleteByChainId(&v)
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
@@ -269,9 +266,22 @@ func (a ruleChainService) UpdateChainRoot(params *models.ChangeRootParams) error
|
|
//if params.Root {
|
|
//if params.Root {
|
|
// isRoot = 1
|
|
// isRoot = 1
|
|
//}
|
|
//}
|
|
- _, err := a.model.RuleChain.UpdateChainRoot(params.VendorId, params.RecordId, params.Root)
|
|
|
|
|
|
+ _, err := a.model.RuleChain.UpdateChainRoot(params.RecordId, params.Root)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
+ if params.Root {
|
|
|
|
+ data, total, err := a.model.RuleChain.Query(1, 1, "", true)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ if total > 0 {
|
|
|
|
+ data[0].Root = false
|
|
|
|
+ _, err := a.model.RuleChain.UpdateChainRoot(data[0].RecordId, data[0].Root)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|