From bb48a3ef0bdc2b5a0b50ca429bc5bc0a118f9732 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期五, 13 九月 2024 02:49:22 +0800 Subject: [PATCH] use goroutinne run rfid read --- models/positions.go | 22 +++++++++++++++++++--- 1 files changed, 19 insertions(+), 3 deletions(-) diff --git a/models/positions.go b/models/positions.go index daccc16..0978bca 100644 --- a/models/positions.go +++ b/models/positions.go @@ -1,10 +1,13 @@ 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"` + 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;"` } @@ -12,10 +15,23 @@ 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 } + +func (d *Positions) Clean() error { + timestamp := time.Now().Unix() - 3600 + return db.Table(d.TableName()).Where("create_time <= ?", timestamp).Delete(&d).Error +} -- Gitblit v1.8.0