Bladeren bron

项目关联设备 参数校验

xucaiqin 2 jaren geleden
bovenliggende
commit
047bc3da60

+ 2 - 1
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/controller/IotProjectDeviceController.java

@@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.*;
 @RestController
 @RequestMapping("/iotProjectDevice")
 @RequiredArgsConstructor
+@Validated
 public class IotProjectDeviceController {
 
     private final IotProjectDeviceService iotProjectDeviceService;
@@ -55,7 +56,7 @@ public class IotProjectDeviceController {
      */
     @GetMapping("/updateDeviceStatus")
     @Transactional(rollbackFor = Exception.class)
-    public Result<Object> updateDeviceStatus(@RequestParam("deviceId") @NotNull(message = "deviceId不能为空") Long deviceId, @RequestParam("enableFlag") @NotNull(message = "启用状态不能为空") Long enableFlag) {
+    public Result<Object> updateDeviceStatus(@NotNull(message = "deviceId不能为空") Long deviceId, @NotNull(message = "启用状态不能为空") Long enableFlag) {
         return Result.ok(iotProjectDeviceService.updateProDeviceStatus(deviceId, enableFlag), "保存成功");
     }
 

+ 25 - 4
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/service/IotProjectDeviceService.java

@@ -3,6 +3,8 @@ package com.middle.platform.manage.biz.service;
 import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
+import com.middle.platform.common.constant.Global;
+import com.middle.platform.common.exception.BusinessException;
 import com.middle.platform.manage.biz.domain.req.IotProDevicePara;
 import com.middle.platform.manage.biz.domain.req.IotProjectDevicePara;
 import com.middle.platform.manage.biz.domain.vo.IotDeviceVo;
@@ -19,6 +21,7 @@ import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @author xucaiqin
@@ -33,6 +36,7 @@ public class IotProjectDeviceService extends ServiceImpl<IotProjectDeviceMapper,
     private final IotProjectDeviceLogMapper iotProjectDeviceLogMapper;
 
     private final IotDeviceMapper iotDeviceMapper;
+    private final IotProjectService iotProjectService;
 
     /**
      * 项目设备关联查询
@@ -50,6 +54,17 @@ public class IotProjectDeviceService extends ServiceImpl<IotProjectDeviceMapper,
         return new PageRes<>(iotDeviceVos);
     }
 
+    /**
+     * 设备校验
+     *
+     * @param deviceId 设备id
+     */
+    private void check(Long deviceId) {
+        IotDevice iotDevice = iotDeviceMapper.selectById(deviceId);
+        if (Objects.isNull(iotDevice) || Global.DEL == iotDevice.getDelFlag()) {
+            throw new BusinessException(deviceId + ":设备不存在");
+        }
+    }
 
     /**
      * 新增插入关联设备
@@ -61,6 +76,12 @@ public class IotProjectDeviceService extends ServiceImpl<IotProjectDeviceMapper,
         if (iotProjectDevicePara.getDeviceIds() == null) {
             throw new RuntimeException("设备ID集合不能为空");
         }
+        //校验项目
+        iotProjectService.check(iotProjectDevicePara.getProjectId());
+        //设备校验
+        for (Long deviceId : iotProjectDevicePara.getDeviceIds()) {
+            check(deviceId);
+        }
         iotProjectDevicePara.getDeviceIds().forEach(e -> {
             IotProjectDevice iotProjectDevice = new IotProjectDevice();
             iotProjectDevice.setDeviceId(e);
@@ -106,21 +127,21 @@ public class IotProjectDeviceService extends ServiceImpl<IotProjectDeviceMapper,
         if (!(enableFlag == 1 || enableFlag == 0)) {
             throw new RuntimeException("修改状态异常");
         }
+        //校验设备
+        check(deviceId);
         return iotProjectDeviceMapper.updateById(deviceId, enableFlag);
     }
 
     /**
      * 设备解绑
+     *
+     * @param id 项目关联设备id
      */
     public Object deleteProDeviceUntie(Long id) {
         IotProjectDevice res = iotProjectDeviceMapper.selectById(id);
         if (res != null) {
             IotProjectDeviceLog iotProjectDeviceLog = new IotProjectDeviceLog();
             BeanUtils.copyProperties(res, iotProjectDeviceLog);
-            iotProjectDeviceLog.setCreateBy(StpUtil.getLoginIdAsLong());
-            iotProjectDeviceLog.setCreateTime(LocalDateTime.now());
-            iotProjectDeviceLog.setUpdateBy(StpUtil.getLoginIdAsLong());
-            iotProjectDeviceLog.setUpdateTime(LocalDateTime.now());
             iotProjectDeviceLog.setRemark("设备解绑");
             iotProjectDeviceLogMapper.insert(iotProjectDeviceLog);
             return iotProjectDeviceMapper.deleteProDeviceUntie(id);

+ 7 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/service/IotProjectService.java

@@ -140,4 +140,11 @@ public class IotProjectService {
         iotProject.setCompanyId(iotProjectPara.getCompanyId());
         return iotProjectMapper.updateById(iotProject);
     }
+
+    public void check(Long id) {
+        IotProjectVo iotProjectVo = iotProjectMapper.detail(id);
+        if (Objects.isNull(iotProjectVo)) {
+            throw new BusinessException("项目不存在");
+        }
+    }
 }