瀏覽代碼

fix: add floor lookup to beacon service

master
Blaz Smehov 1 周之前
父節點
當前提交
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 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 { if err != nil {
msg := fmt.Sprintf("Error in updating tracker: %v", err) msg := fmt.Sprintf("Error in updating tracker: %v", err)
slog.Error(msg) slog.Error(msg)
@@ -139,10 +139,29 @@ func LocationToBeaconServiceAI(msg model.HTTPLocation, db *gorm.DB, writer *kafk
return 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 { 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 return
} }




二進制
location 查看文件


二進制
server 查看文件


Loading…
取消
儲存