zhangzengfei
2024-09-13 bb48a3ef0bdc2b5a0b50ca429bc5bc0a118f9732
models/positions.go
@@ -3,10 +3,11 @@
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"`
   Id         uint   `gorm:"column:id;primary_key;auto_increment;" json:"id"`
   DeviceId   string `gorm:"column:device_id;index" json:"device_id"`
   Pos        string `gorm:"column:pos" json:"pos"`
   CreateTime int64  `gorm:"column:create_time;"`
   RunDir     int    `gorm:"column:run_dir" json:"run_dir"`
   CreateTime int64  `gorm:"column:create_time;index"`
   TimeString string `gorm:"column:time_string;"`
}
@@ -14,10 +15,18 @@
   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("device_id = ? AND create_time <= ?", devId, timestamp).Order("create_time desc").First(&d).Error
}
func (d *Positions) FindMovePosition(timestamp int64, pos string) error {
   return db.Table(d.TableName()).Where("create_time >= ? AND pos != ?", timestamp, pos).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
}