34 lines
887 B
Go
34 lines
887 B
Go
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
|
|
}
|