puzhibing
4 分钟以前 7451aea6abcb4292cd1c69cff95656b54a716f32
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/controller/RealVideoMsgController.java
@@ -1,6 +1,8 @@
package com.ruoyi.dataInterchange.controller;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.dataInterchange.api.vo.UPRealvideoMsgStartupAckVo;
import com.ruoyi.dataInterchange.dao.UPRealvideoMsgEndAckDao;
import com.ruoyi.dataInterchange.dao.UPRealvideoMsgStartupAckDao;
import com.ruoyi.dataInterchange.model.UPRealvideoMsgEndAck;
@@ -13,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;
/**
 * 实时音视频控制器
@@ -45,14 +50,14 @@
    * @return
    */
   @PostMapping("/startupRealVideo")
   public R<UPRealvideoMsgStartupAck> startupRealVideo(@RequestParam("inferiorPlatformId") Integer inferiorPlatformId, @RequestParam("vehicleNo") String vehicleNo) {
      R realVideo = downRealvideoMsgStartupService.startupRealVideo(inferiorPlatformId, vehicleNo);
   public R<UPRealvideoMsgStartupAckVo> startupRealVideo(@RequestParam("inferiorPlatformId") Integer inferiorPlatformId, @RequestParam("vehicleNo") String 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) {
@@ -64,8 +69,36 @@
            num++;
            continue;
         }
         if (null != realvideoMsgStartupAck || num >= 30) {
            return R.ok(realvideoMsgStartupAck);
         if (null != realvideoMsgStartupAck) {
            int result = realvideoMsgStartupAck.getResult();
            switch (result){
               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("发起实时音视频失败,可能是车辆离线导致");
               case 2:
                  return R.fail("不支持实时音视频");
               case 3:
                  return R.fail("实时音视频会话结束");
               case 4:
                  return R.fail("实时音视频口令错误");
               case 5:
                  return R.fail("实时音视频不满足跨域条件");
               default:
                  return R.fail("发起实时音视频失败,可能是车辆离线导致");
            }
         }
         if (num >= 30) {
            return R.fail("发起实时音视频失败,可能是车辆离线导致");
         }
      }
   }
@@ -85,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) {