Browse Source

add:视频展示信息改为nacos配置

show
luyie 2 weeks ago
parent
commit
3d10a2646b
  1. 572
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationVideoTypeServiceImpl.java

572
hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationVideoTypeServiceImpl.java

@ -10,7 +10,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.hnac.hzims.operational.config.HikPathConfiguration; import com.hnac.hzims.operational.config.HikPathConfiguration;
import com.hnac.hzims.operational.station.StationConstants; import com.hnac.hzims.operational.station.StationConstants;
@ -50,308 +49,309 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class StationVideoTypeServiceImpl extends BaseServiceImpl<StationVideoTypeMapper, StationVideoTypeEntity> implements IStationVideoTypeService { public class StationVideoTypeServiceImpl extends BaseServiceImpl<StationVideoTypeMapper, StationVideoTypeEntity> implements IStationVideoTypeService {
private final HikPathConfiguration pathConfiguration; private final HikPathConfiguration pathConfiguration;
private final BladeLogger logger; private final BladeLogger logger;
@Value("${url.video.login}") @Value("${url.video.login}")
private String videoLoginUrl; private String videoLoginUrl;
@Value("${hzims.video.random-code}") @Value("${hzims.video.random-code}")
private String definitionCode; private String definitionCode;
/** @Value("${url.video.left}")
* 获取海康视频接口 private List<String> videoLeft;
* @return @Value("${url.video.right}")
*/ private List<String> videoRight;
@Override
public String getHikVideo(){
List<StationVideoTypeEntity> stationVideoTypeEntityList = this.list();
List<Long> ids = new ArrayList<>();
stationVideoTypeEntityList.forEach(stationVideoTypeEntity -> {
if(ObjectUtil.isNotEmpty(stationVideoTypeEntity.getIsHikvideo()) && stationVideoTypeEntity.getIsHikvideo() == 1){
try{
stationVideoTypeEntity.setLiveSourceAddress(ArtemisPostUtils.getCameraPreviewURL(stationVideoTypeEntity.getVideoHost(),
stationVideoTypeEntity.getAppKey(),stationVideoTypeEntity.getAppSecret()
,stationVideoTypeEntity.getPointCode(), DictCache.getValue(StationConstants.STATION_VIDEO_TYPE_CODE,
stationVideoTypeEntity.getType()),0));
ids.add(stationVideoTypeEntity.getId());
}
catch (Exception e){
stationVideoTypeEntity.setLiveSourceAddress(null);
}
}
});
String result = ids.stream().map(id -> {
return id+"";
}).collect(Collectors.joining(","));
return result;
}
@Override /**
public List<StationEntity> getStationsByVideo() { * 获取海康视频接口
return this.baseMapper.getStationsByVideo(); *
} * @return
*/
@Override
public String getHikVideo() {
List<StationVideoTypeEntity> stationVideoTypeEntityList = this.list();
List<Long> ids = new ArrayList<>();
stationVideoTypeEntityList.forEach(stationVideoTypeEntity -> {
if (ObjectUtil.isNotEmpty(stationVideoTypeEntity.getIsHikvideo()) && stationVideoTypeEntity.getIsHikvideo() == 1) {
try {
stationVideoTypeEntity.setLiveSourceAddress(ArtemisPostUtils.getCameraPreviewURL(stationVideoTypeEntity.getVideoHost(),
stationVideoTypeEntity.getAppKey(), stationVideoTypeEntity.getAppSecret()
, stationVideoTypeEntity.getPointCode(), DictCache.getValue(StationConstants.STATION_VIDEO_TYPE_CODE,
stationVideoTypeEntity.getType()), 0));
ids.add(stationVideoTypeEntity.getId());
} catch (Exception e) {
stationVideoTypeEntity.setLiveSourceAddress(null);
}
}
});
String result = ids.stream().map(id -> {
return id + "";
}).collect(Collectors.joining(","));
return result;
}
@Override @Override
public IPage<StationVideoTypeVO> getStationVideoOrderBySort(StationVideoTypeDTO req, Query query) { public List<StationEntity> getStationsByVideo() {
StationVideoTypeEntity stationVideoTypeEntity = BeanUtil.copy(req,StationVideoTypeEntity.class); return this.baseMapper.getStationsByVideo();
QueryWrapper<StationVideoTypeEntity> queryWrapper = com.hnac.hzims.common.utils.Condition.getQueryWrapper(new StationVideoTypeEntity(),stationVideoTypeEntity,false, "vt"); }
IPage<StationVideoTypeVO> result = this.baseMapper.getStationVideoOrderBySort(queryWrapper,Condition.getPage(query));
return result;
}
@Override @Override
public IPage<StationVideoTypeEntity> getStationVideoOrderByName(StationVideoTypeVO req, Query query) { public IPage<StationVideoTypeVO> getStationVideoOrderBySort(StationVideoTypeDTO req, Query query) {
if (ObjectUtil.isNotEmpty(req.getVideoOwerType())&&req.getVideoOwerType().equals(1)) { StationVideoTypeEntity stationVideoTypeEntity = BeanUtil.copy(req, StationVideoTypeEntity.class);
req.setVideoType("6"); QueryWrapper<StationVideoTypeEntity> queryWrapper = com.hnac.hzims.common.utils.Condition.getQueryWrapper(new StationVideoTypeEntity(), stationVideoTypeEntity, false, "vt");
} IPage<StationVideoTypeVO> result = this.baseMapper.getStationVideoOrderBySort(queryWrapper, Condition.getPage(query));
Wrapper<StationVideoTypeEntity> queryWrapper = new LambdaQueryWrapper<StationVideoTypeEntity>() {{ return result;
if (CollectionUtil.isNotEmpty(req.getStationIds())) { }
in(StationVideoTypeEntity::getStationId, req.getStationIds());
}
if (ObjectUtil.isNotEmpty(req.getStationId())) {
eq(StationVideoTypeEntity::getStationId, req.getStationId());
}
if (ObjectUtil.isNotEmpty(req.getStatus())) {
eq(StationVideoTypeEntity::getStatus, req.getStatus());
}
if (ObjectUtil.isNotEmpty(req.getVideoOwerType())) {
eq(StationVideoTypeEntity::getVideoOwerType, req.getVideoOwerType());
}
if (ObjectUtil.isNotEmpty(req.getVideoType())) {
eq(StationVideoTypeEntity::getVideoType, req.getVideoType());
}
if (ObjectUtil.isNotEmpty(req.getName())) {
eq(StationVideoTypeEntity::getName, req.getName());
}
if (ObjectUtil.isNotEmpty(req.getStationId())&&ObjectUtil.isEmpty(req.getVideoType())&&ObjectUtil.isNotEmpty(req.getVideoOwerType())&&req.getVideoOwerType().equals(2)) {
List<String> stringList = Arrays.asList("1", "2", "3", "4", "5");
in(StationVideoTypeEntity::getVideoType,stringList);
}
eq(StationVideoTypeEntity::getIsDeleted, 0);
orderBy(true,true,StationVideoTypeEntity::getStationSort);
orderBy(true,true,StationVideoTypeEntity::getSort);
}};
IPage<StationVideoTypeEntity> result = this.page(Condition.getPage(query),queryWrapper); @Override
public IPage<StationVideoTypeEntity> getStationVideoOrderByName(StationVideoTypeVO req, Query query) {
if (ObjectUtil.isNotEmpty(req.getVideoOwerType()) && req.getVideoOwerType().equals(1)) {
req.setVideoType("6");
}
Wrapper<StationVideoTypeEntity> queryWrapper = new LambdaQueryWrapper<StationVideoTypeEntity>() {{
if (CollectionUtil.isNotEmpty(req.getStationIds())) {
in(StationVideoTypeEntity::getStationId, req.getStationIds());
}
if (ObjectUtil.isNotEmpty(req.getStationId())) {
eq(StationVideoTypeEntity::getStationId, req.getStationId());
}
if (ObjectUtil.isNotEmpty(req.getStatus())) {
eq(StationVideoTypeEntity::getStatus, req.getStatus());
}
if (ObjectUtil.isNotEmpty(req.getVideoOwerType())) {
eq(StationVideoTypeEntity::getVideoOwerType, req.getVideoOwerType());
}
if (ObjectUtil.isNotEmpty(req.getVideoType())) {
eq(StationVideoTypeEntity::getVideoType, req.getVideoType());
}
if (ObjectUtil.isNotEmpty(req.getName())) {
eq(StationVideoTypeEntity::getName, req.getName());
}
if (ObjectUtil.isNotEmpty(req.getStationId()) && ObjectUtil.isEmpty(req.getVideoType()) && ObjectUtil.isNotEmpty(req.getVideoOwerType()) && req.getVideoOwerType().equals(2)) {
List<String> stringList = Arrays.asList("1", "2", "3", "4", "5");
in(StationVideoTypeEntity::getVideoType, stringList);
}
eq(StationVideoTypeEntity::getIsDeleted, 0);
orderBy(true, true, StationVideoTypeEntity::getStationSort);
orderBy(true, true, StationVideoTypeEntity::getSort);
}};
if (CollectionUtil.isNotEmpty(result.getRecords())){ IPage<StationVideoTypeEntity> result = this.page(Condition.getPage(query), queryWrapper);
for (StationVideoTypeEntity video : result.getRecords()) {
try {
video.setLiveSourceAddress(ArtemisPostUtils.getCameraPreviewFlvURL(video.getVideoHost(), video.getAppKey(), video.getAppSecret(), video.getPointCode(), 1));
}
catch(Exception e) {
log.error("视频点位【"+video.getName()+"】获取地址失败");
}
}
}
return result; if (CollectionUtil.isNotEmpty(result.getRecords())) {
} for (StationVideoTypeEntity video : result.getRecords()) {
@Override try {
public List<StationVideoTypeEntity> getVideoByIdsAndType(String ids,String type) { video.setLiveSourceAddress(ArtemisPostUtils.getCameraPreviewFlvURL(video.getVideoHost(), video.getAppKey(), video.getAppSecret(), video.getPointCode(), 1));
List<Long> idList = Func.toLongList(",",ids); } catch (Exception e) {
List<StationVideoTypeEntity> result = idList.stream().parallel().map(id -> this.getById(id)).filter(ObjectUtil::isNotEmpty).filter(entity -> entity.getIsHikvideo() == 1) log.error("视频点位【" + video.getName() + "】获取地址失败");
.map(entity -> { }
String address = null; }
try { }
address = ArtemisPostUtils.getCameraPreviewURL(
entity.getVideoHost(), entity.getAppKey(), entity.getAppSecret(), entity.getPointCode(), type, 0
);
entity.setLiveSourceAddress(address);
} catch (Exception e) {
entity.setLiveSourceAddress(null);
}
return entity;
}).collect(Collectors.toList());
return result;
}
@Override return result;
public List<StationVideoTypeEntity> getVideoByIds(String ids,String randomCode) { }
Assert.isTrue(StringUtil.isNoneBlank(randomCode) && randomCode.equals(definitionCode),()->{
throw new ServiceException("视频随机码为空或不正确");
});
Assert.isTrue(StringUtil.isNoneBlank(ids),()->{
throw new ServiceException("视频配置ID不能为空");
});
List<StationVideoTypeEntity> result = Arrays.stream(ids.split(",")).filter(ObjectUtil::isNotEmpty).map(id -> this.getById(id)).map(entity -> {
String address;
try {
address = ArtemisPostUtils.getCameraPreviewURL(
entity.getVideoHost(),
entity.getAppKey(),
entity.getAppSecret(),
entity.getPointCode(),
DictCache.getValue(StationConstants.STATION_VIDEO_TYPE_CODE,entity.getType()), 0
);
entity.setLiveSourceAddress(address);
} catch (Exception e) {
entity.setLiveSourceAddress(null);
}
return entity;
}).collect(Collectors.toList());
return result;
}
@Override @Override
public String getVideoReviewerToken() { public List<StationVideoTypeEntity> getVideoByIdsAndType(String ids, String type) {
String result = HttpUtil.post(videoLoginUrl, ""); List<Long> idList = Func.toLongList(",", ids);
JSONObject resultObject = JSONObject.parseObject(result); List<StationVideoTypeEntity> result = idList.stream().parallel().map(id -> this.getById(id)).filter(ObjectUtil::isNotEmpty).filter(entity -> entity.getIsHikvideo() == 1)
String data = resultObject.getString("data"); .map(entity -> {
String access_token = JSONObject.parseObject(data).getString("access_token"); String address = null;
log.info("视频查看人员登陆token为:{}",access_token); try {
return access_token; address = ArtemisPostUtils.getCameraPreviewURL(
} entity.getVideoHost(), entity.getAppKey(), entity.getAppSecret(), entity.getPointCode(), type, 0
);
entity.setLiveSourceAddress(address);
} catch (Exception e) {
entity.setLiveSourceAddress(null);
}
return entity;
}).collect(Collectors.toList());
return result;
}
@Override @Override
public List<JSONObject> getHikVisionStations() { public List<StationVideoTypeEntity> getVideoByIds(String ids, String randomCode) {
Assert.isTrue(StringUtil.isNotBlank(pathConfiguration.getStationsPath()),()->{ Assert.isTrue(StringUtil.isNoneBlank(randomCode) && randomCode.equals(definitionCode), () -> {
throw new ServiceException("nacos中未配置海康威视请求地址!"); throw new ServiceException("视频随机码为空或不正确");
}); });
HttpResponse response; Assert.isTrue(StringUtil.isNoneBlank(ids), () -> {
try { throw new ServiceException("视频配置ID不能为空");
response = HttpUtil.createGet(pathConfiguration.getStationsPath()).execute(); });
} List<StationVideoTypeEntity> result = Arrays.stream(ids.split(",")).filter(ObjectUtil::isNotEmpty).map(id -> this.getById(id)).map(entity -> {
catch(Exception e) { String address;
logger.error("getHikVisionStations",e.getMessage()); try {
return Lists.newArrayList(); address = ArtemisPostUtils.getCameraPreviewURL(
// throw new ServiceException(e.getMessage()); entity.getVideoHost(),
} entity.getAppKey(),
if(HttpServletResponse.SC_OK == response.getStatus()) { entity.getAppSecret(),
return JSONArray.parseArray(response.body(),JSONObject.class); entity.getPointCode(),
} DictCache.getValue(StationConstants.STATION_VIDEO_TYPE_CODE, entity.getType()), 0
return Lists.newArrayList(); );
} entity.setLiveSourceAddress(address);
} catch (Exception e) {
entity.setLiveSourceAddress(null);
}
return entity;
}).collect(Collectors.toList());
return result;
}
@Override @Override
public Map<HikDeviceResp, List<HikMonitorResp>> getMonitorsByStation(String stationId) { public String getVideoReviewerToken() {
Assert.isTrue(StringUtil.isNotBlank(pathConfiguration.getMonitorsPath()),()->{ String result = HttpUtil.post(videoLoginUrl, "");
throw new ServiceException("nacos中未配置海康威视请求地址!"); JSONObject resultObject = JSONObject.parseObject(result);
}); String data = resultObject.getString("data");
HttpResponse response; String access_token = JSONObject.parseObject(data).getString("access_token");
try{ log.info("视频查看人员登陆token为:{}", access_token);
response = HttpUtil.createGet(pathConfiguration.getMonitorsPath()+"/"+stationId).execute(); return access_token;
} }
catch (RuntimeException e) {
throw new ServiceException(e.getMessage());
}
Assert.isTrue(HttpServletResponse.SC_OK == response.getStatus(),()->{
throw new ServiceException("调用获取海康威视站点下监测点列表接口失败!");
});
List<HikMonitorResp> monitorList = JSONArray.parseArray(response.body(), HikMonitorResp.class);
logger.info("HikVideo:monitor:info",JSON.toJSONString(monitorList));
return monitorList.stream().collect(Collectors.groupingBy(HikMonitorResp::getDevice));
}
@Override @Override
public List<StationVideoTypeEntity> getVideoCount(String code,List<String> videoType,String videoOwerType) { public List<JSONObject> getHikVisionStations() {
LambdaQueryWrapper<StationVideoTypeEntity> queryWrapper = new LambdaQueryWrapper<>(); Assert.isTrue(StringUtil.isNotBlank(pathConfiguration.getStationsPath()), () -> {
if (StringUtil.isNotBlank(code)) { throw new ServiceException("nacos中未配置海康威视请求地址!");
queryWrapper.eq(StationVideoTypeEntity::getStationId, code); });
} HttpResponse response;
if (CollectionUtil.isNotEmpty(videoType)) { try {
queryWrapper.in(StationVideoTypeEntity::getVideoType, videoType); response = HttpUtil.createGet(pathConfiguration.getStationsPath()).execute();
} } catch (Exception e) {
if (StringUtil.isNotBlank(videoOwerType)) { logger.error("getHikVisionStations", e.getMessage());
queryWrapper.eq(StationVideoTypeEntity::getVideoOwerType, videoOwerType); return Lists.newArrayList();
} // throw new ServiceException(e.getMessage());
if (ObjectUtil.isNotEmpty(this.baseMapper.selectCount(queryWrapper))){ }
List<StationVideoTypeEntity> stationVideoTypeEntities = this.baseMapper.selectList(queryWrapper); if (HttpServletResponse.SC_OK == response.getStatus()) {
return stationVideoTypeEntities; return JSONArray.parseArray(response.body(), JSONObject.class);
}else { }
return new ArrayList<>(); return Lists.newArrayList();
} }
}
@Override @Override
public StationVideoTypeEntity getById(Long id,int streamType){ public Map<HikDeviceResp, List<HikMonitorResp>> getMonitorsByStation(String stationId) {
StationVideoTypeEntity stationVideoTypeEntity = this.getById(id); Assert.isTrue(StringUtil.isNotBlank(pathConfiguration.getMonitorsPath()), () -> {
if(ObjectUtil.isNotEmpty(stationVideoTypeEntity.getIsHikvideo()) && stationVideoTypeEntity.getIsHikvideo() == 1){ throw new ServiceException("nacos中未配置海康威视请求地址!");
try{ });
/**视频监控秘钥**/ HttpResponse response;
stationVideoTypeEntity.setLiveSourceAddress(ArtemisPostUtils.getCameraPreviewURL( try {
stationVideoTypeEntity.getVideoHost() response = HttpUtil.createGet(pathConfiguration.getMonitorsPath() + "/" + stationId).execute();
, stationVideoTypeEntity.getAppKey() } catch (RuntimeException e) {
, stationVideoTypeEntity.getAppSecret() throw new ServiceException(e.getMessage());
, stationVideoTypeEntity.getPointCode() }
, DictCache.getValue(StationConstants.STATION_VIDEO_TYPE_CODE,stationVideoTypeEntity.getType()) Assert.isTrue(HttpServletResponse.SC_OK == response.getStatus(), () -> {
, streamType throw new ServiceException("调用获取海康威视站点下监测点列表接口失败!");
)); });
} List<HikMonitorResp> monitorList = JSONArray.parseArray(response.body(), HikMonitorResp.class);
catch (Exception e){ logger.info("HikVideo:monitor:info", JSON.toJSONString(monitorList));
stationVideoTypeEntity.setLiveSourceAddress(null); return monitorList.stream().collect(Collectors.groupingBy(HikMonitorResp::getDevice));
} }
}
return stationVideoTypeEntity;
}
@Override @Override
public List<VideoMonitorVO> getVideoMonitor() { public List<StationVideoTypeEntity> getVideoCount(String code, List<String> videoType, String videoOwerType) {
List<VideoMonitorVO> videoMonitorVOList = this.baseMapper.getVideoMonitor(); LambdaQueryWrapper<StationVideoTypeEntity> queryWrapper = new LambdaQueryWrapper<>();
if(CollectionUtil.isEmpty(videoMonitorVOList)){ if (StringUtil.isNotBlank(code)) {
return new ArrayList<>(); queryWrapper.eq(StationVideoTypeEntity::getStationId, code);
} }
return videoMonitorVOList.stream().map(item->{ if (CollectionUtil.isNotEmpty(videoType)) {
if(CollectionUtil.isEmpty(item.getChildren())){ queryWrapper.in(StationVideoTypeEntity::getVideoType, videoType);
return item; }
} if (StringUtil.isNotBlank(videoOwerType)) {
item.setChildren(item.getChildren().stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StationVideoTypeVO::getName))), ArrayList::new))); queryWrapper.eq(StationVideoTypeEntity::getVideoOwerType, videoOwerType);
return item; }
}).collect(Collectors.toList()); if (ObjectUtil.isNotEmpty(this.baseMapper.selectCount(queryWrapper))) {
} List<StationVideoTypeEntity> stationVideoTypeEntities = this.baseMapper.selectList(queryWrapper);
return stationVideoTypeEntities;
} else {
return new ArrayList<>();
}
}
@Override @Override
public List<VideoMonitorVO> getVideoMonitor(String type) { public StationVideoTypeEntity getById(Long id, int streamType) {
List<StationEntity> agencyStationList = this.baseMapper.getAgencyStationsByVideo(type); StationVideoTypeEntity stationVideoTypeEntity = this.getById(id);
if(CollectionUtil.isEmpty(agencyStationList)) { if (ObjectUtil.isNotEmpty(stationVideoTypeEntity.getIsHikvideo()) && stationVideoTypeEntity.getIsHikvideo() == 1) {
return null; try {
} /**视频监控秘钥**/
return agencyStationList.stream() stationVideoTypeEntity.setLiveSourceAddress(ArtemisPostUtils.getCameraPreviewURL(
.map(stationEntity -> BeanUtil.copy(stationEntity,VideoMonitorVO.class)) stationVideoTypeEntity.getVideoHost()
.map(videoMonitorVO -> { , stationVideoTypeEntity.getAppKey()
LambdaQueryWrapper<StationVideoTypeEntity> qw = Wrappers.<StationVideoTypeEntity>lambdaQuery() , stationVideoTypeEntity.getAppSecret()
.eq(StationVideoTypeEntity::getStationId, videoMonitorVO.getCode()) , stationVideoTypeEntity.getPointCode()
.orderByAsc(StationVideoTypeEntity::getSort); , DictCache.getValue(StationConstants.STATION_VIDEO_TYPE_CODE, stationVideoTypeEntity.getType())
if(StringUtil.isNotBlank(type)) { , streamType
qw.eq(StationVideoTypeEntity::getVideoType,type); ));
} } catch (Exception e) {
List<StationVideoTypeVO> children = JSONArray.parseArray(JSONArray.toJSONString(this.list(qw)),StationVideoTypeVO.class); stationVideoTypeEntity.setLiveSourceAddress(null);
videoMonitorVO.setChildren(children); }
return videoMonitorVO; }
}).collect(Collectors.toList()); return stationVideoTypeEntity;
} }
/** @Override
* 水利监控视频 public List<VideoMonitorVO> getVideoMonitor() {
* @return List<VideoMonitorVO> videoMonitorVOList = this.baseMapper.getVideoMonitor();
*/ if (CollectionUtil.isEmpty(videoMonitorVOList)) {
@Override return new ArrayList<>();
public WaterMonitorVideoVo waterMonitorVideo() { }
WaterMonitorVideoVo video = new WaterMonitorVideoVo(); return videoMonitorVOList.stream().map(item -> {
List<StationVideoTypeEntity> left = this.list(Wrappers.<StationVideoTypeEntity>lambdaQuery(). if (CollectionUtil.isEmpty(item.getChildren())) {
in(StationVideoTypeEntity::getId,Arrays.asList(28483776900235440L,28483776900235463L, 28483776900235466L))); return item;
if(CollectionUtil.isNotEmpty(left)){ }
video.setLeft(left.stream().peek(item->{ item.setChildren(item.getChildren().stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StationVideoTypeVO::getName))), ArrayList::new)));
try { return item;
item.setLiveSourceAddress(ArtemisPostUtils.getCameraPreviewFlvURL(item.getVideoHost(), item.getAppKey(), item.getAppSecret(), item.getPointCode(), 1)); }).collect(Collectors.toList());
} }
catch(Exception e) {
log.error("视频点位【"+item.getPointCode()+"】获取地址失败"); @Override
} public List<VideoMonitorVO> getVideoMonitor(String type) {
List<StationEntity> agencyStationList = this.baseMapper.getAgencyStationsByVideo(type);
if (CollectionUtil.isEmpty(agencyStationList)) {
return null;
}
return agencyStationList.stream()
.map(stationEntity -> BeanUtil.copy(stationEntity, VideoMonitorVO.class))
.map(videoMonitorVO -> {
LambdaQueryWrapper<StationVideoTypeEntity> qw = Wrappers.<StationVideoTypeEntity>lambdaQuery()
.eq(StationVideoTypeEntity::getStationId, videoMonitorVO.getCode())
.orderByAsc(StationVideoTypeEntity::getSort);
if (StringUtil.isNotBlank(type)) {
qw.eq(StationVideoTypeEntity::getVideoType, type);
}
List<StationVideoTypeVO> children = JSONArray.parseArray(JSONArray.toJSONString(this.list(qw)), StationVideoTypeVO.class);
videoMonitorVO.setChildren(children);
return videoMonitorVO;
}).collect(Collectors.toList());
}
/**
* 水利监控视频
*
* @return
*/
@Override
public WaterMonitorVideoVo waterMonitorVideo() {
WaterMonitorVideoVo video = new WaterMonitorVideoVo();
List<StationVideoTypeEntity> left = this.list(Wrappers.<StationVideoTypeEntity>lambdaQuery().
in(StationVideoTypeEntity::getId, videoLeft));
if (CollectionUtil.isNotEmpty(left)) {
video.setLeft(left.stream().peek(item -> {
try {
item.setLiveSourceAddress(ArtemisPostUtils.getCameraPreviewFlvURL(item.getVideoHost(), item.getAppKey(), item.getAppSecret(), item.getPointCode(), 1));
} catch (Exception e) {
log.error("视频点位【" + item.getPointCode() + "】获取地址失败");
}
}).collect(Collectors.toList())); }).collect(Collectors.toList()));
} }
List<StationVideoTypeEntity> right = this.list(Wrappers.<StationVideoTypeEntity>lambdaQuery(). List<StationVideoTypeEntity> right = this.list(Wrappers.<StationVideoTypeEntity>lambdaQuery().
in(StationVideoTypeEntity::getId,Arrays.asList(28483776900235468L,28483776900235467L,28483776900235472L))); in(StationVideoTypeEntity::getId, videoRight));
if(CollectionUtil.isNotEmpty(right)){ if (CollectionUtil.isNotEmpty(right)) {
video.setRight(right.stream().peek(item->{ video.setRight(right.stream().peek(item -> {
try { try {
item.setLiveSourceAddress(ArtemisPostUtils.getCameraPreviewFlvURL(item.getVideoHost(), item.getAppKey(), item.getAppSecret(), item.getPointCode(), 1)); item.setLiveSourceAddress(ArtemisPostUtils.getCameraPreviewFlvURL(item.getVideoHost(), item.getAppKey(), item.getAppSecret(), item.getPointCode(), 1));
} } catch (Exception e) {
catch(Exception e) { log.error("视频点位【" + item.getPointCode() + "】获取地址失败");
log.error("视频点位【"+item.getPointCode()+"】获取地址失败"); }
}
}).collect(Collectors.toList())); }).collect(Collectors.toList()));
} }
return video; return video;
} }
} }

Loading…
Cancel
Save