|
@@ -9,14 +9,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.huimv.admin.common.utils.Result;
|
|
|
import com.huimv.admin.common.utils.ResultCode;
|
|
|
import com.huimv.admin.common.utils.ResultUtil;
|
|
|
+import com.huimv.admin.entity.BasePigpen;
|
|
|
import com.huimv.admin.entity.CameraArea;
|
|
|
import com.huimv.admin.entity.CameraBase;
|
|
|
import com.huimv.admin.entity.CameraBrand;
|
|
|
+import com.huimv.admin.entity.dto.CameraNameDto;
|
|
|
import com.huimv.admin.entity.hkwsdto.CameraDto1;
|
|
|
import com.huimv.admin.entity.hkwsdto.UnitDto1;
|
|
|
import com.huimv.admin.entity.vo.CameraListVo;
|
|
|
import com.huimv.admin.entity.vo.CameraListsVo;
|
|
|
import com.huimv.admin.entity.vo.CameraVo;
|
|
|
+import com.huimv.admin.entity.vo.TreeBasePigpen;
|
|
|
import com.huimv.admin.mapper.CameraAreaMapper;
|
|
|
import com.huimv.admin.mapper.CameraBaseMapper;
|
|
|
import com.huimv.admin.mapper.CameraBrandMapper;
|
|
@@ -25,15 +28,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.CopyOnWriteArrayList;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
- * 服务实现类
|
|
|
+ * 服务实现类
|
|
|
* </p>
|
|
|
*
|
|
|
* @author author
|
|
@@ -46,6 +48,8 @@ public class CameraBaseServiceImpl extends ServiceImpl<CameraBaseMapper, CameraB
|
|
|
private CameraAreaMapper cameraAreaMapper;
|
|
|
@Autowired
|
|
|
private CameraBrandMapper cameraBrandMapper;
|
|
|
+ @Autowired
|
|
|
+ private CameraBaseMapper cameraBaseMapper;
|
|
|
|
|
|
@Override
|
|
|
public Result listPage(CameraListVo cameraListVo) {
|
|
@@ -58,11 +62,11 @@ public class CameraBaseServiceImpl extends ServiceImpl<CameraBaseMapper, CameraB
|
|
|
Integer onLineStatus = cameraListVo.getOnLineStatus();
|
|
|
String regionUuuid = cameraListVo.getRegionUuuid();
|
|
|
QueryWrapper<CameraBase> wrapper = new QueryWrapper<>();
|
|
|
- if (null == current ) {
|
|
|
- current =1;
|
|
|
+ if (null == current) {
|
|
|
+ current = 1;
|
|
|
}
|
|
|
- if (null ==size) {
|
|
|
- size =10;
|
|
|
+ if (null == size) {
|
|
|
+ size = 10;
|
|
|
}
|
|
|
if (farmId != null) {
|
|
|
wrapper.eq("farm_id", farmId);
|
|
@@ -98,7 +102,7 @@ public class CameraBaseServiceImpl extends ServiceImpl<CameraBaseMapper, CameraB
|
|
|
String regionUuid = cameraBase.getRegionUuid();
|
|
|
CameraArea cameraArea = cameraAreaMapper.selectOne(new QueryWrapper<CameraArea>().eq("region_uuid", regionUuid));
|
|
|
// http://61.153.248.106:6713/mag/hls/6bf5d2cf30bb440cad3fc126512f5188/1/live.m3u8
|
|
|
- String hls ="http://"+cameraArea.getPublicUrl()+cameraBrand.getStreamType()+cameraBase.getCameraUuid()+"/"+ cameraBrand.getMainStream()+"/"+"live.m3u8";
|
|
|
+ String hls = "http://" + cameraArea.getPublicUrl() + cameraBrand.getStreamType() + cameraBase.getCameraUuid() + "/" + cameraBrand.getMainStream() + "/" + "live.m3u8";
|
|
|
CameraVo cameraVo = new CameraVo();
|
|
|
cameraVo.setHlsUrl(hls);
|
|
|
cameraVo.setId(cameraBase.getId());
|
|
@@ -120,14 +124,14 @@ public class CameraBaseServiceImpl extends ServiceImpl<CameraBaseMapper, CameraB
|
|
|
CopyOnWriteArrayList<String> huatongDeviceIdCopy = ListUtil.toCopyOnWriteArrayList(huatongCameraId);
|
|
|
haikangDeviceIdCopy.removeAll(huatongCameraId);
|
|
|
//TODO 想不出来,回头优化
|
|
|
- if (haikangDeviceIdCopy.size() >0){
|
|
|
+ if (haikangDeviceIdCopy.size() > 0) {
|
|
|
for (String s : haikangDeviceIdCopy) {
|
|
|
for (CameraDto1 cameraDto1 : list) {
|
|
|
- if (s.equals(cameraDto1.getCameraUuid())){
|
|
|
+ if (s.equals(cameraDto1.getCameraUuid())) {
|
|
|
CameraBase cameraBase = new CameraBase();
|
|
|
- BeanUtil.copyProperties(cameraDto1,cameraBase);
|
|
|
+ BeanUtil.copyProperties(cameraDto1, cameraBase);
|
|
|
CameraArea cameraArea = cameraAreaMapper.selectOne(new QueryWrapper<CameraArea>().eq("region_uuid", cameraDto1.getRegionUuid()));
|
|
|
- if (ObjectUtil.isNotEmpty(cameraArea)){
|
|
|
+ if (ObjectUtil.isNotEmpty(cameraArea)) {
|
|
|
cameraBase.setAreaName(cameraArea.getAreaName());
|
|
|
}
|
|
|
cameraBase.setBrandName("海康威视");
|
|
@@ -139,8 +143,8 @@ public class CameraBaseServiceImpl extends ServiceImpl<CameraBaseMapper, CameraB
|
|
|
}
|
|
|
//删除
|
|
|
huatongDeviceIdCopy.removeAll(haikangCarmearId);
|
|
|
- if (huatongDeviceIdCopy.size() >0){
|
|
|
- this.remove(new QueryWrapper<CameraBase>().in("camera_uuid",huatongDeviceIdCopy));
|
|
|
+ if (huatongDeviceIdCopy.size() > 0) {
|
|
|
+ this.remove(new QueryWrapper<CameraBase>().in("camera_uuid", huatongDeviceIdCopy));
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -151,7 +155,65 @@ public class CameraBaseServiceImpl extends ServiceImpl<CameraBaseMapper, CameraB
|
|
|
for (CameraDto1 cameraDto1 : list) {
|
|
|
String cameraUuid = cameraDto1.getCameraUuid();
|
|
|
CameraBase one = this.getOne(new QueryWrapper<CameraBase>().eq("camera_uuid", cameraUuid));
|
|
|
- one.setOnLineStatus(1 ==cameraDto1.getOnLineStatus());
|
|
|
+ one.setOnLineStatus(1 == cameraDto1.getOnLineStatus());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ QueryWrapper<CameraArea> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", farmId);
|
|
|
+ List<CameraArea> cameraAreas = cameraAreaMapper.selectList(queryWrapper);
|
|
|
+
|
|
|
+ List<CameraNameDto> cameraNameDtoList = new LinkedList();
|
|
|
+ for (CameraArea cameraArea : cameraAreas) {
|
|
|
+ CameraNameDto cameraNameDto = new CameraNameDto();
|
|
|
+ QueryWrapper<CameraBase> baseQueryWrapper = new QueryWrapper<>();
|
|
|
+ baseQueryWrapper.eq("farm_id", farmId).eq("area_name", cameraArea.getAreaName());
|
|
|
+ List<CameraBase> cameraBases = cameraBaseMapper.selectList(baseQueryWrapper);
|
|
|
+
|
|
|
+ cameraNameDto.setCameraBases(cameraBases);
|
|
|
+ cameraNameDto.setId(cameraArea.getId());
|
|
|
+ cameraNameDto.setAreaName(cameraArea.getAreaName());
|
|
|
+
|
|
|
+ cameraNameDtoList.add(cameraNameDto);
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+ return new Result(ResultCode.SUCCESS, cameraNameDtoList);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /* *//**
|
|
|
+ * 查询结果 转换成树形结构
|
|
|
+ * @param bizBaseAreas 原始数据
|
|
|
+ * @return 树
|
|
|
+ *//*
|
|
|
+ private List<CameraNameDto> parseBizBaseArea(List<CameraBase> bizBaseAreas){
|
|
|
+ //构建需要展示的树形节点结构
|
|
|
+ Map<String, CameraNameDto> nodeMap = bizBaseAreas.stream().map(basePigpen -> {
|
|
|
+ CameraNameDto baseVo = new CameraNameDto();
|
|
|
+ baseVo.setId(basePigpen.getId()+"");
|
|
|
+ baseVo.setCameraName(basePigpen.getCameraName());
|
|
|
+ baseVo.setFarmId(basePigpen.getFarmId().toString());
|
|
|
+ baseVo.setChildNode(new ArrayList<>());
|
|
|
+ return baseVo;
|
|
|
+ }).collect(Collectors.toMap(CameraNameDto::getId, b -> b,(k1, k2)->k1));
|
|
|
+ //创建数组存父亲节点
|
|
|
+ ArrayList<CameraNameDto> roots = new ArrayList<>();
|
|
|
+ //构建树形
|
|
|
+ nodeMap.values().forEach(item->{
|
|
|
+ String parentCode = item.getParentId()+"";
|
|
|
+ if (nodeMap.get(parentCode) == null){
|
|
|
+ //父节点为空,说明当前节点就已经是父节点了 将该节点存起来
|
|
|
+ roots.add(item);
|
|
|
+ }else {
|
|
|
+ //父节点 不为空,说明有父节点,拿到该节点的父节点的孩子节点(就是我自己),将该节点存起来
|
|
|
+ nodeMap.get(parentCode).getChildNode().add(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return roots;
|
|
|
+ }*/
|
|
|
}
|