diff --git a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/wvp/WvpService.java b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/wvp/WvpService.java index 178bbfe..1d31b8c 100644 --- a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/wvp/WvpService.java +++ b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/wvp/WvpService.java @@ -115,39 +115,12 @@ public class WvpService { log.info("设备编码 (deviceCode=>{}) 查询到的设备信息 国标id(gbDeviceId => {}), 通道(channelId => {})", deviceCode, deviceId, channelId); Retryer> genericRetryer = getDefaultGenericRetryer(); - String passwdMd5 = MD5.create().digestHex(wvpProxyConfig.getPasswd()); - WvpLoginReq loginReq = WvpLoginReq.builder() - .username(wvpProxyConfig.getUser()) - .password(passwdMd5) - .build(); - AsyncContext asyncContext = request.startAsync(); asyncContext.setTimeout(0); asyncContext.start(() -> { HttpServletResponse asyncResponse = (HttpServletResponse) asyncContext.getResponse(); try { - genericRetryer.call(() -> { - JsonResponse login = wvpProxyClient.login(loginReq); - String accessToken = login.getData().getAccessToken(); - log.info("wvp 登录成功 accessToken => {}", accessToken); - - log.debug("通过 wvp 查询设备 国标id(gbDeviceId => {}) 通道信息", deviceId); - JsonResponse deviceChannels = wvpProxyClient.getDeviceChannels(accessToken, deviceId, GetDeviceChannelsReq.builder().build()); - if (deviceChannels.getData() == null || deviceChannels.getData().getTotal() == 0) { - writeErrorToResponse(asyncResponse, JsonResponse.error(MessageFormat.format("未能获取 设备:{0}, 国标id: {1}, 的通道信息", deviceCode, deviceId))); - return JsonResponse.success(null); - } - List list = deviceChannels.getData().getList(); - log.info("通过 wvp 获取到 查询设备 国标id(gbDeviceId => {}), 通道数量 => {}", deviceId, list.size()); - DeviceChannel deviceChannel = list.parallelStream().filter(item -> item.getChannelId().equalsIgnoreCase(channelId)).findFirst().orElse(null); - if (deviceChannel == null) { - writeErrorToResponse(asyncResponse, JsonResponse.error(MessageFormat.format("未查询到 设备:{0}, 国标id: {1}, 通道: {2} 信息", deviceCode, deviceId, channelId))); - return JsonResponse.success(null); - } - - downloadService.download(asyncResponse, "http://192.168.1.241:18979/download/recordTemp/0490d767d94ce20aedce57c862b6bfe9/rtp/59777645.mp4"); - return login; - }); + genericRetryer.call(() -> video(asyncResponse, deviceCode,deviceId,channelId,startTime,endTime)); } catch (RetryException e) { String reason = MessageFormat.format("查询失败, 已重试 {0} 次", e.getNumberOfFailedAttempts()); log.error(reason); @@ -159,4 +132,33 @@ public class WvpService { } }); } + + @SneakyThrows + public JsonResponse video(HttpServletResponse response, String deviceCode, String deviceId,String channelId ,Date startTime, Date endTime) { + String passwdMd5 = MD5.create().digestHex(wvpProxyConfig.getPasswd()); + WvpLoginReq loginReq = WvpLoginReq.builder() + .username(wvpProxyConfig.getUser()) + .password(passwdMd5) + .build(); + JsonResponse login = wvpProxyClient.login(loginReq); + String accessToken = login.getData().getAccessToken(); + log.info("wvp 登录成功 accessToken => {}", accessToken); + + log.debug("通过 wvp 查询设备 国标id(gbDeviceId => {}) 通道信息", deviceId); + JsonResponse deviceChannels = wvpProxyClient.getDeviceChannels(accessToken, deviceId, GetDeviceChannelsReq.builder().build()); + if (deviceChannels.getData() == null || deviceChannels.getData().getTotal() == 0) { + writeErrorToResponse(response, JsonResponse.error(MessageFormat.format("未能获取 设备:{0}, 国标id: {1}, 的通道信息", deviceCode, deviceId))); + return JsonResponse.success(null); + } + List list = deviceChannels.getData().getList(); + log.info("通过 wvp 获取到 查询设备 国标id(gbDeviceId => {}), 通道数量 => {}", deviceId, list.size()); + DeviceChannel deviceChannel = list.parallelStream().filter(item -> item.getChannelId().equalsIgnoreCase(channelId)).findFirst().orElse(null); + if (deviceChannel == null) { + writeErrorToResponse(response, JsonResponse.error(MessageFormat.format("未查询到 设备:{0}, 国标id: {1}, 通道: {2} 信息", deviceCode, deviceId, channelId))); + return JsonResponse.success(null); + } + + downloadService.download(response, "http://192.168.1.241:18979/download/recordTemp/0490d767d94ce20aedce57c862b6bfe9/rtp/59777645.mp4"); + return login; + } }