From 539a78196da60eb97cf7057c5c85dfaa9b240741 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 11 十月 2024 16:21:32 +0800
Subject: [PATCH] 添加A3平层传感器数据获取方式

---
 models/positions.go |   29 +++++++++++++++++++++++++----
 1 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/models/positions.go b/models/positions.go
index f8dbdb5..0978bca 100644
--- a/models/positions.go
+++ b/models/positions.go
@@ -1,16 +1,37 @@
 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;"`
 }
 
 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("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) 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