From f355ef485a56e613b71d0262c089b995d7ca10d2 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 23 五月 2025 17:38:39 +0800 Subject: [PATCH] 集成MQTT对接公交主防数据 --- ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/controller/RealVideoMsgController.java | 32 +++++++++++++++++++++----------- 1 files changed, 21 insertions(+), 11 deletions(-) diff --git a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/controller/RealVideoMsgController.java b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/controller/RealVideoMsgController.java index 0853c4b..543ba3c 100644 --- a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/controller/RealVideoMsgController.java +++ b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/controller/RealVideoMsgController.java @@ -15,7 +15,10 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.time.LocalDateTime; +import java.time.ZoneOffset; /** * 实时音视频控制器 @@ -48,13 +51,13 @@ */ @PostMapping("/startupRealVideo") public R<UPRealvideoMsgStartupAckVo> startupRealVideo(@RequestParam("inferiorPlatformId") Integer inferiorPlatformId, @RequestParam("vehicleNo") String vehicleNo) { - R realVideo = downRealvideoMsgStartupService.startupRealVideo(inferiorPlatformId, vehicleNo); + R<String> realVideo = downRealvideoMsgStartupService.startupRealVideo(inferiorPlatformId, vehicleNo); if (realVideo.getCode() != 200) { - return realVideo; + return R.fail(realVideo.getMsg()); } //发送成功,定时任务获取响应结果 int num = 0; - LocalDateTime now = LocalDateTime.now(); + long now = LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)); while (true) { UPRealvideoMsgStartupAck realvideoMsgStartupAck = upRealvideoMsgStartupAckDao.findByInferiorPlatformIdAndVehicleNoAndCreateTimeAfter(inferiorPlatformId, vehicleNo, now); if (null == realvideoMsgStartupAck) { @@ -72,23 +75,30 @@ case 0: UPRealvideoMsgStartupAckVo vo = new UPRealvideoMsgStartupAckVo(); BeanUtils.copyProperties(realvideoMsgStartupAck, vo); + String encode = null; + try { + encode = URLEncoder.encode(vehicleNo, "UTF-8"); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + vo.setUrl("http://" + vo.getServerIP() + ":" + vo.getServerPort() + "/" + encode + "." + vo.getVehicleColor() + ".1.0." + realVideo.getData()); return R.ok(vo); case 1: - return R.fail("失败"); + return R.fail("发起实时音视频失败,可能是车辆离线导致"); case 2: - return R.fail("不支持"); + return R.fail("不支持实时音视频"); case 3: - return R.fail("会话结束"); + return R.fail("实时音视频会话结束"); case 4: - return R.fail("失效口令错误"); + return R.fail("实时音视频口令错误"); case 5: - return R.fail("不满足跨域条件"); + return R.fail("实时音视频不满足跨域条件"); default: - return R.fail("失败"); + return R.fail("发起实时音视频失败,可能是车辆离线导致"); } } if (num >= 30) { - return R.fail("失败"); + return R.fail("发起实时音视频失败,可能是车辆离线导致"); } } } @@ -108,7 +118,7 @@ } //发送成功,定时任务获取响应结果 int num = 0; - LocalDateTime now = LocalDateTime.now(); + Long now = LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)); while (true) { UPRealvideoMsgEndAck upRealvideoMsgEndAck = upRealvideoMsgEndAckDao.findByInferiorPlatformIdAndVehicleNoAndCreateTimeAfter(inferiorPlatformId, vehicleNo, now); if (null == upRealvideoMsgEndAck) { -- Gitblit v1.7.1