optimize code of circuit diagram update API
This commit is contained in:
parent
16220a6dd7
commit
2df821f69a
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"page_id":1,
|
||||||
|
"topologics":[
|
||||||
|
{
|
||||||
|
"from_uuid":"12311-111",
|
||||||
|
"to_uuid":"12311-113"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from_uuid":"12311-111",
|
||||||
|
"to_uuid":"12311-114"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"component_infos":[
|
||||||
|
{
|
||||||
|
"uuid":"12311-113",
|
||||||
|
"component_type":1,
|
||||||
|
"params":""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uuid":"12311-114",
|
||||||
|
"component_type":1,
|
||||||
|
"params":""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -27,6 +27,7 @@ func CircuitDiagramLoadHandler(c *gin.Context) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
c.JSON(http.StatusOK, resp)
|
c.JSON(http.StatusOK, resp)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
topologicInfo, err := diagram.GetGraphMap(pageID)
|
topologicInfo, err := diagram.GetGraphMap(pageID)
|
||||||
|
|
@ -40,6 +41,7 @@ func CircuitDiagramLoadHandler(c *gin.Context) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
c.JSON(http.StatusOK, resp)
|
c.JSON(http.StatusOK, resp)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
payLoad := make(map[string]interface{})
|
payLoad := make(map[string]interface{})
|
||||||
payLoad["root_vertex"] = topologicInfo.RootVertex
|
payLoad["root_vertex"] = topologicInfo.RootVertex
|
||||||
|
|
@ -61,6 +63,7 @@ func CircuitDiagramLoadHandler(c *gin.Context) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
c.JSON(http.StatusOK, resp)
|
c.JSON(http.StatusOK, resp)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
byteSlice, err := componentParams.MarshalJSON()
|
byteSlice, err := componentParams.MarshalJSON()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -70,6 +73,7 @@ func CircuitDiagramLoadHandler(c *gin.Context) {
|
||||||
ResponseHeader: header,
|
ResponseHeader: header,
|
||||||
}
|
}
|
||||||
c.JSON(http.StatusOK, resp)
|
c.JSON(http.StatusOK, resp)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
componentParamMap[UUIDStr] = byteSlice
|
componentParamMap[UUIDStr] = byteSlice
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,74 @@
|
||||||
|
package handler
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"modelRT/diagram"
|
||||||
|
"modelRT/log"
|
||||||
|
"modelRT/network"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"github.com/gofrs/uuid"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CircuitDiagramUpdateHandler define circuit diagram update process API
|
||||||
|
func CircuitDiagramUpdateHandler(c *gin.Context) {
|
||||||
|
logger := log.GetLoggerInstance()
|
||||||
|
|
||||||
|
var request network.CircuitDiagramUpdateRequest
|
||||||
|
if err := c.ShouldBindJSON(&request); err != nil {
|
||||||
|
logger.Error("unmarshal circuit diagram update info failed", zap.Error(err))
|
||||||
|
header := network.ResponseHeader{Status: http.StatusBadRequest, ErrMsg: err.Error()}
|
||||||
|
resp := network.BasicResponse{
|
||||||
|
ResponseHeader: header,
|
||||||
|
}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
graph, err := diagram.GetGraphMap(request.PageID)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("get topologic data from set by pageID failed", zap.Error(err))
|
||||||
|
header := network.ResponseHeader{Status: http.StatusBadRequest, ErrMsg: err.Error()}
|
||||||
|
resp := network.BasicResponse{
|
||||||
|
ResponseHeader: header,
|
||||||
|
PayLoad: map[string]interface{}{
|
||||||
|
"page_id": request.PageID,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, newTopologicLink := range request.TopologicLinks {
|
||||||
|
fromUUID, err1 := uuid.FromString(newTopologicLink.FromUUID)
|
||||||
|
toUUID, err2 := uuid.FromString(newTopologicLink.ToUUID)
|
||||||
|
if err1 != nil || err2 != nil {
|
||||||
|
var err error
|
||||||
|
if err1 != nil {
|
||||||
|
err = fmt.Errorf("format from_uuid failed:%w", err1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err2 != nil {
|
||||||
|
err = fmt.Errorf("%s,format to_uuid failed:%w", err.Error(), err2)
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.Error("format uuid from string failed", zap.Error(err))
|
||||||
|
header := network.ResponseHeader{Status: http.StatusBadRequest, ErrMsg: err.Error()}
|
||||||
|
resp := network.BasicResponse{
|
||||||
|
ResponseHeader: header,
|
||||||
|
PayLoad: map[string]interface{}{
|
||||||
|
"from_uuid": newTopologicLink.FromUUID,
|
||||||
|
"to_uuid": newTopologicLink.ToUUID,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
graph.AddEdge(fromUUID, toUUID)
|
||||||
|
// TODO 修改 component 先关信息
|
||||||
|
fmt.Println(request.ComponentInfos)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
// Package network define struct of network operation
|
||||||
|
package network
|
||||||
|
|
||||||
|
// TopologicChangeInfo defines circuit diagram topologic change info
|
||||||
|
type TopologicChangeInfo struct {
|
||||||
|
FromUUID string `json:"from_uuid"`
|
||||||
|
ToUUID string `json:"to_uuid"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ComponentInfo defines circuit diagram component params info
|
||||||
|
type ComponentInfo struct {
|
||||||
|
UUID string `json:"uuid"`
|
||||||
|
ComponentType int `json:"component_type"`
|
||||||
|
Params string `json:"params"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CircuitDiagramUpdateRequest defines request params of circuit diagram update api
|
||||||
|
type CircuitDiagramUpdateRequest struct {
|
||||||
|
PageID int64 `json:"page_id"`
|
||||||
|
TopologicLinks []TopologicChangeInfo `json:"topologics"`
|
||||||
|
ComponentInfos []ComponentInfo `json:"component_infos"`
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue