siteAlarmSnapshotFileRecord.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package alarmSnapshot
  2. import (
  3. "context"
  4. "fwh-toolbox-server/models/model_pgsql/model_alarm_snapshot"
  5. "fwh-toolbox-server/models/model_pgsql/query_alarm_snapshot"
  6. "time"
  7. "go.uber.org/zap"
  8. "gorm.io/gorm/clause"
  9. )
  10. type FileRecord = model_alarm_snapshot.SiteAlarmSnapshotFileRecord
  11. // 查询文件解析记录
  12. func QuerySnapshotFileRecord(c context.Context, fileName string) (*FileRecord, error) {
  13. ctx, cancel := context.WithTimeout(c, 5*time.Second)
  14. defer cancel()
  15. fileRecordModel := query_alarm_snapshot.SiteAlarmSnapshotFileRecord
  16. data, err := fileRecordModel.WithContext(ctx).
  17. Where(fileRecordModel.FileName.Eq(fileName)).
  18. First()
  19. return data, err
  20. }
  21. // 插入文件解析记录(冲突时覆盖)
  22. func InsertSnapshotFileRecord(c context.Context, data *FileRecord) error {
  23. ctx, cancel := context.WithTimeout(c, 5*time.Second)
  24. defer cancel()
  25. fileRecordModel := query_alarm_snapshot.SiteAlarmSnapshotFileRecord
  26. err := fileRecordModel.WithContext(ctx).Clauses(clause.OnConflict{
  27. UpdateAll: true,
  28. }).Create(data)
  29. if err != nil {
  30. zap.L().Error("文件解析记录数据库创建失败", zap.String("err", err.Error()))
  31. return err
  32. }
  33. return nil
  34. }