调整文件命名
This commit is contained in:
@@ -44,16 +44,16 @@ func NewApplication(configPath string) (*Application, error) {
|
|||||||
apiServer := api.NewAPI(
|
apiServer := api.NewAPI(
|
||||||
cfg.Server,
|
cfg.Server,
|
||||||
logger,
|
logger,
|
||||||
infra.Repos.UserRepo,
|
infra.repos.userRepo,
|
||||||
appServices.PigFarmService,
|
appServices.pigFarmService,
|
||||||
appServices.PigBatchService,
|
appServices.pigBatchService,
|
||||||
appServices.MonitorService,
|
appServices.monitorService,
|
||||||
appServices.DeviceService,
|
appServices.deviceService,
|
||||||
appServices.PlanService,
|
appServices.planService,
|
||||||
appServices.UserService,
|
appServices.userService,
|
||||||
infra.TokenService,
|
infra.tokenService,
|
||||||
appServices.AuditService,
|
appServices.auditService,
|
||||||
infra.Lora.ListenHandler,
|
infra.lora.listenHandler,
|
||||||
)
|
)
|
||||||
|
|
||||||
// 4. 组装 Application 对象
|
// 4. 组装 Application 对象
|
||||||
@@ -74,7 +74,7 @@ func (app *Application) Start() error {
|
|||||||
app.Logger.Info("应用启动中...")
|
app.Logger.Info("应用启动中...")
|
||||||
|
|
||||||
// 1. 启动底层监听器
|
// 1. 启动底层监听器
|
||||||
if err := app.Infra.Lora.LoraListener.Listen(); err != nil {
|
if err := app.Infra.lora.loraListener.Listen(); err != nil {
|
||||||
return fmt.Errorf("启动 LoRa Mesh 监听器失败: %w", err)
|
return fmt.Errorf("启动 LoRa Mesh 监听器失败: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,12 +109,12 @@ func (app *Application) Stop() error {
|
|||||||
app.Domain.planService.Stop()
|
app.Domain.planService.Stop()
|
||||||
|
|
||||||
// 断开数据库连接
|
// 断开数据库连接
|
||||||
if err := app.Infra.Storage.Disconnect(); err != nil {
|
if err := app.Infra.storage.Disconnect(); err != nil {
|
||||||
app.Logger.Errorw("数据库连接断开失败", "error", err)
|
app.Logger.Errorw("数据库连接断开失败", "error", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关闭 LoRa Mesh 监听器
|
// 关闭 LoRa Mesh 监听器
|
||||||
if err := app.Infra.Lora.LoraListener.Stop(); err != nil {
|
if err := app.Infra.lora.loraListener.Stop(); err != nil {
|
||||||
app.Logger.Errorw("LoRa Mesh 监听器关闭失败", "error", err)
|
app.Logger.Errorw("LoRa Mesh 监听器关闭失败", "error", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,11 +26,11 @@ import (
|
|||||||
|
|
||||||
// Infrastructure 聚合了所有基础设施层的组件。
|
// Infrastructure 聚合了所有基础设施层的组件。
|
||||||
type Infrastructure struct {
|
type Infrastructure struct {
|
||||||
Storage database.Storage
|
storage database.Storage
|
||||||
Repos *Repositories
|
repos *Repositories
|
||||||
Lora *LoraComponents
|
lora *LoraComponents
|
||||||
NotifyService domain_notify.Service
|
notifyService domain_notify.Service
|
||||||
TokenService token.Service
|
tokenService token.Service
|
||||||
}
|
}
|
||||||
|
|
||||||
// initInfrastructure 初始化所有基础设施层组件。
|
// initInfrastructure 初始化所有基础设施层组件。
|
||||||
@@ -47,7 +47,7 @@ func initInfrastructure(cfg *config.Config, logger *logs.Logger) (*Infrastructur
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
notifyService, err := initNotifyService(cfg.Notify, logger, repos.UserRepo, repos.NotificationRepo)
|
notifyService, err := initNotifyService(cfg.Notify, logger, repos.userRepo, repos.notificationRepo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("初始化通知服务失败: %w", err)
|
return nil, fmt.Errorf("初始化通知服务失败: %w", err)
|
||||||
}
|
}
|
||||||
@@ -55,112 +55,112 @@ func initInfrastructure(cfg *config.Config, logger *logs.Logger) (*Infrastructur
|
|||||||
tokenService := token.NewTokenService([]byte(cfg.App.JWTSecret))
|
tokenService := token.NewTokenService([]byte(cfg.App.JWTSecret))
|
||||||
|
|
||||||
return &Infrastructure{
|
return &Infrastructure{
|
||||||
Storage: storage,
|
storage: storage,
|
||||||
Repos: repos,
|
repos: repos,
|
||||||
Lora: lora,
|
lora: lora,
|
||||||
NotifyService: notifyService,
|
notifyService: notifyService,
|
||||||
TokenService: tokenService,
|
tokenService: tokenService,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Repositories 聚合了所有的仓库实例。
|
// Repositories 聚合了所有的仓库实例。
|
||||||
type Repositories struct {
|
type Repositories struct {
|
||||||
UserRepo repository.UserRepository
|
userRepo repository.UserRepository
|
||||||
DeviceRepo repository.DeviceRepository
|
deviceRepo repository.DeviceRepository
|
||||||
AreaControllerRepo repository.AreaControllerRepository
|
areaControllerRepo repository.AreaControllerRepository
|
||||||
DeviceTemplateRepo repository.DeviceTemplateRepository
|
deviceTemplateRepo repository.DeviceTemplateRepository
|
||||||
PlanRepo repository.PlanRepository
|
planRepo repository.PlanRepository
|
||||||
PendingTaskRepo repository.PendingTaskRepository
|
pendingTaskRepo repository.PendingTaskRepository
|
||||||
ExecutionLogRepo repository.ExecutionLogRepository
|
executionLogRepo repository.ExecutionLogRepository
|
||||||
SensorDataRepo repository.SensorDataRepository
|
sensorDataRepo repository.SensorDataRepository
|
||||||
DeviceCommandLogRepo repository.DeviceCommandLogRepository
|
deviceCommandLogRepo repository.DeviceCommandLogRepository
|
||||||
PendingCollectionRepo repository.PendingCollectionRepository
|
pendingCollectionRepo repository.PendingCollectionRepository
|
||||||
UserActionLogRepo repository.UserActionLogRepository
|
userActionLogRepo repository.UserActionLogRepository
|
||||||
PigBatchRepo repository.PigBatchRepository
|
pigBatchRepo repository.PigBatchRepository
|
||||||
PigBatchLogRepo repository.PigBatchLogRepository
|
pigBatchLogRepo repository.PigBatchLogRepository
|
||||||
PigFarmRepo repository.PigFarmRepository
|
pigFarmRepo repository.PigFarmRepository
|
||||||
PigPenRepo repository.PigPenRepository
|
pigPenRepo repository.PigPenRepository
|
||||||
PigTransferLogRepo repository.PigTransferLogRepository
|
pigTransferLogRepo repository.PigTransferLogRepository
|
||||||
PigTradeRepo repository.PigTradeRepository
|
pigTradeRepo repository.PigTradeRepository
|
||||||
PigSickPigLogRepo repository.PigSickLogRepository
|
pigSickPigLogRepo repository.PigSickLogRepository
|
||||||
MedicationLogRepo repository.MedicationLogRepository
|
medicationLogRepo repository.MedicationLogRepository
|
||||||
RawMaterialRepo repository.RawMaterialRepository
|
rawMaterialRepo repository.RawMaterialRepository
|
||||||
NotificationRepo repository.NotificationRepository
|
notificationRepo repository.NotificationRepository
|
||||||
UnitOfWork repository.UnitOfWork
|
unitOfWork repository.UnitOfWork
|
||||||
}
|
}
|
||||||
|
|
||||||
// initRepositories 初始化所有的仓库。
|
// initRepositories 初始化所有的仓库。
|
||||||
func initRepositories(db *gorm.DB, logger *logs.Logger) *Repositories {
|
func initRepositories(db *gorm.DB, logger *logs.Logger) *Repositories {
|
||||||
return &Repositories{
|
return &Repositories{
|
||||||
UserRepo: repository.NewGormUserRepository(db),
|
userRepo: repository.NewGormUserRepository(db),
|
||||||
DeviceRepo: repository.NewGormDeviceRepository(db),
|
deviceRepo: repository.NewGormDeviceRepository(db),
|
||||||
AreaControllerRepo: repository.NewGormAreaControllerRepository(db),
|
areaControllerRepo: repository.NewGormAreaControllerRepository(db),
|
||||||
DeviceTemplateRepo: repository.NewGormDeviceTemplateRepository(db),
|
deviceTemplateRepo: repository.NewGormDeviceTemplateRepository(db),
|
||||||
PlanRepo: repository.NewGormPlanRepository(db),
|
planRepo: repository.NewGormPlanRepository(db),
|
||||||
PendingTaskRepo: repository.NewGormPendingTaskRepository(db),
|
pendingTaskRepo: repository.NewGormPendingTaskRepository(db),
|
||||||
ExecutionLogRepo: repository.NewGormExecutionLogRepository(db),
|
executionLogRepo: repository.NewGormExecutionLogRepository(db),
|
||||||
SensorDataRepo: repository.NewGormSensorDataRepository(db),
|
sensorDataRepo: repository.NewGormSensorDataRepository(db),
|
||||||
DeviceCommandLogRepo: repository.NewGormDeviceCommandLogRepository(db),
|
deviceCommandLogRepo: repository.NewGormDeviceCommandLogRepository(db),
|
||||||
PendingCollectionRepo: repository.NewGormPendingCollectionRepository(db),
|
pendingCollectionRepo: repository.NewGormPendingCollectionRepository(db),
|
||||||
UserActionLogRepo: repository.NewGormUserActionLogRepository(db),
|
userActionLogRepo: repository.NewGormUserActionLogRepository(db),
|
||||||
PigBatchRepo: repository.NewGormPigBatchRepository(db),
|
pigBatchRepo: repository.NewGormPigBatchRepository(db),
|
||||||
PigBatchLogRepo: repository.NewGormPigBatchLogRepository(db),
|
pigBatchLogRepo: repository.NewGormPigBatchLogRepository(db),
|
||||||
PigFarmRepo: repository.NewGormPigFarmRepository(db),
|
pigFarmRepo: repository.NewGormPigFarmRepository(db),
|
||||||
PigPenRepo: repository.NewGormPigPenRepository(db),
|
pigPenRepo: repository.NewGormPigPenRepository(db),
|
||||||
PigTransferLogRepo: repository.NewGormPigTransferLogRepository(db),
|
pigTransferLogRepo: repository.NewGormPigTransferLogRepository(db),
|
||||||
PigTradeRepo: repository.NewGormPigTradeRepository(db),
|
pigTradeRepo: repository.NewGormPigTradeRepository(db),
|
||||||
PigSickPigLogRepo: repository.NewGormPigSickLogRepository(db),
|
pigSickPigLogRepo: repository.NewGormPigSickLogRepository(db),
|
||||||
MedicationLogRepo: repository.NewGormMedicationLogRepository(db),
|
medicationLogRepo: repository.NewGormMedicationLogRepository(db),
|
||||||
RawMaterialRepo: repository.NewGormRawMaterialRepository(db),
|
rawMaterialRepo: repository.NewGormRawMaterialRepository(db),
|
||||||
NotificationRepo: repository.NewGormNotificationRepository(db),
|
notificationRepo: repository.NewGormNotificationRepository(db),
|
||||||
UnitOfWork: repository.NewGormUnitOfWork(db, logger),
|
unitOfWork: repository.NewGormUnitOfWork(db, logger),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// DomainServices 聚合了所有的领域服务实例。
|
// DomainServices 聚合了所有的领域服务实例。
|
||||||
type DomainServices struct {
|
type DomainServices struct {
|
||||||
PigPenTransferManager pig.PigPenTransferManager
|
pigPenTransferManager pig.PigPenTransferManager
|
||||||
PigTradeManager pig.PigTradeManager
|
pigTradeManager pig.PigTradeManager
|
||||||
PigSickManager pig.SickPigManager
|
pigSickManager pig.SickPigManager
|
||||||
PigBatchDomain pig.PigBatchService
|
pigBatchDomain pig.PigBatchService
|
||||||
GeneralDeviceService device.Service
|
generalDeviceService device.Service
|
||||||
taskFactory plan.TaskFactory
|
taskFactory plan.TaskFactory
|
||||||
PlanExecutionManager plan.ExecutionManager
|
planExecutionManager plan.ExecutionManager
|
||||||
AnalysisPlanTaskManager plan.AnalysisPlanTaskManager
|
analysisPlanTaskManager plan.AnalysisPlanTaskManager
|
||||||
planService plan.Service
|
planService plan.Service
|
||||||
}
|
}
|
||||||
|
|
||||||
// initDomainServices 初始化所有的领域服务。
|
// initDomainServices 初始化所有的领域服务。
|
||||||
func initDomainServices(cfg *config.Config, infra *Infrastructure, logger *logs.Logger) *DomainServices {
|
func initDomainServices(cfg *config.Config, infra *Infrastructure, logger *logs.Logger) *DomainServices {
|
||||||
// 猪群管理相关
|
// 猪群管理相关
|
||||||
pigPenTransferManager := pig.NewPigPenTransferManager(infra.Repos.PigPenRepo, infra.Repos.PigTransferLogRepo, infra.Repos.PigBatchRepo)
|
pigPenTransferManager := pig.NewPigPenTransferManager(infra.repos.pigPenRepo, infra.repos.pigTransferLogRepo, infra.repos.pigBatchRepo)
|
||||||
pigTradeManager := pig.NewPigTradeManager(infra.Repos.PigTradeRepo)
|
pigTradeManager := pig.NewPigTradeManager(infra.repos.pigTradeRepo)
|
||||||
pigSickManager := pig.NewSickPigManager(infra.Repos.PigSickPigLogRepo, infra.Repos.MedicationLogRepo)
|
pigSickManager := pig.NewSickPigManager(infra.repos.pigSickPigLogRepo, infra.repos.medicationLogRepo)
|
||||||
pigBatchDomain := pig.NewPigBatchService(infra.Repos.PigBatchRepo, infra.Repos.PigBatchLogRepo, infra.Repos.UnitOfWork,
|
pigBatchDomain := pig.NewPigBatchService(infra.repos.pigBatchRepo, infra.repos.pigBatchLogRepo, infra.repos.unitOfWork,
|
||||||
pigPenTransferManager, pigTradeManager, pigSickManager)
|
pigPenTransferManager, pigTradeManager, pigSickManager)
|
||||||
|
|
||||||
// 通用设备服务
|
// 通用设备服务
|
||||||
generalDeviceService := device.NewGeneralDeviceService(
|
generalDeviceService := device.NewGeneralDeviceService(
|
||||||
infra.Repos.DeviceRepo,
|
infra.repos.deviceRepo,
|
||||||
infra.Repos.DeviceCommandLogRepo,
|
infra.repos.deviceCommandLogRepo,
|
||||||
infra.Repos.PendingCollectionRepo,
|
infra.repos.pendingCollectionRepo,
|
||||||
logger,
|
logger,
|
||||||
infra.Lora.Comm,
|
infra.lora.comm,
|
||||||
)
|
)
|
||||||
|
|
||||||
// 任务工厂
|
// 任务工厂
|
||||||
taskFactory := task.NewTaskFactory(logger, infra.Repos.SensorDataRepo, infra.Repos.DeviceRepo, generalDeviceService)
|
taskFactory := task.NewTaskFactory(logger, infra.repos.sensorDataRepo, infra.repos.deviceRepo, generalDeviceService)
|
||||||
|
|
||||||
// 计划任务管理器
|
// 计划任务管理器
|
||||||
analysisPlanTaskManager := plan.NewAnalysisPlanTaskManager(infra.Repos.PlanRepo, infra.Repos.PendingTaskRepo, infra.Repos.ExecutionLogRepo, logger)
|
analysisPlanTaskManager := plan.NewAnalysisPlanTaskManager(infra.repos.planRepo, infra.repos.pendingTaskRepo, infra.repos.executionLogRepo, logger)
|
||||||
|
|
||||||
// 任务执行器
|
// 任务执行器
|
||||||
planExecutionManager := plan.NewPlanExecutionManager(
|
planExecutionManager := plan.NewPlanExecutionManager(
|
||||||
infra.Repos.PendingTaskRepo,
|
infra.repos.pendingTaskRepo,
|
||||||
infra.Repos.ExecutionLogRepo,
|
infra.repos.executionLogRepo,
|
||||||
infra.Repos.DeviceRepo,
|
infra.repos.deviceRepo,
|
||||||
infra.Repos.SensorDataRepo,
|
infra.repos.sensorDataRepo,
|
||||||
infra.Repos.PlanRepo,
|
infra.repos.planRepo,
|
||||||
analysisPlanTaskManager,
|
analysisPlanTaskManager,
|
||||||
taskFactory,
|
taskFactory,
|
||||||
logger,
|
logger,
|
||||||
@@ -173,75 +173,75 @@ func initDomainServices(cfg *config.Config, infra *Infrastructure, logger *logs.
|
|||||||
planService := plan.NewPlanService(planExecutionManager, analysisPlanTaskManager, logger)
|
planService := plan.NewPlanService(planExecutionManager, analysisPlanTaskManager, logger)
|
||||||
|
|
||||||
return &DomainServices{
|
return &DomainServices{
|
||||||
PigPenTransferManager: pigPenTransferManager,
|
pigPenTransferManager: pigPenTransferManager,
|
||||||
PigTradeManager: pigTradeManager,
|
pigTradeManager: pigTradeManager,
|
||||||
PigSickManager: pigSickManager,
|
pigSickManager: pigSickManager,
|
||||||
PigBatchDomain: pigBatchDomain,
|
pigBatchDomain: pigBatchDomain,
|
||||||
GeneralDeviceService: generalDeviceService,
|
generalDeviceService: generalDeviceService,
|
||||||
AnalysisPlanTaskManager: analysisPlanTaskManager,
|
analysisPlanTaskManager: analysisPlanTaskManager,
|
||||||
taskFactory: taskFactory,
|
taskFactory: taskFactory,
|
||||||
PlanExecutionManager: planExecutionManager,
|
planExecutionManager: planExecutionManager,
|
||||||
planService: planService,
|
planService: planService,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// AppServices 聚合了所有的应用服务实例。
|
// AppServices 聚合了所有的应用服务实例。
|
||||||
type AppServices struct {
|
type AppServices struct {
|
||||||
PigFarmService service.PigFarmService
|
pigFarmService service.PigFarmService
|
||||||
PigBatchService service.PigBatchService
|
pigBatchService service.PigBatchService
|
||||||
MonitorService service.MonitorService
|
monitorService service.MonitorService
|
||||||
DeviceService service.DeviceService
|
deviceService service.DeviceService
|
||||||
PlanService service.PlanService
|
planService service.PlanService
|
||||||
UserService service.UserService
|
userService service.UserService
|
||||||
AuditService audit.Service
|
auditService audit.Service
|
||||||
}
|
}
|
||||||
|
|
||||||
// initAppServices 初始化所有的应用服务。
|
// initAppServices 初始化所有的应用服务。
|
||||||
func initAppServices(infra *Infrastructure, domainServices *DomainServices, logger *logs.Logger) *AppServices {
|
func initAppServices(infra *Infrastructure, domainServices *DomainServices, logger *logs.Logger) *AppServices {
|
||||||
pigFarmService := service.NewPigFarmService(infra.Repos.PigFarmRepo, infra.Repos.PigPenRepo, infra.Repos.PigBatchRepo, domainServices.PigBatchDomain, infra.Repos.UnitOfWork, logger)
|
pigFarmService := service.NewPigFarmService(infra.repos.pigFarmRepo, infra.repos.pigPenRepo, infra.repos.pigBatchRepo, domainServices.pigBatchDomain, infra.repos.unitOfWork, logger)
|
||||||
pigBatchService := service.NewPigBatchService(domainServices.PigBatchDomain, logger)
|
pigBatchService := service.NewPigBatchService(domainServices.pigBatchDomain, logger)
|
||||||
monitorService := service.NewMonitorService(
|
monitorService := service.NewMonitorService(
|
||||||
infra.Repos.SensorDataRepo,
|
infra.repos.sensorDataRepo,
|
||||||
infra.Repos.DeviceCommandLogRepo,
|
infra.repos.deviceCommandLogRepo,
|
||||||
infra.Repos.ExecutionLogRepo,
|
infra.repos.executionLogRepo,
|
||||||
infra.Repos.PlanRepo,
|
infra.repos.planRepo,
|
||||||
infra.Repos.PendingCollectionRepo,
|
infra.repos.pendingCollectionRepo,
|
||||||
infra.Repos.UserActionLogRepo,
|
infra.repos.userActionLogRepo,
|
||||||
infra.Repos.RawMaterialRepo,
|
infra.repos.rawMaterialRepo,
|
||||||
infra.Repos.MedicationLogRepo,
|
infra.repos.medicationLogRepo,
|
||||||
infra.Repos.PigBatchRepo,
|
infra.repos.pigBatchRepo,
|
||||||
infra.Repos.PigBatchLogRepo,
|
infra.repos.pigBatchLogRepo,
|
||||||
infra.Repos.PigTransferLogRepo,
|
infra.repos.pigTransferLogRepo,
|
||||||
infra.Repos.PigSickPigLogRepo,
|
infra.repos.pigSickPigLogRepo,
|
||||||
infra.Repos.PigTradeRepo,
|
infra.repos.pigTradeRepo,
|
||||||
infra.Repos.NotificationRepo,
|
infra.repos.notificationRepo,
|
||||||
)
|
)
|
||||||
deviceService := service.NewDeviceService(
|
deviceService := service.NewDeviceService(
|
||||||
infra.Repos.DeviceRepo,
|
infra.repos.deviceRepo,
|
||||||
infra.Repos.AreaControllerRepo,
|
infra.repos.areaControllerRepo,
|
||||||
infra.Repos.DeviceTemplateRepo,
|
infra.repos.deviceTemplateRepo,
|
||||||
domainServices.GeneralDeviceService,
|
domainServices.generalDeviceService,
|
||||||
)
|
)
|
||||||
auditService := audit.NewService(infra.Repos.UserActionLogRepo, logger)
|
auditService := audit.NewService(infra.repos.userActionLogRepo, logger)
|
||||||
planService := service.NewPlanService(logger, infra.Repos.PlanRepo, domainServices.AnalysisPlanTaskManager)
|
planService := service.NewPlanService(logger, infra.repos.planRepo, domainServices.analysisPlanTaskManager)
|
||||||
userService := service.NewUserService(infra.Repos.UserRepo, infra.TokenService, infra.NotifyService, logger)
|
userService := service.NewUserService(infra.repos.userRepo, infra.tokenService, infra.notifyService, logger)
|
||||||
|
|
||||||
return &AppServices{
|
return &AppServices{
|
||||||
PigFarmService: pigFarmService,
|
pigFarmService: pigFarmService,
|
||||||
PigBatchService: pigBatchService,
|
pigBatchService: pigBatchService,
|
||||||
MonitorService: monitorService,
|
monitorService: monitorService,
|
||||||
DeviceService: deviceService,
|
deviceService: deviceService,
|
||||||
AuditService: auditService,
|
auditService: auditService,
|
||||||
PlanService: planService,
|
planService: planService,
|
||||||
UserService: userService,
|
userService: userService,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoraComponents 聚合了所有 LoRa 相关组件。
|
// LoraComponents 聚合了所有 LoRa 相关组件。
|
||||||
type LoraComponents struct {
|
type LoraComponents struct {
|
||||||
ListenHandler webhook.ListenHandler
|
listenHandler webhook.ListenHandler
|
||||||
Comm transport.Communicator
|
comm transport.Communicator
|
||||||
LoraListener transport.Listener
|
loraListener transport.Listener
|
||||||
}
|
}
|
||||||
|
|
||||||
// initLora 根据配置初始化 LoRa 相关组件。
|
// initLora 根据配置初始化 LoRa 相关组件。
|
||||||
@@ -256,13 +256,13 @@ func initLora(
|
|||||||
|
|
||||||
if cfg.Lora.Mode == config.LoraMode_LoRaWAN {
|
if cfg.Lora.Mode == config.LoraMode_LoRaWAN {
|
||||||
logger.Info("当前运行模式: lora_wan。初始化 ChirpStack 监听器和传输层。")
|
logger.Info("当前运行模式: lora_wan。初始化 ChirpStack 监听器和传输层。")
|
||||||
listenHandler = webhook.NewChirpStackListener(logger, repos.SensorDataRepo, repos.DeviceRepo, repos.AreaControllerRepo, repos.DeviceCommandLogRepo, repos.PendingCollectionRepo)
|
listenHandler = webhook.NewChirpStackListener(logger, repos.sensorDataRepo, repos.deviceRepo, repos.areaControllerRepo, repos.deviceCommandLogRepo, repos.pendingCollectionRepo)
|
||||||
comm = lora.NewChirpStackTransport(cfg.ChirpStack, logger)
|
comm = lora.NewChirpStackTransport(cfg.ChirpStack, logger)
|
||||||
loraListener = lora.NewPlaceholderTransport(logger)
|
loraListener = lora.NewPlaceholderTransport(logger)
|
||||||
} else {
|
} else {
|
||||||
logger.Info("当前运行模式: lora_mesh。初始化 LoRa Mesh 传输层和占位符监听器。")
|
logger.Info("当前运行模式: lora_mesh。初始化 LoRa Mesh 传输层和占位符监听器。")
|
||||||
listenHandler = webhook.NewPlaceholderListener(logger)
|
listenHandler = webhook.NewPlaceholderListener(logger)
|
||||||
tp, err := lora.NewLoRaMeshUartPassthroughTransport(cfg.LoraMesh, logger, repos.AreaControllerRepo, repos.PendingCollectionRepo, repos.DeviceRepo, repos.SensorDataRepo)
|
tp, err := lora.NewLoRaMeshUartPassthroughTransport(cfg.LoraMesh, logger, repos.areaControllerRepo, repos.pendingCollectionRepo, repos.deviceRepo, repos.sensorDataRepo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("无法初始化 LoRa Mesh 模块: %w", err)
|
return nil, fmt.Errorf("无法初始化 LoRa Mesh 模块: %w", err)
|
||||||
}
|
}
|
||||||
@@ -271,9 +271,9 @@ func initLora(
|
|||||||
}
|
}
|
||||||
|
|
||||||
return &LoraComponents{
|
return &LoraComponents{
|
||||||
ListenHandler: listenHandler,
|
listenHandler: listenHandler,
|
||||||
Comm: comm,
|
comm: comm,
|
||||||
LoraListener: loraListener,
|
loraListener: loraListener,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ func (app *Application) initializeSystemPlans() error {
|
|||||||
predefinedSystemPlans := app.getPredefinedSystemPlans()
|
predefinedSystemPlans := app.getPredefinedSystemPlans()
|
||||||
|
|
||||||
// 1. 获取所有已存在的系统计划
|
// 1. 获取所有已存在的系统计划
|
||||||
existingPlans, _, err := app.Infra.Repos.PlanRepo.ListPlans(repository.ListPlansOptions{
|
existingPlans, _, err := app.Infra.repos.planRepo.ListPlans(repository.ListPlansOptions{
|
||||||
PlanType: repository.PlanTypeFilterSystem,
|
PlanType: repository.PlanTypeFilterSystem,
|
||||||
}, 1, 99999) // 使用一个较大的 pageSize 来获取所有系统计划
|
}, 1, 99999) // 使用一个较大的 pageSize 来获取所有系统计划
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -66,7 +66,7 @@ func (app *Application) initializeSystemPlans() error {
|
|||||||
predefinedPlan.ID = foundExistingPlan.ID
|
predefinedPlan.ID = foundExistingPlan.ID
|
||||||
predefinedPlan.ExecuteCount = foundExistingPlan.ExecuteCount
|
predefinedPlan.ExecuteCount = foundExistingPlan.ExecuteCount
|
||||||
|
|
||||||
if err := app.Infra.Repos.PlanRepo.UpdatePlan(predefinedPlan); err != nil {
|
if err := app.Infra.repos.planRepo.UpdatePlan(predefinedPlan); err != nil {
|
||||||
return fmt.Errorf("更新预定义计划 '%s' 失败: %w", predefinedPlan.Name, err)
|
return fmt.Errorf("更新预定义计划 '%s' 失败: %w", predefinedPlan.Name, err)
|
||||||
} else {
|
} else {
|
||||||
app.Logger.Infof("成功更新预定义计划 '%s'。", predefinedPlan.Name)
|
app.Logger.Infof("成功更新预定义计划 '%s'。", predefinedPlan.Name)
|
||||||
@@ -74,7 +74,7 @@ func (app *Application) initializeSystemPlans() error {
|
|||||||
} else {
|
} else {
|
||||||
// 如果计划不存在, 则创建
|
// 如果计划不存在, 则创建
|
||||||
app.Logger.Infof("预定义计划 '%s' 不存在,正在创建...", predefinedPlan.Name)
|
app.Logger.Infof("预定义计划 '%s' 不存在,正在创建...", predefinedPlan.Name)
|
||||||
if err := app.Infra.Repos.PlanRepo.CreatePlan(predefinedPlan); err != nil {
|
if err := app.Infra.repos.planRepo.CreatePlan(predefinedPlan); err != nil {
|
||||||
return fmt.Errorf("创建预定义计划 '%s' 失败: %w", predefinedPlan.Name, err)
|
return fmt.Errorf("创建预定义计划 '%s' 失败: %w", predefinedPlan.Name, err)
|
||||||
} else {
|
} else {
|
||||||
app.Logger.Infof("成功创建预定义计划 '%s'。", predefinedPlan.Name)
|
app.Logger.Infof("成功创建预定义计划 '%s'。", predefinedPlan.Name)
|
||||||
@@ -123,7 +123,7 @@ func (app *Application) initializePendingCollections() error {
|
|||||||
app.Logger.Info("开始清理所有未完成的采集请求...")
|
app.Logger.Info("开始清理所有未完成的采集请求...")
|
||||||
|
|
||||||
// 直接将所有 'pending' 状态的请求更新为 'timed_out'。
|
// 直接将所有 'pending' 状态的请求更新为 'timed_out'。
|
||||||
count, err := app.Infra.Repos.PendingCollectionRepo.MarkAllPendingAsTimedOut()
|
count, err := app.Infra.repos.pendingCollectionRepo.MarkAllPendingAsTimedOut()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("清理未完成的采集请求失败: %v", err)
|
return fmt.Errorf("清理未完成的采集请求失败: %v", err)
|
||||||
} else if count > 0 {
|
} else if count > 0 {
|
||||||
@@ -138,9 +138,9 @@ func (app *Application) initializePendingCollections() error {
|
|||||||
// initializePendingTasks 在应用启动时清理并刷新待执行任务列表。
|
// initializePendingTasks 在应用启动时清理并刷新待执行任务列表。
|
||||||
func (app *Application) initializePendingTasks() error {
|
func (app *Application) initializePendingTasks() error {
|
||||||
logger := app.Logger
|
logger := app.Logger
|
||||||
planRepo := app.Infra.Repos.PlanRepo
|
planRepo := app.Infra.repos.planRepo
|
||||||
pendingTaskRepo := app.Infra.Repos.PendingTaskRepo
|
pendingTaskRepo := app.Infra.repos.pendingTaskRepo
|
||||||
executionLogRepo := app.Infra.Repos.ExecutionLogRepo
|
executionLogRepo := app.Infra.repos.executionLogRepo
|
||||||
planService := app.Domain.planService
|
planService := app.Domain.planService
|
||||||
|
|
||||||
logger.Info("开始初始化待执行任务列表...")
|
logger.Info("开始初始化待执行任务列表...")
|
||||||
|
|||||||
Reference in New Issue
Block a user