xubinbin
2023-12-12 42a2772d1aa7493bcc4fac3e24ee8eda4eebc23d
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
old mode 100644 new mode 100755
@@ -14,6 +14,7 @@
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
import com.genersoft.iot.vmp.service.IDeviceChannelService;
import com.genersoft.iot.vmp.service.IDeviceService;
import com.genersoft.iot.vmp.service.IInviteStreamService;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.vmanager.bean.BaseTree;
@@ -24,6 +25,7 @@
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.ibatis.annotations.Options;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +36,7 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.async.DeferredResult;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import javax.sip.InvalidArgumentException;
import javax.sip.SipException;
@@ -61,6 +64,9 @@
   @Autowired
   private IRedisCatchStorage redisCatchStorage;
   @Autowired
   private IInviteStreamService inviteStreamService;
   
   @Autowired
   private SIPCommander cmder;
@@ -97,8 +103,10 @@
   @Parameter(name = "page", description = "当前页", required = true)
   @Parameter(name = "count", description = "每页查询数量", required = true)
   @GetMapping("/devices")
   @Options()
   public PageInfo<Device> devices(int page, int count){
//      if (page == null) page = 0;
//      if (count == null) count = 20;
      return storager.queryVideoDeviceList(page, count,null);
   }
@@ -181,7 +189,7 @@
      // 清除redis记录
      boolean isSuccess = deviceService.delete(deviceId);
      if (isSuccess) {
         redisCatchStorage.clearCatchByDeviceId(deviceId);
         inviteStreamService.clearInviteInfo(deviceId);
         // 停止此设备的订阅更新
         Set<String> allKeys = dynamicTask.getAllKeys();
         for (String key : allKeys) {
@@ -459,12 +467,16 @@
   @Operation(summary = "请求截图")
   @Parameter(name = "deviceId", description = "设备国标编号", required = true)
   @Parameter(name = "channelId", description = "通道国标编号", required = true)
   public void getSnap(HttpServletResponse resp, @PathVariable String deviceId, @PathVariable String channelId) {
   @Parameter(name = "mark", description = "标识", required = false)
   public void getSnap(HttpServletResponse resp, @PathVariable String deviceId, @PathVariable String channelId, @RequestParam(required = false) String mark) {
      try {
         final InputStream in = Files.newInputStream(new File("snap" + File.separator + deviceId + "_" + channelId + ".jpg").toPath());
         final InputStream in = Files.newInputStream(new File("snap" + File.separator + deviceId + "_" + channelId + (mark == null? ".jpg": ("_" + mark + ".jpg"))).toPath());
         resp.setContentType(MediaType.IMAGE_PNG_VALUE);
         ServletOutputStream outputStream = resp.getOutputStream();
         IOUtils.copy(in, resp.getOutputStream());
         in.close();
         outputStream.close();
      } catch (IOException e) {
         resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
      }