mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
[feat]网关子设备,直接上传,自动创建设备模型,无需手动创建
This commit is contained in:
@@ -41,20 +41,25 @@ func (m *deviceModelImpl) Insert(data entity.Device) *entity.Device {
|
||||
biz.IsTrue(list != nil && len(*list) == 0, "设备名称已经存在")
|
||||
//2 创建认证TOKEN IOTHUB使用
|
||||
token := GetDeviceToken(&data)
|
||||
err := global.RedisDb.Set(data.Token, token.GetMarshal(), time.Hour*24*365)
|
||||
biz.ErrIsNil(err, "设备缓存失败")
|
||||
// 子网关不需要设置token
|
||||
if data.DeviceType == global.GATEWAYS {
|
||||
data.Token = ""
|
||||
err := global.RedisDb.Set(data.Name, token.GetMarshal(), time.Hour*24*365)
|
||||
biz.ErrIsNil(err, "设备缓存失败")
|
||||
} else {
|
||||
err := global.RedisDb.Set(data.Token, token.GetMarshal(), time.Hour*24*365)
|
||||
biz.ErrIsNil(err, "设备缓存失败")
|
||||
}
|
||||
//3 添加设备
|
||||
err = tx.Table(m.table).Create(&data).Error
|
||||
err := tx.Table(m.table).Create(&data).Error
|
||||
biz.ErrIsNil(err, "添加设备失败")
|
||||
// 创建超级表 失败就
|
||||
err = createDeviceTable(data.Pid, data.Name)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
biz.ErrIsNil(err, "添加设备失败,设备表创建失败")
|
||||
if data.Pid != "" {
|
||||
err = createDeviceTable(data.Pid, data.Name)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
biz.ErrIsNil(err, "添加设备失败,设备表创建失败")
|
||||
}
|
||||
}
|
||||
tx.Commit()
|
||||
return &data
|
||||
@@ -152,6 +157,7 @@ func (m *deviceModelImpl) FindList(data entity.Device) *[]entity.DeviceRes {
|
||||
return &list
|
||||
}
|
||||
|
||||
// TODO 如果更改的是产品,tdengine的设备表也要更改
|
||||
func (m *deviceModelImpl) Update(data entity.Device) *entity.Device {
|
||||
if data.DeviceType == global.GATEWAYS {
|
||||
data.Token = ""
|
||||
|
||||
@@ -12,6 +12,7 @@ type (
|
||||
ProductModel interface {
|
||||
Insert(data entity.Product) *entity.Product
|
||||
FindOne(id string) *entity.ProductRes
|
||||
FindDefault() *entity.Product
|
||||
FindListPage(page, pageSize int, data entity.Product) (*[]entity.ProductRes, int64)
|
||||
FindList(data entity.Product) *[]entity.ProductRes
|
||||
Update(data entity.Product) *entity.Product
|
||||
@@ -51,6 +52,14 @@ func (m *productModelImpl) FindOne(id string) *entity.ProductRes {
|
||||
return resData
|
||||
}
|
||||
|
||||
func (m *productModelImpl) FindDefault() *entity.Product {
|
||||
resData := new(entity.Product)
|
||||
err := global.Db.Table(m.table).Where("is_default = ?", "1").First(resData).Error
|
||||
log.Println(err)
|
||||
biz.ErrIsNil(err, "查询默认产品失败")
|
||||
return resData
|
||||
}
|
||||
|
||||
func (m *productModelImpl) FindListPage(page, pageSize int, data entity.Product) (*[]entity.ProductRes, int64) {
|
||||
list := make([]entity.ProductRes, 0)
|
||||
var total int64 = 0
|
||||
@@ -77,7 +86,6 @@ func (m *productModelImpl) FindListPage(page, pageSize int, data entity.Product)
|
||||
}
|
||||
err := db.Count(&total).Error
|
||||
err = db.Order("create_time").Preload("ProductCategory").Limit(pageSize).Offset(offset).Find(&list).Error
|
||||
log.Println(err)
|
||||
biz.ErrIsNil(err, "查询产品分页列表失败")
|
||||
return &list, total
|
||||
}
|
||||
@@ -111,8 +119,7 @@ func (m *productModelImpl) FindList(data entity.Product) *[]entity.ProductRes {
|
||||
func (m *productModelImpl) Update(data entity.Product) *entity.Product {
|
||||
// go的一些默认值 int 0 bool false 保存失败需要先转成map
|
||||
err := global.Db.Table(m.table).Where("id = ?", data.Id).Updates(data).Error
|
||||
log.Println("update", err)
|
||||
//biz.ErrIsNil(, "修改产品失败")
|
||||
biz.ErrIsNil(err, "修改产品失败")
|
||||
return &data
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ package services
|
||||
|
||||
import (
|
||||
"github.com/PandaXGO/PandaKit/biz"
|
||||
"log"
|
||||
"pandax/apps/device/entity"
|
||||
"pandax/pkg/global"
|
||||
)
|
||||
@@ -117,7 +116,6 @@ func (m *otaModelImpl) Update(data entity.ProductOta) *entity.ProductOta {
|
||||
return &data
|
||||
}
|
||||
func (m *otaModelImpl) updateLatest(id string, IsLatest bool) {
|
||||
log.Println(id, IsLatest)
|
||||
err := global.Db.Table(m.table).Where("id = ?", id).Update("is_latest", IsLatest).Error
|
||||
global.Log.Error("更新失败", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user