|
|
|
@@ -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 |
|
|
|
} |
|
|
|
|
|
|
|
|