Files
hr_data_analyzer/main.go
T
2026-05-01 07:46:48 +08:00

76 lines
2.1 KiB
Go

package main
import (
"hr_receiver/config"
"hr_receiver/controllers"
"hr_receiver/models"
"hr_receiver/mqtt"
"hr_receiver/routes"
"log"
)
func main() {
// 初始化配置
config.InitConfig()
// 连接数据库
config.ConnectDB()
config.DB.Debug()
// 自动迁移模型
config.DB.AutoMigrate(&models.TrainRecord{},
&models.TrainingData{},
&models.Belt{},
&models.HeartRate{},
&models.BeltAnalysis{},
&models.StepTrainRecord{},
&models.StepHeartRate{},
&models.StepStrideFreq{},
&models.RegressionResult{},
&models.User{},
&models.UserRegionBinding{},
&models.Kindergarten{},
&models.ProjectType{},
&models.ProductDefinition{},
&models.ProjectProductTemplate{},
&models.ProductInventory{},
&models.AppFile{},
&models.AppFileShareCode{},
&models.MqttHeartRateRecord{},
&models.MqttStepCountRecord{},
&models.MqttGatewayStatusRecord{},
&models.MqttTrainingSessionRecord{},
&models.Gateway{},
&models.AIAnalysisRecord{},
&models.AIPricingConfig{},
)
if err := models.BackfillLegacyUserPermissions(config.DB); err != nil {
log.Printf("legacy user permission backfill failed: %v", err)
}
if err := models.EnsureDefaultAdmin(config.DB); err != nil {
log.Printf("default admin init failed: %v", err)
}
if err := models.EnsureDefaultAIPricing(config.DB); err != nil {
log.Printf("default ai pricing init failed: %v", err)
}
if err := models.EnsureDefaultProjectTypes(config.DB); err != nil {
log.Printf("default project types init failed: %v", err)
}
if err := models.EnsureDefaultProductDefinitions(config.DB); err != nil {
log.Printf("default product definitions init failed: %v", err)
}
if err := models.EnsureDefaultProjectProductTemplates(config.DB); err != nil {
log.Printf("default project product templates init failed: %v", err)
}
if err := mqtt.Start(config.DB, config.App.MQTT); err != nil {
log.Printf("mqtt listener start failed: %v", err)
}
mqtt.InitDebugService(config.DB, config.App.MQTT)
controllers.StartLessonPlanCleanupJob(config.DB)
// 启动服务
r := routes.SetupRouter()
r.Run(":8081")
}