Explorar el Código

新增接口 : 获取未关联的设备

xucaiqin hace 1 año
padre
commit
5d22f5c06b

+ 13 - 0
iot-module/iot-module-stream/iot-module-stream-biz/src/main/java/com/middle/platform/stream/biz/controller/VideoController.java

@@ -8,6 +8,8 @@ import com.middle.platform.stream.biz.pojo.VideoPage;
 import com.middle.platform.stream.biz.service.SDeviceService;
 import jakarta.annotation.Resource;
 import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 /**
@@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.*;
  * @author xucaiqin
  * @date 2024-05-08 16:42:32
  */
+@Validated
 @RestController
 @RequestMapping("/video")
 public class VideoController {
@@ -34,6 +37,16 @@ public class VideoController {
         return Result.ok(sDeviceService.pageQuery(videoPage));
     }
 
+    /**
+     * 获取未关联的设备
+     * @param name
+     * @return
+     */
+    @GetMapping("/dropdown")
+    public Result<Object> dropdown(@RequestParam("name") @NotBlank(message = "name不能为空") String name) {
+        return Result.ok(sDeviceService.dropdown(name));
+    }
+
     /**
      * 新增拉流信息
      *

+ 17 - 4
iot-module/iot-module-stream/iot-module-stream-biz/src/main/java/com/middle/platform/stream/biz/service/SDeviceService.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.middle.platform.common.core.constant.Global;
 import com.middle.platform.common.core.exception.BusinessException;
 import com.middle.platform.common.core.modle.BasePara;
 import com.middle.platform.manage.api.feign.DeviceApi;
@@ -25,7 +26,6 @@ import com.middle.platform.stream.biz.properties.StreamMediaProperties;
 import com.middle.platform.stream.biz.util.VideoPathUtil;
 import com.middle.platform.system.api.enums.DictType;
 import com.middle.platform.system.api.feign.DictApi;
-import jakarta.annotation.Resource;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -34,6 +34,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * @author xucaiqin
@@ -47,9 +48,8 @@ public class SDeviceService extends ServiceImpl<SDeviceMapper, SDevice> {
     private final StreamMediaProperties streamMediaProperties;
     private final ApiProxy apiProxy;
 
-    @Resource
-    private DeviceApi deviceApi;
-    private DictApi dictApi;
+    private final DeviceApi deviceApi;
+    private final DictApi dictApi;
 
 
     /**
@@ -72,6 +72,7 @@ public class SDeviceService extends ServiceImpl<SDeviceMapper, SDevice> {
         }
         PageHelper.startPage(basePara.getPage(), basePara.getPageSize());
         List<SDevice> sDevices = sDeviceMapper.selectList(new LambdaQueryWrapper<SDevice>()
+                .eq(SDevice::getDelFlag, Global.UN_DEL)
                 .in(CollUtil.isNotEmpty(ids), SDevice::getDeviceId, ids));
 
         if (Objects.isNull(sDevices)) {
@@ -209,6 +210,7 @@ public class SDeviceService extends ServiceImpl<SDeviceMapper, SDevice> {
         PageHelper.startPage(videoPage.getPage(), videoPage.getPageSize());
         List<SDevice> sDevices = sDeviceMapper.selectList(new LambdaQueryWrapper<SDevice>()
                 .eq(SDevice::getType, videoPage.getType())
+                .eq(SDevice::getDelFlag, Global.UN_DEL)
                 .in(CollUtil.isNotEmpty(ids), SDevice::getDeviceId, ids));
 
         if (Objects.isNull(sDevices)) {
@@ -232,4 +234,15 @@ public class SDeviceService extends ServiceImpl<SDeviceMapper, SDevice> {
 
         return PageRes.build(pageInfo, streamPageRes2);
     }
+
+    public Object dropdown(String name) {
+        DevicesNameVo devicesNameVo = new DevicesNameVo();
+        devicesNameVo.setKeywords(name);
+        List<DevicesVo> devicesVos = deviceApi.devicesQuery(devicesNameVo);
+        if (CollUtil.isEmpty(devicesVos)) {
+            return new ArrayList<>();
+        }
+        List<SDevice> sDevices = sDeviceMapper.selectList(new LambdaQueryWrapper<SDevice>().eq(SDevice::getDelFlag, Global.UN_DEL));
+        return devicesVos.stream().filter(d -> sDevices.stream().noneMatch(d2 -> Objects.equals(d2.getDeviceId(), d.getId()))).collect(Collectors.toList());
+    }
 }