Просмотр исходного кода

fix: add floor lookup to beacon service

master
Blaz Smehov 1 неделю назад
Родитель
Сommit
ecb3913508
3 измененных файлов: 23 добавлений и 4 удалений
  1. +23
    -4
      internal/pkg/service/beacon_service.go
  2. Двоичные данные
      location
  3. Двоичные данные
      server

+ 23
- 4
internal/pkg/service/beacon_service.go Просмотреть файл

@@ -101,7 +101,7 @@ func LocationToBeaconService(msg model.HTTPLocation, db *gorm.DB, writer *kafka.
return
}

err = db.Where("id = ?", msg.ID).Updates(model.Tracker{Position: gw.ID, X: gw.X, Y: gw.Y}).Error
err = db.Where("id = ?", msg.ID).Updates(model.Tracker{Position: gw.ID, X: gw.X, Y: gw.Y, Floor: floor.ID}).Error
if err != nil {
msg := fmt.Sprintf("Error in updating tracker: %v", err)
slog.Error(msg)
@@ -139,10 +139,29 @@ func LocationToBeaconServiceAI(msg model.HTTPLocation, db *gorm.DB, writer *kafk
return
}

err = db.Where("id = ?", tracker.ID).Updates(model.Tracker{Position: gw.ID, X: msg.X, Y: msg.Y}).Error
var floor model.Floor
floorFound := msg.Z >= 0
if floorFound {
if err := db.Where("floor_number = ?", int(msg.Z)).First(&floor).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
slog.Warn(fmt.Sprintf("Floor not found for floor number: %f, skipping floor update", msg.Z))
floorFound = false
} else {
slog.Error(fmt.Sprintf("Error querying floor for floor number: %f: %v", msg.Z, err))
return
}
}
}

var trackerUpdate model.Tracker
if floorFound {
trackerUpdate = model.Tracker{Position: gw.ID, X: msg.X, Y: msg.Y, Floor: floor.ID}
} else {
trackerUpdate = model.Tracker{Position: gw.ID, X: msg.X, Y: msg.Y}
}
err = db.Where("id = ?", tracker.ID).Updates(trackerUpdate).Error
if err != nil {
msg := fmt.Sprintf("Error in updating tracker: %v", err)
slog.Error(msg)
slog.Error(fmt.Sprintf("Error in updating tracker: %v", err))
return
}



Двоичные данные
location Просмотреть файл


Двоичные данные
server Просмотреть файл


Загрузка…
Отмена
Сохранить