From cd2451c985d0a10861b7191daa2b7f3b6180352e Mon Sep 17 00:00:00 2001 From: douxu Date: Thu, 5 Dec 2024 16:32:23 +0800 Subject: [PATCH] add free vertex process in create update delete api --- example/circuit_diagram_create.json | 2 +- example/circuit_diagram_delete.json | 5 +++++ example/circuit_diagram_update.json | 2 +- handler/circuit_diagram_create.go | 6 ++++++ handler/circuit_diagram_delete.go | 6 ++++++ handler/circuit_diagram_update.go | 6 ++++++ network/circuit_diagram_create_request.go | 1 + network/circuit_diagram_delete_request.go | 1 + network/circuit_diagram_update_request.go | 1 + sql/topologic.go | 2 +- 10 files changed, 29 insertions(+), 3 deletions(-) diff --git a/example/circuit_diagram_create.json b/example/circuit_diagram_create.json index 7910a04..004116b 100644 --- a/example/circuit_diagram_create.json +++ b/example/circuit_diagram_create.json @@ -10,7 +10,7 @@ "uuid_to":"12311-116" } ], - "free_vertex":[ + "free_vertexs":[ "12311-111", "12311-112", "12311-115" diff --git a/example/circuit_diagram_delete.json b/example/circuit_diagram_delete.json index b03018e..ae6efe7 100644 --- a/example/circuit_diagram_delete.json +++ b/example/circuit_diagram_delete.json @@ -10,6 +10,11 @@ "uuid_to":"12311-116" } ], + "free_vertexs":[ + "12311-111", + "12311-112", + "12311-115" + ], "component_infos":[ { "uuid":"12311-114", diff --git a/example/circuit_diagram_update.json b/example/circuit_diagram_update.json index 7d7fc46..14d3e94 100644 --- a/example/circuit_diagram_update.json +++ b/example/circuit_diagram_update.json @@ -23,7 +23,7 @@ "new_uuid_to":"12311-116" } ], - "free_vertex":[ + "free_vertexs":[ "12311-111", "12311-112", "12311-115" diff --git a/handler/circuit_diagram_create.go b/handler/circuit_diagram_create.go index 4e9d9c8..a22ef8f 100644 --- a/handler/circuit_diagram_create.go +++ b/handler/circuit_diagram_create.go @@ -149,6 +149,12 @@ func CircuitDiagramCreateHandler(c *gin.Context) { diagram.StoreComponentMap(componentInfo.UUID, &componentMap) } + if len(request.FreeVertexs) > 0 { + for _, freeVertex := range request.FreeVertexs { + graph.FreeVertexs[freeVertex] = struct{}{} + } + } + // commit transsction tx.Commit() resp := network.BasicResponse{ diff --git a/handler/circuit_diagram_delete.go b/handler/circuit_diagram_delete.go index 79aef0e..95f6273 100644 --- a/handler/circuit_diagram_delete.go +++ b/handler/circuit_diagram_delete.go @@ -190,6 +190,12 @@ func CircuitDiagramDeleteHandler(c *gin.Context) { diagram.DeleteComponentMap(componentInfo.UUID) } + if len(request.FreeVertexs) > 0 { + for _, freeVertex := range request.FreeVertexs { + delete(graph.FreeVertexs, freeVertex) + } + } + // commit transsction tx.Commit() resp := network.BasicResponse{ diff --git a/handler/circuit_diagram_update.go b/handler/circuit_diagram_update.go index f15f96f..a9eb397 100644 --- a/handler/circuit_diagram_update.go +++ b/handler/circuit_diagram_update.go @@ -147,6 +147,12 @@ func CircuitDiagramUpdateHandler(c *gin.Context) { diagram.UpdateComponentMap(componentInfo.UUID, &componentMap) } + if len(request.FreeVertexs) > 0 { + for _, freeVertex := range request.FreeVertexs { + graph.FreeVertexs[freeVertex] = struct{}{} + } + } + // commit transsction tx.Commit() diff --git a/network/circuit_diagram_create_request.go b/network/circuit_diagram_create_request.go index 2ae3e9a..e8447f1 100644 --- a/network/circuit_diagram_create_request.go +++ b/network/circuit_diagram_create_request.go @@ -40,6 +40,7 @@ type ComponentCreateInfo struct { // CircuitDiagramCreateRequest defines request params of circuit diagram create api type CircuitDiagramCreateRequest struct { PageID int64 `json:"page_id"` + FreeVertexs []string `json:"free_vertexs"` TopologicLinks []TopologicCreateInfo `json:"topologics"` ComponentInfos []ComponentCreateInfo `json:"component_infos"` } diff --git a/network/circuit_diagram_delete_request.go b/network/circuit_diagram_delete_request.go index 625fe22..fbabb94 100644 --- a/network/circuit_diagram_delete_request.go +++ b/network/circuit_diagram_delete_request.go @@ -24,6 +24,7 @@ type ComponentDelInfo struct { // CircuitDiagramDeleteRequest defines request params of circuit diagram delete api type CircuitDiagramDeleteRequest struct { PageID int64 `json:"page_id"` + FreeVertexs []string `json:"free_vertexs"` TopologicLinks []TopologicDelInfo `json:"topologics"` ComponentInfos []ComponentDelInfo `json:"component_infos"` } diff --git a/network/circuit_diagram_update_request.go b/network/circuit_diagram_update_request.go index 2ee6264..04cdc73 100644 --- a/network/circuit_diagram_update_request.go +++ b/network/circuit_diagram_update_request.go @@ -52,6 +52,7 @@ type ComponentUpdateInfo struct { // CircuitDiagramUpdateRequest defines request params of circuit diagram update api type CircuitDiagramUpdateRequest struct { PageID int64 `json:"page_id"` + FreeVertexs []string `json:"free_vertexs"` TopologicLinks []TopologicChangeInfo `json:"topologics"` ComponentInfos []ComponentUpdateInfo `json:"component_infos"` } diff --git a/sql/topologic.go b/sql/topologic.go index f7fdd50..58be916 100644 --- a/sql/topologic.go +++ b/sql/topologic.go @@ -13,5 +13,5 @@ var RecursiveSQL = `WITH RECURSIVE recursive_tree as ( ) SELECT * FROM recursive_tree;` -// TODO 为 Topologic 表增加唯一所以 +// TODO 为 Topologic 表增加唯一索引 // CREATE UNIQUE INDEX uuid_from_to_page_id_idx ON public."Topologic"(uuid_from,uuid_to,page_id);