zhangzengfei
2024-06-06 dc765761b9bb6866635f06f754d28895507e711f
models/positions.go
@@ -1,16 +1,31 @@
package models
import "time"
type Positions struct {
   Id         uint   `gorm:"column:id;primary_key;auto_increment;unique;not null;"`
   DeviceId   string `gorm:"column:device_id;" json:"device_id"`
   DeviceId   string `gorm:"column:device_id;index" json:"device_id"`
   Pos        string `gorm:"column:pos" json:"pos"`
   CreateTime int64  `gorm:"column:create_time;autoCreateTime;"`
   CreateTime int64  `gorm:"column:create_time;index"`
   TimeString string `gorm:"column:time_string;"`
}
func (d *Positions) TableName() string {
   return "positions"
}
func (d *Positions) Save() error {
   return db.Table(d.TableName()).Save(d).Error
}
func (d *Positions) FindDevicePosition(devId string, timestamp int64) error {
   return db.Table(d.TableName()).Where(&d, "device_id = ? AND create_time < ?", devId, timestamp).Order("create_time desc").First(&d).Error
   return db.Table(d.TableName()).Where("device_id = ? AND create_time <= ?", devId, timestamp).Order("create_time desc").First(&d).Error
}
func (d *Positions) FindPositionByTime(timestamp int64) error {
   return db.Table(d.TableName()).Where("create_time <= ?", timestamp).Order("create_time desc").First(&d).Error
}
func (d *Positions) Clean() error {
   timestamp := time.Now().Unix() - 3600
   return db.Table(d.TableName()).Where("create_time <= ?", timestamp).Delete(&d).Error
}