From 21a96ad20fd75e55d03c00af8df8adb039f0c77a Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 20 六月 2023 12:51:06 +0800 Subject: [PATCH] 修复通道刷新 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java | 38 ++++++++++++++++++++++---------------- 1 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java index 23d4d72..06dfb00 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java @@ -5,7 +5,6 @@ import com.genersoft.iot.vmp.conf.exception.ControllerException; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; -import com.genersoft.iot.vmp.gb28181.bean.SubscribeHolder; import com.genersoft.iot.vmp.gb28181.bean.SyncStatus; import com.genersoft.iot.vmp.gb28181.task.ISubscribeTask; import com.genersoft.iot.vmp.gb28181.task.impl.CatalogSubscribeTask; @@ -15,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; @@ -25,7 +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.http.HttpResponse; +import org.apache.ibatis.annotations.Options; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -33,22 +33,22 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.ObjectUtils; -import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; import javax.servlet.http.HttpServletResponse; -import javax.sip.DialogState; import javax.sip.InvalidArgumentException; import javax.sip.SipException; -import java.io.*; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.nio.file.Files; import java.text.ParseException; import java.util.*; @Tag(name = "鍥芥爣璁惧鏌ヨ", description = "鍥芥爣璁惧鏌ヨ") @SuppressWarnings("rawtypes") -@CrossOrigin + @RestController @RequestMapping("/api/device/query") public class DeviceQuery { @@ -63,6 +63,9 @@ @Autowired private IRedisCatchStorage redisCatchStorage; + + @Autowired + private IInviteStreamService inviteStreamService; @Autowired private SIPCommander cmder; @@ -99,9 +102,11 @@ @Parameter(name = "page", description = "褰撳墠椤�", required = true) @Parameter(name = "count", description = "姣忛〉鏌ヨ鏁伴噺", required = true) @GetMapping("/devices") + @Options() public PageInfo<Device> devices(int page, int count){ - - return storager.queryVideoDeviceList(page, count); +// if (page == null) page = 0; +// if (count == null) count = 20; + return storager.queryVideoDeviceList(page, count,null); } /** @@ -125,7 +130,7 @@ @Parameter(name = "online", description = "鏄惁鍦ㄧ嚎") @Parameter(name = "channelType", description = "璁惧/瀛愮洰褰�-> false/true") @Parameter(name = "catalogUnderDevice", description = "鏄惁鐩村睘涓庤澶囩殑鐩綍") - public PageInfo channels(@PathVariable String deviceId, + public PageInfo<DeviceChannel> channels(@PathVariable String deviceId, int page, int count, @RequestParam(required = false) String query, @RequestParam(required = false) Boolean online, @@ -145,7 +150,7 @@ */ @Operation(summary = "鍚屾璁惧閫氶亾") @Parameter(name = "deviceId", description = "璁惧鍥芥爣缂栧彿", required = true) - @PostMapping("/devices/{deviceId}/sync") + @GetMapping("/devices/{deviceId}/sync") public WVPResult<SyncStatus> devicesSync(@PathVariable String deviceId){ if (logger.isDebugEnabled()) { @@ -183,7 +188,7 @@ // 娓呴櫎redis璁板綍 boolean isSuccess = deviceService.delete(deviceId); if (isSuccess) { - redisCatchStorage.clearCatchByDeviceId(deviceId); + inviteStreamService.clearInviteInfo(deviceId); // 鍋滄姝よ澶囩殑璁㈤槄鏇存柊 Set<String> allKeys = dynamicTask.getAllKeys(); for (String key : allKeys) { @@ -225,7 +230,7 @@ @Parameter(name = "online", description = "鏄惁鍦ㄧ嚎") @Parameter(name = "channelType", description = "璁惧/瀛愮洰褰�-> false/true") @GetMapping("/sub_channels/{deviceId}/{channelId}/channels") - public PageInfo subChannels(@PathVariable String deviceId, + public PageInfo<DeviceChannel> subChannels(@PathVariable String deviceId, @PathVariable String channelId, int page, int count, @@ -239,8 +244,7 @@ return deviceChannelPageResult; } - PageInfo pageResult = storager.querySubChannels(deviceId, channelId, query, channelType, online, page, count); - return pageResult; + return storager.querySubChannels(deviceId, channelId, query, channelType, online, page, count); } /** @@ -462,10 +466,12 @@ @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); IOUtils.copy(in, resp.getOutputStream()); } catch (IOException e) { -- Gitblit v1.8.0