From 3e9a1a28b1283e40bc7edb94e2370c74e7fd68e0 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期五, 17 五月 2024 15:54:29 +0800 Subject: [PATCH] 添加订阅查询接口 --- models/device.go | 34 +++++++++++++++++++++++++++------- 1 files changed, 27 insertions(+), 7 deletions(-) diff --git a/models/device.go b/models/device.go index 5a6b417..1fe4e4c 100644 --- a/models/device.go +++ b/models/device.go @@ -1,17 +1,20 @@ package models -import "gorm.io/gorm" +import ( + "gorm.io/gorm" + "time" +) type Device struct { Id string `gorm:"column:id;primary_key;" json:"id"` Name string `gorm:"column:name" json:"name"` Addr string `gorm:"column:addr" json:"addr"` - Pos string `gorm:"column:pos" json:"pos"` + Floor string `gorm:"column:pos" json:"pos"` Ext string `gorm:"column:ext" json:"ext"` Ip string `gorm:"column:ip" json:"ip"` - CreateTime int64 `gorm:"column:create_time;autoCreateTime;" json:"create_time"` - UpdateTime int64 `gorm:"column:update_time;autoUpdateTime" json:"update_time"` - DeleteTime int64 `gorm:"column:delete_time" json:"delete_time"` + CreateTime int64 `gorm:"column:create_time;autoCreateTime;" json:"-"` + UpdateTime int64 `gorm:"column:update_time;autoUpdateTime" json:"-"` + DeleteTime int64 `gorm:"column:delete_time" json:"-"` } func (d *Device) TableName() string { @@ -33,20 +36,37 @@ func (d *Device) Upsert() error { var existingDevice Device - if err := db.Where("id = ?", d.Id).First(&existingDevice).Error; err != nil { + if err := db.Table(d.TableName()).Where("id = ?", d.Id).First(&existingDevice).Error; err != nil { if err == gorm.ErrRecordNotFound { // 璁板綍涓嶅瓨鍦紝鍒涘缓鏂拌褰� db.Create(&d) + } else { // 鍏朵粬閿欒锛屼綘鍙互杩涜閫傚綋鐨勫鐞� return err } } else { // 璁板綍瀛樺湪锛屾洿鏂扮幇鏈夎褰� - existingDevice.Pos = d.Pos + if d.Floor == "" || d.Ip == "" { + return nil + } + + existingDevice.Floor = d.Floor existingDevice.Ip = d.Ip + db.Save(&existingDevice) } + // 璁板綍浣嶇疆鐨勫巻鍙�, 缁欎汉鑴告姄鎷嶅尮閰嶆ゼ灞� + if existingDevice.Floor != "" { + var pos = Positions{ + DeviceId: d.Id, + Pos: d.Floor, + CreateTime: time.Now().Unix(), + TimeString: time.Now().Format("2006-01-02 15:04:05"), + } + + db.Create(&pos) + } return nil } -- Gitblit v1.8.0