package pgsql_alarmSnapshot import ( "context" "fmt" "fwh-toolbox-server/models/model_pgsql/model_alarm_snapshot" "fwh-toolbox-server/models/model_pgsql/query_alarm_snapshot" "time" "go.uber.org/zap" "gorm.io/gorm/clause" ) type SnapshotData = model_alarm_snapshot.SiteAlarmSnapshotData func QuerySnapshotData(c context.Context, sn string, logTime string) ([]*SnapshotData, error) { ctx, cancel := context.WithTimeout(c, 5*time.Second) defer cancel() start, err := time.Parse(time.DateOnly, logTime) if err != nil { return nil, err } end := start.Add(24 * time.Hour) SnapshotDataModel := query_alarm_snapshot.SiteAlarmSnapshotData data, err := SnapshotDataModel.WithContext(ctx). Where( SnapshotDataModel.Sn.Eq(sn), SnapshotDataModel.LogTime.Gte(start), SnapshotDataModel.LogTime.Lt(end), ). Find() return data, err } func InsertSnapshotData(c context.Context, data *SnapshotData) error { if data == nil { return fmt.Errorf("InsertSnapshotData empty data.") } ctx, cancel := context.WithTimeout(c, 5*time.Second) defer cancel() SnapshotDataModel := query_alarm_snapshot.SiteAlarmSnapshotData err := SnapshotDataModel.WithContext(ctx).Clauses(clause.OnConflict{ UpdateAll: true, }).Create(data) if err != nil { zap.L().Error("文件解析记录数据库创建失败", zap.String("err", err.Error()), zap.Int64("ID", data.ID), zap.String("SN", data.Sn), zap.Int64("FileRecordID", data.FileRecordID), zap.String("LogTime", data.LogTime.String())) return err } return nil }