39 Star 442 Fork 135

联犀/物联网iot模块

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
assemble.go 1.85 KB
一键复制 编辑 原始数据 按行查看 历史
杨磊 提交于 5个月前 . feat: 更新mod
package schemaDataRepo
import (
"encoding/json"
"gitee.com/unitedrhino/share/domain/deviceMsg/msgThing"
"gitee.com/unitedrhino/share/domain/schema"
"gitee.com/unitedrhino/share/utils"
"github.com/spf13/cast"
)
func ToEventData(db map[string]any) *msgThing.EventData {
var (
params map[string]any
paramStr = cast.ToString(db["param"])
)
err := json.Unmarshal([]byte(paramStr), &params)
if err != nil {
return nil
}
data := msgThing.EventData{
Identifier: cast.ToString(db["event_id"]),
Type: cast.ToString(db["event_type"]),
Params: params,
TimeStamp: cast.ToTime(db["ts"]),
}
return &data
}
func ToPropertyData(id string, p *schema.Property, db map[string]any) *msgThing.PropertyData {
propertyType := db[PropertyType]
switch propertyType {
case string(schema.DataTypeStruct):
data := msgThing.PropertyData{
Identifier: id,
Param: nil,
TimeStamp: cast.ToTime(db["ts"]),
}
delete(db, "ts")
delete(db, "device_name")
delete(db, PropertyType)
delete(db, "_num")
for k, v := range db {
db[k] = utils.BoolToInt(v)
}
data.Param = db
return &data
case string(schema.DataTypeArray):
switch p.Define.ArrayInfo.Type {
case schema.DataTypeStruct:
data := msgThing.PropertyData{
Identifier: id,
TimeStamp: cast.ToTime(db["ts"]),
}
delete(db, "ts")
delete(db, "device_name")
delete(db, PropertyType)
delete(db, "_num")
for k, v := range db {
db[k] = utils.BoolToInt(v)
}
data.Param = db
return &data
default:
data := msgThing.PropertyData{
Identifier: id,
Param: cast.ToString(utils.BoolToInt(db["param"])),
TimeStamp: cast.ToTime(db["ts"]),
}
return &data
}
default:
data := msgThing.PropertyData{
Identifier: id,
Param: cast.ToString(utils.BoolToInt(db["param"])),
TimeStamp: cast.ToTime(db["ts"]),
}
return &data
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/unitedrhino/things.git
git@gitee.com:unitedrhino/things.git
unitedrhino
things
物联网iot模块
v1.0.1

搜索帮助