Commit e270fcc2 authored by suhuiguang's avatar suhuiguang

1.视频弹框接口联调修改

parent 015d2ae8
package com.yeejoin.amos.boot.biz.common.dto; package com.yeejoin.amos.boot.biz.common.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import lombok.Data; import lombok.Data;
/**
* @author Administrator
*/
@Data @Data
@ApiModel(value = "CommonVideoDto", description = "通用视频信息") @ApiModel(value = "CommonVideoDto", description = "通用视频信息")
public class CommonVideoDto { public class CommonVideoDto {
...@@ -12,10 +16,20 @@ public class CommonVideoDto { ...@@ -12,10 +16,20 @@ public class CommonVideoDto {
private String type; private String type;
/**
* 列表时摄像头的名称,查询摄像头列表时要显示,故必须有此字段
*/
@JsonIgnore
private String label;
/**
* 预览时摄像头的名称,摄像头预览时画面上有名称,故多数字段为空
*/
private String title; private String title;
private String thumb; private String thumb;
@JsonIgnore
private String parent; private String parent;
} }
...@@ -6,20 +6,21 @@ import com.alibaba.fastjson.JSONObject; ...@@ -6,20 +6,21 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.dto.CommonVideoDto; import com.yeejoin.amos.boot.biz.common.dto.CommonVideoDto;
import com.yeejoin.amos.boot.biz.common.enums.CommonVideoEnum; import com.yeejoin.amos.boot.biz.common.enums.CommonVideoEnum;
import com.yeejoin.amos.boot.module.common.api.dto.BaseEnterpriseVideoDto;
import com.yeejoin.amos.boot.module.common.api.entity.BaseEnterpriseVideo; import com.yeejoin.amos.boot.module.common.api.entity.BaseEnterpriseVideo;
import com.yeejoin.amos.boot.module.common.api.mapper.BaseEnterpriseVideoMapper; import com.yeejoin.amos.boot.module.common.api.mapper.BaseEnterpriseVideoMapper;
import com.yeejoin.amos.boot.module.common.api.service.IBaseEnterpriseVideoService; import com.yeejoin.amos.boot.module.common.api.service.IBaseEnterpriseVideoService;
import com.yeejoin.amos.boot.module.common.api.dto.BaseEnterpriseVideoDto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import static com.yeejoin.amos.boot.biz.common.constants.VideoConstant.*;
import static com.yeejoin.amos.boot.biz.common.constants.VideoConstant.CODE_200; import static com.yeejoin.amos.boot.biz.common.constants.VideoConstant.CODE_200;
/** /**
...@@ -30,55 +31,45 @@ import static com.yeejoin.amos.boot.biz.common.constants.VideoConstant.CODE_200; ...@@ -30,55 +31,45 @@ import static com.yeejoin.amos.boot.biz.common.constants.VideoConstant.CODE_200;
*/ */
@Service @Service
@Slf4j @Slf4j
public class BaseEnterpriseVideoServiceImpl extends BaseService<BaseEnterpriseVideoDto,BaseEnterpriseVideo,BaseEnterpriseVideoMapper> implements IBaseEnterpriseVideoService { public class BaseEnterpriseVideoServiceImpl extends BaseService<BaseEnterpriseVideoDto, BaseEnterpriseVideo, BaseEnterpriseVideoMapper> implements IBaseEnterpriseVideoService {
@Value("${cylinder.video.default.image.url:/upload/tzs/cylinder/no-connect.png}") @Value("${cylinder.video.default.image.url:/upload/tzs/cylinder/no-connect.png}")
private String defaultVideoUrl; private String defaultVideoUrl;
public List<CommonVideoDto> getUnitVideoUrl(String useUnitCode) { public List<CommonVideoDto> getUnitVideoUrl(String useUnitCode, String regionCode) {
List<CommonVideoDto> result = new ArrayList<CommonVideoDto>(); List<CommonVideoDto> result = new ArrayList<CommonVideoDto>();
LambdaQueryWrapper<BaseEnterpriseVideo> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BaseEnterpriseVideo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BaseEnterpriseVideo::getUseUnitCode, useUnitCode); wrapper.eq(BaseEnterpriseVideo::getUseUnitCode, useUnitCode);
BaseEnterpriseVideo cylinderUnitVideo = this.getBaseMapper().selectOne(wrapper); wrapper.like(StringUtils.isNotEmpty(regionCode), BaseEnterpriseVideo::getRegionCode, regionCode);
if (null != cylinderUnitVideo) { List<BaseEnterpriseVideo> videos = this.getBaseMapper().selectList(wrapper);
HashMap<String, Object> requestInfo = new HashMap<>(); for (BaseEnterpriseVideo video : videos) {
requestInfo.put("appKey", cylinderUnitVideo.getAppKey()); Map<String, Object> requestInfo = new HashMap<>();
requestInfo.put("appSecret", cylinderUnitVideo.getAppSecret()); requestInfo.put("appKey", video.getAppKey());
String channelNos = cylinderUnitVideo.getChannelNo(); requestInfo.put("appSecret", video.getAppSecret());
String channelNos = video.getChannelNo();
List<CommonVideoDto> channelNoList = JSONObject.parseArray(channelNos, CommonVideoDto.class); List<CommonVideoDto> channelNoList = JSONObject.parseArray(channelNos, CommonVideoDto.class);
try { try {
String accessTokenData = HttpUtil.post(cylinderUnitVideo.getTokenUrl(), requestInfo); String accessTokenData = HttpUtil.post(video.getTokenUrl(), requestInfo);
JSONObject jsonObject = JSON.parseObject(accessTokenData); JSONObject jsonObject = JSON.parseObject(accessTokenData);
String msg = jsonObject.get("msg").toString(); String msg = jsonObject.get("msg").toString();
String code = jsonObject.get("code").toString(); String code = jsonObject.get("code").toString();
if (CODE_10001.equals(code) || CODE_10005.equals(code) || CODE_10017.equals(code) || CODE_10030.equals(code) || CODE_49999.equals(code)) {
String errorMsg = "code:" + code + "msg:" + msg + "appKey:" + cylinderUnitVideo.getAppKey() + "appSecret:" + cylinderUnitVideo.getAppSecret();
log.info("视频token获取失败errorMsg:{}", errorMsg);
this.setDefaultVideoIfConnectFailed(channelNoList, result);
return result;
}
if (CODE_200.equals(code)) { if (CODE_200.equals(code)) {
String data = jsonObject.get("data").toString(); String data = jsonObject.get("data").toString();
JSONObject objTokenJson = JSON.parseObject(data); JSONObject objTokenJson = JSON.parseObject(data);
String accessToken = objTokenJson.get("accessToken").toString(); String accessToken = objTokenJson.get("accessToken").toString();
System.out.println(accessToken); System.out.println(accessToken);
for (CommonVideoDto channelNo : channelNoList) { for (CommonVideoDto channelNo : channelNoList) {
HashMap<String, Object> requestVideosInfo = new HashMap<>(); Map<String, Object> requestVideosInfo = new HashMap<>();
requestVideosInfo.put("accessToken", accessToken); requestVideosInfo.put("accessToken", accessToken);
requestVideosInfo.put("deviceSerial", cylinderUnitVideo.getDeviceSerial()); requestVideosInfo.put("deviceSerial", video.getDeviceSerial());
requestVideosInfo.put("channelNo", channelNo.getKey()); requestVideosInfo.put("channelNo", channelNo.getKey());
requestVideosInfo.put("protocol", cylinderUnitVideo.getProtocol()); requestVideosInfo.put("protocol", video.getProtocol());
requestVideosInfo.put("expireTime", cylinderUnitVideo.getExpireTime()); requestVideosInfo.put("expireTime", video.getExpireTime());
String videoData = HttpUtil.post(cylinderUnitVideo.getUrl(), requestVideosInfo); log.info("开始获取通道信息:{}", JSONObject.toJSONString(requestVideosInfo));
String videoData = HttpUtil.post(video.getUrl(), requestVideosInfo);
JSONObject videoJsonObject = JSON.parseObject(videoData); JSONObject videoJsonObject = JSON.parseObject(videoData);
String msgVideo = videoJsonObject.get("msg").toString(); String msgVideo = videoJsonObject.get("msg").toString();
String codeVideo = videoJsonObject.get("code").toString(); String codeVideo = videoJsonObject.get("code").toString();
if (CODE_201.equals(codeVideo) || CODE_401.equals(codeVideo) || CODE_403.equals(codeVideo) || CODE_404.equals(codeVideo) || CODE_20001.equals(codeVideo)) {
String errorMsg = "code:" + codeVideo + "msg:" + msgVideo + "appKey:" + cylinderUnitVideo.getAppKey() + "appSecret:" + cylinderUnitVideo.getAppSecret() + "accessToken:" + accessToken;
log.info("视频地址获取失败errorMsg:{}", errorMsg);
this.setDefaultChannelData(result, channelNo);
continue;
}
if (CODE_200.equals(codeVideo)) { if (CODE_200.equals(codeVideo)) {
String dataS = videoJsonObject.get("data").toString(); String dataS = videoJsonObject.get("data").toString();
JSONObject dd = JSON.parseObject(dataS); JSONObject dd = JSON.parseObject(dataS);
...@@ -86,12 +77,20 @@ public class BaseEnterpriseVideoServiceImpl extends BaseService<BaseEnterpriseVi ...@@ -86,12 +77,20 @@ public class BaseEnterpriseVideoServiceImpl extends BaseService<BaseEnterpriseVi
CommonVideoDto commonVideoDto = new CommonVideoDto(); CommonVideoDto commonVideoDto = new CommonVideoDto();
commonVideoDto.setUrl(url); commonVideoDto.setUrl(url);
commonVideoDto.setKey(channelNo.getKey()); commonVideoDto.setKey(channelNo.getKey());
commonVideoDto.setType(CommonVideoEnum.getEnum(cylinderUnitVideo.getProtocol()).getName()); commonVideoDto.setType(CommonVideoEnum.getEnum(video.getProtocol()).getName());
commonVideoDto.setTitle(channelNo.getTitle()); commonVideoDto.setTitle(channelNo.getTitle());
commonVideoDto.setThumb(channelNo.getThumb()); commonVideoDto.setThumb(channelNo.getThumb());
result.add(commonVideoDto); result.add(commonVideoDto);
} else {
String errorMsg = "code:" + codeVideo + "msg:" + msgVideo + "appKey:" + video.getAppKey() + "appSecret:" + video.getAppSecret() + "accessToken:" + accessToken;
log.info("视频地址获取失败errorMsg:{}", errorMsg);
this.setDefaultChannelData(result, channelNo);
} }
} }
} else {
String errorMsg = "code:" + code + "msg:" + msg + "appKey:" + video.getAppKey() + "appSecret:" + video.getAppSecret();
log.info("视频token获取失败errorMsg:{}", errorMsg);
this.setDefaultVideoIfConnectFailed(channelNoList, result);
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage()); log.error(e.getMessage());
......
package com.yeejoin.amos.boot.module.statistics.api.dto; package com.yeejoin.amos.boot.module.statistics.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data; import lombok.Data;
/** /**
* @author Administrator * @author Administrator
*/ */
@Data @Data
public class UnitVideoDto extends BaseDto { public class UnitVideoDto {
private String id; private String id;
......
package com.yeejoin.amos.boot.module.statistcs.biz.controller; package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.biz.common.dto.CommonVideoDto; import com.yeejoin.amos.boot.biz.common.dto.CommonVideoDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto; import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.VideoServiceImpl; import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.VideoServiceImpl;
import com.yeejoin.amos.boot.module.statistics.api.dto.UnitVideoDto;
import com.yeejoin.amos.boot.module.statistics.api.vo.TreeNodeVo; import com.yeejoin.amos.boot.module.statistics.api.vo.TreeNodeVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -48,16 +48,16 @@ public class VideoController { ...@@ -48,16 +48,16 @@ public class VideoController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "查询指定区域下的单位列表接口,带摄像头数量统计-不分页", httpMethod = "GET") @ApiOperation(value = "查询指定区域下的单位列表接口,带摄像头数量统计-不分页", httpMethod = "GET")
@GetMapping(value = "/countByUnit") @GetMapping(value = "/countByUnit")
public ResponseModel<List<? extends BaseDto>> getUnitList(@RequestParam(value = "code") String regionCode) { public ResponseModel<List<UnitVideoDto>> getUnitList(@RequestParam(value = "code") String regionCode) {
List<? extends BaseDto> re = videoService.getUnitList(regionCode); List<UnitVideoDto> re = videoService.getUnitList(regionCode);
return ResponseHelper.buildResponse(re); return ResponseHelper.buildResponse(re);
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "查询指定单位下的摄像头列表接口-不分页", httpMethod = "GET") @ApiOperation(value = "查询指定单位下的摄像头列表接口-不分页", httpMethod = "GET")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public ResponseModel<List<CommonVideoDto>> getVideoList(@RequestParam(value = "code") String useUnitCode) { public ResponseModel<List<CommonVideoDto>> getVideoList(@RequestParam(value = "code") String useUnitCode, @RequestParam(value = "regionCode") String regionCode) {
List<CommonVideoDto> re = videoService.getVideoList(useUnitCode); List<CommonVideoDto> re = videoService.getVideoList(useUnitCode, regionCode);
return ResponseHelper.buildResponse(re); return ResponseHelper.buildResponse(re);
} }
} }
...@@ -3,7 +3,6 @@ package com.yeejoin.amos.boot.module.statistcs.biz.service.impl; ...@@ -3,7 +3,6 @@ package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.biz.common.dto.CommonVideoDto; import com.yeejoin.amos.boot.biz.common.dto.CommonVideoDto;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto; import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
...@@ -80,24 +79,25 @@ public class VideoServiceImpl { ...@@ -80,24 +79,25 @@ public class VideoServiceImpl {
treeNodeVo.setParentId(String.valueOf(r.getParentId())); treeNodeVo.setParentId(String.valueOf(r.getParentId()));
return treeNodeVo; return treeNodeVo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
// 区域拼接为树结构
List<TreeNodeVo> treeNodeVos = regionNodes.stream().filter(r -> StringUtils.isEmpty(r.getParentId()) || "0".equals(r.getParentId())).map(r -> { List<TreeNodeVo> treeNodeVos = regionNodes.stream().filter(r -> StringUtils.isEmpty(r.getParentId()) || "0".equals(r.getParentId())).map(r -> {
TreeNodeVo treeNodeVo = new TreeNodeVo(); TreeNodeVo treeNodeVo = new TreeNodeVo();
BeanUtil.copyProperties(r, treeNodeVo); BeanUtil.copyProperties(r, treeNodeVo);
treeNodeVo.setChildren(this.getRegionTypeNode(treeNodeVo , regionNodes)); treeNodeVo.setChildren(this.getRegionTypeNode(treeNodeVo, regionNodes));
return treeNodeVo; return treeNodeVo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
// 给区域的最下级增加直接下级->单位,id不是其他的parent_id则为树的叶子节点 // 给区域的最下级增加直接下级->单位,id不是其他的parent_id则为树的叶子节点
treeNodeVos.forEach(t->{ treeNodeVos.forEach(t -> {
this.setChildrenUnitTypeNode(regionNodes, t, baseEnterpriseInfos, videoEquipList, channelNoList); this.setChildrenUnitTypeNode(regionNodes, t, baseEnterpriseInfos, videoEquipList, channelNoList);
}); });
return treeNodeVos; return treeNodeVos;
} }
private void setChildrenUnitTypeNode(List<TreeNodeVo> regionNodes, TreeNodeVo parentNode, List<TzBaseEnterpriseInfo> baseEnterpriseInfos, List<BaseEnterpriseVideo> videoEquipList, List<CommonVideoDto> channelNoList) { private void setChildrenUnitTypeNode(List<TreeNodeVo> regionNodes, TreeNodeVo parentNode, List<TzBaseEnterpriseInfo> baseEnterpriseInfos, List<BaseEnterpriseVideo> videoEquipList, List<CommonVideoDto> channelNoList) {
if(regionNodes.stream().noneMatch(e -> parentNode.getId().equals(e.getParentId()))){ if (regionNodes.stream().noneMatch(e -> parentNode.getId().equals(e.getParentId()))) {
parentNode.setChildren(this.buildUnitTypeNode(baseEnterpriseInfos, videoEquipList, channelNoList, parentNode)); parentNode.setChildren(this.buildUnitTypeNode(baseEnterpriseInfos, videoEquipList, channelNoList, parentNode));
} else { } else {
parentNode.getChildren().forEach(p->{ parentNode.getChildren().forEach(p -> {
setChildrenUnitTypeNode(regionNodes, p, baseEnterpriseInfos, videoEquipList, channelNoList); setChildrenUnitTypeNode(regionNodes, p, baseEnterpriseInfos, videoEquipList, channelNoList);
}); });
} }
...@@ -135,7 +135,7 @@ public class VideoServiceImpl { ...@@ -135,7 +135,7 @@ public class VideoServiceImpl {
// 这个key需要全局唯一,用来页面左侧点击摄像头类型的节点时与右侧的摄像头列表进行定位 // 这个key需要全局唯一,用来页面左侧点击摄像头类型的节点时与右侧的摄像头列表进行定位
// @see /video/list->CommonVideoDto.key // @see /video/list->CommonVideoDto.key
treeNodeVo.setId(u.getKey()); treeNodeVo.setId(u.getKey());
treeNodeVo.setName(u.getTitle()); treeNodeVo.setName(u.getLabel());
treeNodeVo.setParentId(parentNode.getId()); treeNodeVo.setParentId(parentNode.getId());
return treeNodeVo; return treeNodeVo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
...@@ -177,7 +177,7 @@ public class VideoServiceImpl { ...@@ -177,7 +177,7 @@ public class VideoServiceImpl {
return enterpriseVideoService.list(queryWrapper); return enterpriseVideoService.list(queryWrapper);
} }
public List<? extends BaseDto> getUnitList(String regionCode) { public List<UnitVideoDto> getUnitList(String regionCode) {
// 摄像头设备 // 摄像头设备
List<BaseEnterpriseVideo> videoEquipList = getVideos(regionCode); List<BaseEnterpriseVideo> videoEquipList = getVideos(regionCode);
// 摄像头对应的单位列表 // 摄像头对应的单位列表
...@@ -186,6 +186,7 @@ public class VideoServiceImpl { ...@@ -186,6 +186,7 @@ public class VideoServiceImpl {
UnitVideoDto unitVideoDto = new UnitVideoDto(); UnitVideoDto unitVideoDto = new UnitVideoDto();
unitVideoDto.setId(e.getSequenceNbr() + ""); unitVideoDto.setId(e.getSequenceNbr() + "");
unitVideoDto.setName(e.getUseUnit()); unitVideoDto.setName(e.getUseUnit());
unitVideoDto.setCode(e.getUseUnitCode());
// 摄像头通道 // 摄像头通道
List<CommonVideoDto> channelNoList = this.getVideoChannel(videoEquipList); List<CommonVideoDto> channelNoList = this.getVideoChannel(videoEquipList);
unitVideoDto.setCountNum(channelNoList.stream().filter(c -> c.getParent().equals(e.getUseUnitCode())).count()); unitVideoDto.setCountNum(channelNoList.stream().filter(c -> c.getParent().equals(e.getUseUnitCode())).count());
...@@ -193,8 +194,8 @@ public class VideoServiceImpl { ...@@ -193,8 +194,8 @@ public class VideoServiceImpl {
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
public List<CommonVideoDto> getVideoList(String useUnitCode) { public List<CommonVideoDto> getVideoList(String useUnitCode, String regionCode) {
return enterpriseVideoService.getUnitVideoUrl(useUnitCode); return enterpriseVideoService.getUnitVideoUrl(useUnitCode, regionCode);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment