package model import ( "modelRT/config" jsoniter "github.com/json-iterator/go" "go.uber.org/zap" ) var ParseFunc = func(parseConfig interface{}) { logger := zap.L() modelParseConfig, ok := parseConfig.(config.ModelParseConfig) if !ok { logger.Error("conversion model parse config type failed") return } for _, circuitDiagram := range modelParseConfig.CircuitDiagramInfos { parseStruct := SelectModelByType(circuitDiagram.Type) err := jsoniter.Unmarshal([]byte(circuitDiagram.OtherParams), parseStruct) if err != nil { logger.Error("parsing circuit diagram params failed", zap.Int64("circuit_diagram_id", circuitDiagram.ID), zap.Error(err)) panic(err) } // TODO 利用多叉树结构存储解析后的电路图 } key := modelParseConfig.CircuitDiagramID // TODO 形成 key-多叉树结构 modelParseConfig.CircuitDiagramMap.Store(key, nil) return }