From a0c1596d282a528f123fdce5315b890e63ce56c0 Mon Sep 17 00:00:00 2001 From: TongTongStudio Date: Sun, 9 Aug 2026 13:43:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(device):=20=E5=AE=9E=E7=8E=B0=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=AE=BE=E5=A4=87=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 完善设备新增接口,增加SN唯一性校验、参数非空验证和默认状态设置。 --- .../device/controller/DeviceController.java | 13 +++++++++++ .../service/impl/DeviceServiceImpl.java | 22 +++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/youlai/boot/device/controller/DeviceController.java b/src/main/java/com/youlai/boot/device/controller/DeviceController.java index 0087a77d..69cef2f2 100644 --- a/src/main/java/com/youlai/boot/device/controller/DeviceController.java +++ b/src/main/java/com/youlai/boot/device/controller/DeviceController.java @@ -6,6 +6,7 @@ import com.youlai.boot.common.enums.ActionTypeEnum; import com.youlai.boot.common.enums.LogModuleEnum; import com.youlai.boot.common.result.PageResult; import com.youlai.boot.common.result.Result; +import com.youlai.boot.device.model.entity.SnDeviceInfo; import com.youlai.boot.device.model.query.DeviceQuery; import com.youlai.boot.device.model.vo.DeviceApkInfoVO; import com.youlai.boot.device.model.vo.DeviceHardwareInfoVO; @@ -28,6 +29,8 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -69,6 +72,16 @@ public class DeviceController { return Result.success(detail); } + @Operation(summary = "新增设备") + @PostMapping + public Result addDevice(@RequestBody SnDeviceInfo device) { + boolean success = deviceService.addSn(device); + if (!success) { + return Result.failed("设备SN已存在或参数非法,新增失败"); + } + return Result.success(); + } + // ===================== 设备系统信息(分面板独立接口) ===================== @Operation(summary = "设备基本信息") diff --git a/src/main/java/com/youlai/boot/device/service/impl/DeviceServiceImpl.java b/src/main/java/com/youlai/boot/device/service/impl/DeviceServiceImpl.java index 2273f25f..dcf1eef9 100644 --- a/src/main/java/com/youlai/boot/device/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/youlai/boot/device/service/impl/DeviceServiceImpl.java @@ -181,12 +181,30 @@ public class DeviceServiceImpl extends ServiceImpl i @Override public boolean addSn(SnDeviceInfo device) { - return false; + if (device == null || device.getSerialno() == null || device.getSerialno().isBlank()) { + return false; + } + // 校验 SN 唯一 + long count = this.count(new LambdaQueryWrapper() + .eq(SnDeviceInfo::getSerialno, device.getSerialno())); + if (count > 0) { + log.warn("新增设备失败,SN 已存在: {}", device.getSerialno()); + return false; + } + // 状态默认启用 + if (device.getStatus() == null) { + device.setStatus(1); + } + boolean saved = this.save(device); + if (!saved) { + log.error("新增设备失败, sn: {}", device.getSerialno()); + } + return saved; } @Override public boolean deleteSn(String sn) { - return false; + return false; } private PushSendParam getSinglePushSendParam(String sn, String type, String title, String content) {