|
@@ -14,13 +14,16 @@ import com.dji.sample.manage.model.enums.LiveUrlTypeEnum;
|
|
|
import com.dji.sample.manage.model.enums.UserTypeEnum;
|
|
import com.dji.sample.manage.model.enums.UserTypeEnum;
|
|
|
import com.dji.sample.manage.service.IManageDeviceLivestreamUrlService;
|
|
import com.dji.sample.manage.service.IManageDeviceLivestreamUrlService;
|
|
|
import com.dji.sdk.cloudapi.device.DeviceSubTypeEnum;
|
|
import com.dji.sdk.cloudapi.device.DeviceSubTypeEnum;
|
|
|
|
|
+import com.dji.sdk.common.HttpResultResponse;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
@@ -54,35 +57,26 @@ public class ManageDeviceLivestreamUrlServiceImpl implements IManageDeviceLivest
|
|
|
//密码解密
|
|
//密码解密
|
|
|
String password = DesUtil.getDecryptData(userEntity.getPassword(),userEntity.getSalt());
|
|
String password = DesUtil.getDecryptData(userEntity.getPassword(),userEntity.getSalt());
|
|
|
//获取token
|
|
//获取token
|
|
|
- String token = CallSmsp.getSmspToken(userEntity.getUsername(),password);
|
|
|
|
|
- if(token == null) {
|
|
|
|
|
|
|
+ Map<String,String> tokenMap = CallSmsp.getSmspToken(userEntity.getUsername(),password);
|
|
|
|
|
+ if(tokenMap.get("Token") == null) {
|
|
|
log.debug("The smsp token is null.");
|
|
log.debug("The smsp token is null.");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//获取rtmp地址
|
|
//获取rtmp地址
|
|
|
- List<ManageDeviceLivestreamUrlDTO> rtmpList = CallSmsp.getRtmp(token,deviceLivestreamUrlDTO.getDeviceSn(),deviceLivestreamUrlDTO.getPayload());
|
|
|
|
|
|
|
+ List<ManageDeviceLivestreamUrlDTO> rtmpList = CallSmsp.getRtmp(tokenMap.get("Token"),deviceLivestreamUrlDTO.getDeviceSn(),deviceLivestreamUrlDTO.getPayload());
|
|
|
ManageDeviceLivestreamUrlDTO rtmpDto = new ManageDeviceLivestreamUrlDTO();
|
|
ManageDeviceLivestreamUrlDTO rtmpDto = new ManageDeviceLivestreamUrlDTO();
|
|
|
- //获取payload信息
|
|
|
|
|
- QueryWrapper<DevicePayloadEntity> payloadWrapper = new QueryWrapper<>();
|
|
|
|
|
- payloadWrapper.lambda().eq(DevicePayloadEntity::getPayloadIndex,deviceLivestreamUrlDTO.getPayload())
|
|
|
|
|
- .eq(DevicePayloadEntity::getDeviceSn,deviceLivestreamUrlDTO.getDeviceSn());
|
|
|
|
|
- DevicePayloadEntity payloadEntity = payloadMapper.selectOne(payloadWrapper);
|
|
|
|
|
-
|
|
|
|
|
- deviceLivestreamUrlDTO.setPayload(payloadEntity.getPayloadName());
|
|
|
|
|
- deviceLivestreamUrlDTO.setPayloadIndex(payloadEntity.getPayloadIndex());
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
//获取数据库中deviceSn对应的url信息
|
|
//获取数据库中deviceSn对应的url信息
|
|
|
QueryWrapper<ManageDeviceLivestreamUrlEntity> wrapper = new QueryWrapper<>();
|
|
QueryWrapper<ManageDeviceLivestreamUrlEntity> wrapper = new QueryWrapper<>();
|
|
|
wrapper.lambda().eq(ManageDeviceLivestreamUrlEntity::getDeviceSn,deviceLivestreamUrlDTO.getDeviceSn())
|
|
wrapper.lambda().eq(ManageDeviceLivestreamUrlEntity::getDeviceSn,deviceLivestreamUrlDTO.getDeviceSn())
|
|
|
.eq(ManageDeviceLivestreamUrlEntity::getWorkspaceId,deviceLivestreamUrlDTO.getWorkspaceId());
|
|
.eq(ManageDeviceLivestreamUrlEntity::getWorkspaceId,deviceLivestreamUrlDTO.getWorkspaceId());
|
|
|
List<ManageDeviceLivestreamUrlEntity> urlList = mapper.selectList(wrapper);
|
|
List<ManageDeviceLivestreamUrlEntity> urlList = mapper.selectList(wrapper);
|
|
|
- if(urlList.size() < 0 && rtmpList.size() < 0 ){
|
|
|
|
|
|
|
+ if(urlList.size() <= 0 && rtmpList.size() <= 0 ){
|
|
|
log.debug("The result is null.");
|
|
log.debug("The result is null.");
|
|
|
- return null;
|
|
|
|
|
|
|
+ throw new RuntimeException (tokenMap.get("message"));
|
|
|
}
|
|
}
|
|
|
//过滤payloadIndex
|
|
//过滤payloadIndex
|
|
|
- List<ManageDeviceLivestreamUrlEntity> filterIndexList = urlList.stream().filter(channelData -> payloadEntity.getPayloadIndex().equals(channelData.getPayloadIndex()))
|
|
|
|
|
|
|
+ List<ManageDeviceLivestreamUrlEntity> filterIndexList = urlList.stream().filter(channelData -> deviceLivestreamUrlDTO.getPayloadIndex().equals(channelData.getPayloadIndex()))
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
if (filterIndexList.size() > 0) {
|
|
if (filterIndexList.size() > 0) {
|
|
|
//过滤channelId
|
|
//过滤channelId
|
|
@@ -105,27 +99,40 @@ public class ManageDeviceLivestreamUrlServiceImpl implements IManageDeviceLivest
|
|
|
rtmpDto.setRtmpUrl(channelList.get(0).getRtmpUrl());
|
|
rtmpDto.setRtmpUrl(channelList.get(0).getRtmpUrl());
|
|
|
rtmpDto.setWebRtcUrl(channelList.get(0).getWebRtcUrl());
|
|
rtmpDto.setWebRtcUrl(channelList.get(0).getWebRtcUrl());
|
|
|
} else {
|
|
} else {
|
|
|
- //过滤channelId
|
|
|
|
|
- channelList = rtmpList.stream().filter(channelData -> !urlList.contains(channelData.getChannelId()))
|
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
- for(ManageDeviceLivestreamUrlEntity url : filterIndexList) {
|
|
|
|
|
- url.setChannelId(channelList.get(0).getChannelId());
|
|
|
|
|
-
|
|
|
|
|
- if (url.getUrlType().equals(LiveUrlTypeEnum.RTMP.getVal())) {
|
|
|
|
|
- url.setUrl(channelList.get(0).getRtmpUrl());
|
|
|
|
|
- mapper.updateById(url);
|
|
|
|
|
- } else if(url.getUrlType().equals(LiveUrlTypeEnum.WEBRTC.getVal())) {
|
|
|
|
|
- url.setUrl(channelList.get(0).getWebRtcUrl());
|
|
|
|
|
- mapper.updateById(url);
|
|
|
|
|
|
|
+ if(rtmpList.size() > 0) {
|
|
|
|
|
+ //过滤channelId
|
|
|
|
|
+ channelList = rtmpList.stream().filter(channelData -> !urlList.contains(channelData.getChannelId()))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ for(ManageDeviceLivestreamUrlEntity url : filterIndexList) {
|
|
|
|
|
+ url.setChannelId(channelList.get(0).getChannelId());
|
|
|
|
|
+
|
|
|
|
|
+ if (url.getUrlType().equals(LiveUrlTypeEnum.RTMP.getVal())) {
|
|
|
|
|
+ url.setUrl(channelList.get(0).getRtmpUrl());
|
|
|
|
|
+ mapper.updateById(url);
|
|
|
|
|
+ } else if(url.getUrlType().equals(LiveUrlTypeEnum.WEBRTC.getVal())) {
|
|
|
|
|
+ url.setUrl(channelList.get(0).getWebRtcUrl());
|
|
|
|
|
+ mapper.updateById(url);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ rtmpDto.setRtmpUrl(channelList.get(0).getRtmpUrl());
|
|
|
|
|
+ rtmpDto.setWebRtcUrl(channelList.get(0).getWebRtcUrl());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ for(ManageDeviceLivestreamUrlEntity url : filterIndexList) {
|
|
|
|
|
+ if (url.getUrlType().equals(LiveUrlTypeEnum.RTMP.getVal())) {
|
|
|
|
|
+ rtmpDto.setRtmpUrl(channelList.get(0).getRtmpUrl());
|
|
|
|
|
+ } else if(url.getUrlType().equals(LiveUrlTypeEnum.WEBRTC.getVal())) {
|
|
|
|
|
+ rtmpDto.setWebRtcUrl(channelList.get(0).getWebRtcUrl());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- rtmpDto.setRtmpUrl(channelList.get(0).getRtmpUrl());
|
|
|
|
|
- rtmpDto.setWebRtcUrl(channelList.get(0).getWebRtcUrl());
|
|
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
//过滤channelId
|
|
//过滤channelId
|
|
|
- List<ManageDeviceLivestreamUrlDTO> channelList = rtmpList.stream().filter(channelData -> !urlList.contains(channelData.getChannelId()))
|
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
|
|
+ List<ManageDeviceLivestreamUrlDTO> channelList = rtmpList;
|
|
|
|
|
+ if(urlList.size() > 0) {
|
|
|
|
|
+ channelList = rtmpList.stream().filter(channelData -> urlList.contains(channelData.getChannelId()))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ }
|
|
|
ManageDeviceLivestreamUrlEntity urlEntity = new ManageDeviceLivestreamUrlEntity();
|
|
ManageDeviceLivestreamUrlEntity urlEntity = new ManageDeviceLivestreamUrlEntity();
|
|
|
if(channelList.size() > 0) {
|
|
if(channelList.size() > 0) {
|
|
|
//dto转entity
|
|
//dto转entity
|
|
@@ -144,6 +151,8 @@ public class ManageDeviceLivestreamUrlServiceImpl implements IManageDeviceLivest
|
|
|
mapper.insert(urlEntity);
|
|
mapper.insert(urlEntity);
|
|
|
rtmpDto.setRtmpUrl(channelList.get(0).getRtmpUrl());
|
|
rtmpDto.setRtmpUrl(channelList.get(0).getRtmpUrl());
|
|
|
rtmpDto.setWebRtcUrl(channelList.get(0).getWebRtcUrl());
|
|
rtmpDto.setWebRtcUrl(channelList.get(0).getWebRtcUrl());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ throw new RuntimeException("the url is null.");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return rtmpDto;
|
|
return rtmpDto;
|