From 65bca4b36817d91360ed32c22ddb6b97dd9c8fb7 Mon Sep 17 00:00:00 2001 From: HuangHuiKang Date: Thu, 29 Jan 2026 17:50:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E9=87=87=E9=9B=86?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=88=A0=E9=99=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/module/iot/enums/ErrorCodeConstants.java | 2 ++ .../module/iot/dal/mysql/device/DeviceMapper.java | 3 +++ .../iot/service/device/DeviceServiceImpl.java | 14 ++++++++++++-- .../main/resources/mapper/device/DeviceMapper.xml | 7 +++++++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/ErrorCodeConstants.java b/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/ErrorCodeConstants.java index b549cd6d70..e8c00c1d03 100644 --- a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/ErrorCodeConstants.java +++ b/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/ErrorCodeConstants.java @@ -10,6 +10,8 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode; public interface ErrorCodeConstants { ErrorCode DEVICE_NOT_EXISTS = new ErrorCode(1_003_000_000, "设备不存在"); + ErrorCode DEVICE_REFERENCES_EXIST = new ErrorCode(1_003_000_000, "存在设备已被引用,请先删除引用。"); + ErrorCode DEVICE_EXISTS = new ErrorCode(1_003_000_000, "同名或同主题设备已存在"); diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java index 933319dfd4..380ba1f8d7 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java @@ -101,4 +101,7 @@ public interface DeviceMapper extends BaseMapperX { DeviceOperationStatusRespVO getDeviceOperationalStatus(); + + int selectIsReference(@Param("deviceId") Long deviceId); + } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java index 27179073e8..452eb97779 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java @@ -108,8 +108,6 @@ public class DeviceServiceImpl implements DeviceService { @Resource private DeviceOperationRecordMapper deviceOperationRecordMapper; - - @Override @Transactional(rollbackFor = Exception.class) public DeviceDO createDevice(DeviceSaveReqVO createReqVO) { @@ -213,14 +211,26 @@ public class DeviceServiceImpl implements DeviceService { for (Long id : ids) { // 校验存在 validateDeviceExists(id); + //是否有引用 + validateReference(id); // // 删除 // deviceMapper.deleteById(id); // 删除子表 deleteDeviceConcatByDeviceId(id); + } deviceMapper.deleteByIds(ids); } + private void validateReference(Long deviceId) { + + int count = deviceMapper.selectIsReference(deviceId); + if (count > 0){ + throw exception(DEVICE_REFERENCES_EXIST); + } + + } + private void deleteDeviceConcatByDeviceId(Long id) { LambdaQueryWrapper deviceContactModelDOLambdaQueryWrapper = new LambdaQueryWrapper<>(); deviceContactModelDOLambdaQueryWrapper.eq(DeviceContactModelDO::getDeviceId,id); diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml b/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml index df35f684d8..bdc808aaed 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml @@ -122,4 +122,11 @@ order by mo.id desc + \ No newline at end of file