GeneralDeviceService 改为全局唯一使用靠注入
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"time"
|
||||
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/api"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/device"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/task"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/token"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/app/service/transport"
|
||||
@@ -89,6 +90,15 @@ func NewApplication(configPath string) (*Application, error) {
|
||||
// 初始化设备通信器 (纯粹的通信客户端)
|
||||
comm := lora.NewChirpStackTransport(cfg.ChirpStack, logger)
|
||||
|
||||
// 初始化通用设备服务
|
||||
generalDeviceService := device.NewGeneralDeviceService(
|
||||
deviceRepo,
|
||||
deviceCommandLogRepo,
|
||||
pendingCollectionRepo,
|
||||
logger,
|
||||
comm,
|
||||
)
|
||||
|
||||
// 初始化任务执行器
|
||||
executor := task.NewScheduler(
|
||||
pendingTaskRepo,
|
||||
@@ -96,26 +106,32 @@ func NewApplication(configPath string) (*Application, error) {
|
||||
deviceRepo,
|
||||
sensorDataRepo,
|
||||
planRepo,
|
||||
comm,
|
||||
analysisPlanTaskManager,
|
||||
logger,
|
||||
deviceCommandLogRepo,
|
||||
pendingCollectionRepo,
|
||||
generalDeviceService,
|
||||
time.Duration(cfg.Task.Interval)*time.Second,
|
||||
cfg.Task.NumWorkers,
|
||||
)
|
||||
|
||||
// 初始化 API 服务器
|
||||
apiServer := api.NewAPI(cfg.Server, logger, userRepo, deviceRepo, planRepo, sensorDataRepo, executionLogRepo, tokenService, listenHandler, analysisPlanTaskManager)
|
||||
apiServer := api.NewAPI(
|
||||
cfg.Server,
|
||||
logger,
|
||||
userRepo,
|
||||
deviceRepo,
|
||||
planRepo,
|
||||
tokenService,
|
||||
listenHandler,
|
||||
analysisPlanTaskManager,
|
||||
)
|
||||
|
||||
// 组装 Application 对象
|
||||
app := &Application{
|
||||
Config: cfg,
|
||||
Logger: logger,
|
||||
Storage: storage,
|
||||
Executor: executor,
|
||||
API: apiServer,
|
||||
// 填充新增的字段
|
||||
Config: cfg,
|
||||
Logger: logger,
|
||||
Storage: storage,
|
||||
Executor: executor,
|
||||
API: apiServer,
|
||||
planRepo: planRepo,
|
||||
pendingTaskRepo: pendingTaskRepo,
|
||||
executionLogRepo: executionLogRepo,
|
||||
|
||||
Reference in New Issue
Block a user