diff --git a/kernel/model/graph.go b/kernel/model/graph.go index 30be916f3..57894978d 100644 --- a/kernel/model/graph.go +++ b/kernel/model/graph.go @@ -113,23 +113,26 @@ func BuildTreeGraph(id, query string) (boxID string, nodes []*GraphNode, links [ rootIDs = append(rootIDs, rootDef.ID) } - sqlRootRefBlocks := sql.QueryRefRootBlocksByDefRootIDs(rootIDs) - for defRootID, sqlRefBlocks := range sqlRootRefBlocks { + sqlRefBlocks := sql.QueryRefRootBlocksByDefRootIDs(rootIDs) + for defRootID, sqlRefBlocks := range sqlRefBlocks { rootBlock := getBlockIn(rootDefBlocks, defRootID) if nil == rootBlock { continue } - refBlocks := fromSQLBlocks(&sqlRefBlocks, "", 0) - rootBlock.Refs = append(rootBlock.Refs, refBlocks...) - } - - // 按定义处理 - sqlRootRefBlocks = sql.QueryRefRootBlocksByDefRootIDs([]string{rootID}) - for _, sqlRefBlocks := range sqlRootRefBlocks { blocks = append(blocks, rootBlock) refBlocks := fromSQLBlocks(&sqlRefBlocks, "", 0) rootBlock.Refs = append(rootBlock.Refs, refBlocks...) + blocks = append(blocks, refBlocks...) + } + + // 按定义处理 + sqlRefBlocks = sql.QueryRefRootBlocksByDefRootIDs([]string{rootID}) + for _, sqlRefBlocks := range sqlRefBlocks { + blocks = append(blocks, rootBlock) + refBlocks := fromSQLBlocks(&sqlRefBlocks, "", 0) + rootBlock.Refs = append(rootBlock.Refs, refBlocks...) + blocks = append(blocks, refBlocks...) } } } diff --git a/kernel/sql/block_ref_query.go b/kernel/sql/block_ref_query.go index 93b066e0f..80cde1f18 100644 --- a/kernel/sql/block_ref_query.go +++ b/kernel/sql/block_ref_query.go @@ -170,7 +170,7 @@ func QueryRefRootBlocksByDefRootIDs(defRootIDs []string) (ret map[string][]*Bloc } if nil == ret[defRootID] { - ret[defRootID] = []*Block{} + ret[defRootID] = []*Block{&block} } else { ret[defRootID] = append(ret[defRootID], &block) }