From e1a1b29a0fc7167d819135df887dd961d0895a97 Mon Sep 17 00:00:00 2001 From: huang <1724659546@qq.com> Date: Thu, 25 Sep 2025 09:27:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86GeneralDeviceService=E6=94=B9=E6=88=90?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E7=89=88,=20=E9=9A=8F=E7=94=A8=E9=9A=8FNew?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/service/device/general_device_service.go | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/internal/app/service/device/general_device_service.go b/internal/app/service/device/general_device_service.go index 228e025..6e09a8e 100644 --- a/internal/app/service/device/general_device_service.go +++ b/internal/app/service/device/general_device_service.go @@ -17,18 +17,12 @@ type GeneralDeviceService struct { deviceRepo repository.DeviceRepository logger *logs.Logger - deviceID uint // 区域主控的设备ID - - // regionalController 是执行命令的区域主控, 所有的指令都会发往区域主控 - regionalController *models.Device - comm transport.Communicator } // NewGeneralDeviceService 创建一个通用设备服务 -func NewGeneralDeviceService(deviceID uint, deviceRepo repository.DeviceRepository, logger *logs.Logger, comm transport.Communicator) *GeneralDeviceService { +func NewGeneralDeviceService(deviceRepo repository.DeviceRepository, logger *logs.Logger, comm transport.Communicator) *GeneralDeviceService { return &GeneralDeviceService{ - deviceID: deviceID, deviceRepo: deviceRepo, logger: logger, comm: comm, @@ -38,8 +32,8 @@ func NewGeneralDeviceService(deviceID uint, deviceRepo repository.DeviceReposito func (g *GeneralDeviceService) Switch(device models.Device, action DeviceAction) error { // 校验设备参数及生成指令 - if *device.ParentID != g.deviceID { - return fmt.Errorf("设备 %v(id=%v) 的上级区域主控是(id=%v), 不是当前区域主控(id=%v)下属设备, 无法执行指令", device.Name, device.ID, device.ParentID, g.deviceID) + if *device.ParentID == 0 { + return fmt.Errorf("设备 %v(id=%v) 的上级区域主控(id=%v) ID不合理, 无法执行指令", device.Name, device.ID, *device.ParentID) } if !device.SelfCheck() { @@ -80,9 +74,9 @@ func (g *GeneralDeviceService) Switch(device models.Device, action DeviceAction) } // 获取自身LoRa设备ID, 因为可能变更, 所以每次都现获取 - thisDevice, err := g.deviceRepo.FindByID(g.deviceID) + thisDevice, err := g.deviceRepo.FindByID(*device.ParentID) if err != nil { - return fmt.Errorf("获取区域主控(id=%v)信息失败: %v", g.deviceID, err) + return fmt.Errorf("获取区域主控(id=%v)信息失败: %v", *device.ParentID, err) } if !thisDevice.SelfCheck() { return fmt.Errorf("区域主控 %v(id=%v) 缺少必要信息, 无法发送指令", thisDevice.Name, thisDevice.ID)