package com.ruoyi.dataInterchange.server;
|
|
import com.alibaba.fastjson.JSON;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.dataInterchange.dao.UPAuthorizeMsgStartupDao;
|
import com.ruoyi.dataInterchange.dao.UPExgMsgRegisterDao;
|
import com.ruoyi.dataInterchange.model.DOWNRealvideoMsgStartup;
|
import com.ruoyi.dataInterchange.model.UPAuthorizeMsgStartup;
|
import com.ruoyi.dataInterchange.model.UPExgMsgRegister;
|
import com.ruoyi.dataInterchange.model.enu.DataType;
|
import com.ruoyi.dataInterchange.netty.client.ChannelMap;
|
import com.ruoyi.dataInterchange.util.jtt809.packet.common.OuterPacket;
|
import io.netty.channel.Channel;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
|
/**
|
* 实时音视频服务类
|
*
|
* @author zhibing.pu
|
* @Date 2025/3/21 11:16
|
*/
|
@Slf4j
|
@Service
|
public class DOWNRealvideoMsgStartupService {
|
|
@Resource
|
private UPExgMsgRegisterDao upExgMsgRegisterDao;
|
|
@Resource
|
private UPAuthorizeMsgStartupDao upAuthorizeMsgStartupDao;
|
|
|
/**
|
* 发起实时音视频请求
|
*
|
* @param vehicleNo
|
*/
|
public R<String> startupRealVideo(Integer inferiorPlatformId, String vehicleNo) {
|
Channel channel = ChannelMap.getClientChannel(inferiorPlatformId);
|
if (!channel.isActive()) {
|
return R.fail("失败");
|
}
|
//查询车辆信息
|
UPExgMsgRegister exgMsgRegister = upExgMsgRegisterDao.findByVehicleNo(vehicleNo);
|
UPAuthorizeMsgStartup authorizeMsgStartup = upAuthorizeMsgStartupDao.findByInferiorPlatformIdOrderByCreateTimeDesc(inferiorPlatformId);
|
if (null == authorizeMsgStartup) {
|
return R.fail("获取时效口令失败");
|
}
|
DOWNRealvideoMsgStartup downRealvideoMsgStartup = new DOWNRealvideoMsgStartup();
|
downRealvideoMsgStartup.setVehicleNo(exgMsgRegister.getVehicleNo());
|
downRealvideoMsgStartup.setVehicleColor(exgMsgRegister.getVehicleColor());
|
downRealvideoMsgStartup.setDataType(DataType.DOWN_REALVIDEO_MSG_STARTUP.getCode());
|
downRealvideoMsgStartup.setDataLength(102);
|
downRealvideoMsgStartup.setChannelId(1);
|
downRealvideoMsgStartup.setAvttemType(0X00);
|
downRealvideoMsgStartup.setAuthorizeCode(authorizeMsgStartup.getAuthorizeCode1());
|
downRealvideoMsgStartup.setGnssData("");
|
byte[] body = downRealvideoMsgStartup.encode();
|
OuterPacket out = new OuterPacket(DataType.DOWN_REALVIDEO_MSG.getCode(), inferiorPlatformId, body);
|
channel.writeAndFlush(out);
|
log.info("发起实时音视频请求({}):{}", DataType.DOWN_REALVIDEO_MSG_STARTUP.getCode(), JSON.toJSONString(downRealvideoMsgStartup));
|
return R.ok(authorizeMsgStartup.getAuthorizeCode1());
|
}
|
|
}
|