wwh 1 سال پیش
والد
کامیت
fed6896db2

+ 3 - 3
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/SysCameraAreaController.java

@@ -52,7 +52,7 @@ public class SysCameraAreaController {
     @PostMapping("/update")
     public Result update(@RequestBody SysCameraArea cameraArea) {
         cameraAreaService.updateById(cameraArea);
-        int brandName = cameraAreaService.count(new QueryWrapper<SysCameraArea>().eq("area_name", cameraArea.getAreaName()));
+        int brandName = cameraAreaService.count(new QueryWrapper<SysCameraArea>().eq("area_name", cameraArea.getAreaName()).eq("farm_id",cameraArea.getFarmId()));
         if (brandName > 1) {
             return new Result(100001, "区域名称重复", false);
         }
@@ -71,9 +71,9 @@ public class SysCameraAreaController {
     }
 
     @GetMapping("/remove")
-    public Result remove(@RequestParam(value = "ids") List<Integer> ids) {
+    public Result remove(@RequestParam(value = "ids") List<Integer> ids, @RequestParam(value = "farmId") String farmId) {
 
-        return cameraAreaService.removeIds(ids);
+        return cameraAreaService.removeIds(ids,farmId);
 
     }
 

+ 3 - 3
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/SysCameraBrandController.java

@@ -52,7 +52,7 @@ public class SysCameraBrandController {
     @PostMapping("/update")
     public Result update(@RequestBody SysCameraBrand cameraArea) {
         cameraBrandService.updateById(cameraArea);
-        int brandName = cameraBrandService.count(new QueryWrapper<SysCameraBrand>().eq("brand_name", cameraArea.getBrandName()));
+        int brandName = cameraBrandService.count(new QueryWrapper<SysCameraBrand>().eq("brand_name", cameraArea.getBrandName()).eq("farm_id", cameraArea.getFarmId()));
         if (brandName > 1) {
             return new Result(10001, "品牌名称重复", false);
         }
@@ -69,8 +69,8 @@ public class SysCameraBrandController {
     }
 
     @GetMapping("/remove")
-    public Result remove(@RequestParam(value = "ids") List<Integer> ids) {
-        return cameraBrandService.removeIds(ids);
+    public Result remove(@RequestParam(value = "ids") List<Integer> ids,@RequestParam(value = "farmId") String farmId) {
+        return cameraBrandService.removeIds(ids,farmId);
     }
 
 }

+ 34 - 3
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/SysCameraController.java

@@ -2,12 +2,17 @@ package com.huimv.guowei.admin.controller;
 
 
 import com.huimv.guowei.admin.common.utils.Result;
+import com.huimv.guowei.admin.common.utils.ResultCode;
+import com.huimv.guowei.admin.entity.SysCamera;
 import com.huimv.guowei.admin.entity.vo.CameraListVo;
+import com.huimv.guowei.admin.entity.vo.CameraListsVo;
 import com.huimv.guowei.admin.service.ISysCameraService;
+import javafx.scene.Camera;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -30,8 +35,34 @@ public class SysCameraController {
         return cameraService.listPage(cameraListVo);
     }
 
-    @PostMapping("/listName")
-    public Result listName(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
-        return cameraService.list(httpServletRequest,paramsMap);
+    @PostMapping("/add")
+    public Result add(@RequestBody SysCamera camera) {
+
+        if (camera == null) {
+            return new Result(ResultCode.FAIL, "添加失败");
+        }
+
+
+        return cameraService.add(camera);
+
+    }
+
+    @PostMapping("/update")
+    public Result update(@RequestBody SysCamera camera) {
+        return cameraService.updates(camera);
+
+    }
+
+    @GetMapping("/remove")
+    public Result remove(@RequestParam(value = "ids") List<Integer> ids) {
+        cameraService.removeByIds(ids);
+        return new Result(ResultCode.SUCCESS, "删除成功");
+    }
+
+    @PostMapping("/getCameraDetails")
+    private Result getCameraDetails(@RequestBody CameraListsVo cameraListsVo) {
+
+        List list = cameraService.getCameraDetails(cameraListsVo);
+        return new Result(ResultCode.SUCCESS, list);
     }
 }

+ 2 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/SysCameraFunctionAreaController.java

@@ -61,7 +61,8 @@ public class SysCameraFunctionAreaController {
     @PostMapping("/update")
     public Result update(@RequestBody SysCameraFunctionArea cameraFunctionArea) {
         cameraFuntcionAreaService.updateById(cameraFunctionArea);
-        int brandName = cameraFuntcionAreaService.count(new QueryWrapper<SysCameraFunctionArea>().eq("function_name", cameraFunctionArea.getFunctionName()));
+        int brandName = cameraFuntcionAreaService.count(new QueryWrapper<SysCameraFunctionArea>().eq("function_name", cameraFunctionArea.getFunctionName())
+                .eq("farm_id",cameraFunctionArea.getFarmId()));
         if (brandName > 1) {
             return new Result(100001, "区域名称重复", false);
         }

+ 1 - 2
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/CameraListVo.java

@@ -12,6 +12,5 @@ public class CameraListVo {
     private Integer brandId;
     private Integer sort;
     private Integer farmId;
-    private String regionUuid;
-    private Integer onLineStatus;
+    private Integer isOnline;
 }

+ 19 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/CameraListsVo.java

@@ -0,0 +1,19 @@
+package com.huimv.guowei.admin.entity.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.video.video.entity.vo
+ * @Description : TODO
+ * @Author : yuxuexuan
+ * @Create : 2021/9/29 0029 13:54
+ **/
+@Data
+public class CameraListsVo extends CameraListVo {
+
+
+    List<Integer> cameraIds;
+}

+ 23 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/CameraVo.java

@@ -0,0 +1,23 @@
+package com.huimv.guowei.admin.entity.vo;
+
+import lombok.Data;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.video.video.entity
+ * @Description : TODO
+ * @Author : yuxuexuan
+ * @Create : 2021/9/26 0026 14:56
+ **/
+@Data
+public class CameraVo {
+    private String wsUrl;
+    private Integer id;
+    private String rtspUrl;
+    private Integer areaId;
+    private String cameraName;
+    private Integer lastId;
+    private Integer nextId;
+    private String httpUrl;
+
+}

+ 1 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/service/ISysCameraAreaService.java

@@ -20,7 +20,7 @@ import java.util.Map;
 public interface ISysCameraAreaService extends IService<SysCameraArea> {
     Result cameraList(Map<String, Object> params);
 
-    Result removeIds(List<Integer> ids);
+    Result removeIds(List<Integer> ids,String farmId);
 
     Result lsitAndCamera(Integer farmId);
 /*

+ 1 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/service/ISysCameraBrandService.java

@@ -18,5 +18,5 @@ import java.util.Map;
 public interface ISysCameraBrandService extends IService<SysCameraBrand> {
     Result listPage(Map<String, Object> params);
 
-    Result removeIds(List<Integer> ids);
+    Result removeIds(List<Integer> ids, String farmId);
 }

+ 11 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/service/ISysCameraService.java

@@ -4,8 +4,12 @@ import com.huimv.guowei.admin.common.utils.Result;
 import com.huimv.guowei.admin.entity.SysCamera;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.guowei.admin.entity.vo.CameraListVo;
+import com.huimv.guowei.admin.entity.vo.CameraListsVo;
+import com.huimv.guowei.admin.entity.vo.CameraVo;
+import javafx.scene.Camera;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -18,5 +22,11 @@ import java.util.Map;
  */
 public interface ISysCameraService extends IService<SysCamera> {
     Result listPage(CameraListVo cameraListVo);
-    Result list(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    List getCameraDetails(CameraListsVo cameraListsVo);
+
+    Result add(SysCamera camera);
+
+    Result updates(SysCamera camera);
+
 }

+ 2 - 2
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/SysCameraAreaServiceImpl.java

@@ -53,11 +53,11 @@ public class SysCameraAreaServiceImpl extends ServiceImpl<SysCameraAreaMapper, S
     }
 
     @Override
-    public Result removeIds(List<Integer> ids) {
+    public Result removeIds(List<Integer> ids,String farmId) {
         for (Integer id : ids) {
             SysCameraArea byId = this.getById(id);
 
-            Integer areaId = cameraMapper.selectCount(new QueryWrapper<SysCamera>().eq("area_id", id));
+            Integer areaId = cameraMapper.selectCount(new QueryWrapper<SysCamera>().eq("area_id", id).eq("farm_id", farmId));
             if (areaId > 0) {
                 return new Result(10001, "删除失败,区域" + byId.getAreaName() + "仍然存在摄像头", false);
             }

+ 3 - 3
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/SysCameraBrandServiceImpl.java

@@ -36,15 +36,15 @@ public class SysCameraBrandServiceImpl extends ServiceImpl<SysCameraBrandMapper,
         Integer current = (Integer) params.get("current");
         Integer size = (Integer) params.get("size");
         String brandName = (String) params.get("brandName");
-        Integer farmId = (Integer) params.get("farmId");
+        Integer farmId = Integer.parseInt(params.get("farmId").toString());
         IPage<SysCameraBrand> list = page(new Page<>(current, size), new QueryWrapper<SysCameraBrand>().like(StringUtils.isNotBlank(brandName), "brand_name", brandName).eq("farm_id", farmId));
         return new Result(ResultCode.SUCCESS, list);
     }
 
     @Override
-    public Result removeIds(List<Integer> ids) {
+    public Result removeIds(List<Integer> ids,String farmId) {
         for (Integer id : ids) {
-            Integer integer = cameraMapper.selectCount(new QueryWrapper<SysCamera>().eq("brand_id", id));
+            Integer integer = cameraMapper.selectCount(new QueryWrapper<SysCamera>().eq("brand_id", id).eq("farm_id",farmId));
             SysCameraBrand byId = this.getById(id);
             if (integer != 0) {
                 return new Result(ResultCode.FAIL, "有" + byId.getBrandName() + "的摄像头在使用,删除失败");

+ 137 - 42
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/SysCameraServiceImpl.java

@@ -1,5 +1,9 @@
 package com.huimv.guowei.admin.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.poi.excel.ExcelReader;
+import cn.hutool.poi.excel.ExcelUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -8,24 +12,26 @@ import com.huimv.guowei.admin.common.utils.Result;
 import com.huimv.guowei.admin.common.utils.ResultCode;
 import com.huimv.guowei.admin.entity.SysCamera;
 import com.huimv.guowei.admin.entity.SysCameraArea;
-import com.huimv.guowei.admin.entity.vo.CameraBaseVo;
-import com.huimv.guowei.admin.entity.vo.CameraListVo;
-import com.huimv.guowei.admin.entity.vo.CameraNameDto;
+import com.huimv.guowei.admin.entity.SysCameraBrand;
+import com.huimv.guowei.admin.entity.vo.*;
 import com.huimv.guowei.admin.mapper.SysCameraAreaMapper;
+import com.huimv.guowei.admin.mapper.SysCameraBrandMapper;
 import com.huimv.guowei.admin.mapper.SysCameraMapper;
 import com.huimv.guowei.admin.service.ISysCameraService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import javafx.scene.Camera;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author author
@@ -38,71 +44,160 @@ public class SysCameraServiceImpl extends ServiceImpl<SysCameraMapper, SysCamera
     private SysCameraMapper cameraBaseMapper;
     @Autowired
     private SysCameraAreaMapper cameraAreaMapper;
+    @Autowired
+    private SysCameraBrandMapper cameraBrandMapper;
+
     @Override
     public Result listPage(CameraListVo cameraListVo) {
         Integer current = cameraListVo.getCurrent();
         String strchStr = cameraListVo.getStrchStr();
         Integer size = cameraListVo.getSize();
-//        Integer areaId = cameraListVo.getAreaId();
+        Integer areaId = cameraListVo.getAreaId();
+        Integer brandId = cameraListVo.getBrandId();
         Integer sort = cameraListVo.getSort();
         Integer farmId = cameraListVo.getFarmId();
-        Integer onLineStatus = cameraListVo.getOnLineStatus();
-        String regionUuid = cameraListVo.getRegionUuid();
+        Integer isOnline = cameraListVo.getIsOnline();
+
         QueryWrapper<SysCamera> wrapper = new QueryWrapper<>();
-        if (null == current) {
-            current = 1;
-        }
-        if (null == size) {
-            size = 10;
+        if (StringUtils.isNotBlank(strchStr)) {
+            wrapper.and(i -> i.like("camera_name", strchStr)
+                    .or().like("camera_ip", strchStr));
         }
+
         if (farmId != null) {
-            wrapper.eq("cb.farm_id", farmId);
+            wrapper.eq("farm_id", farmId);
         }
-        if (StringUtils.isNotBlank(regionUuid)) {
-            wrapper.eq("cb.region_uuid", regionUuid);
+
+        if (areaId != null) {
+            wrapper.eq("area_id", areaId);
         }
-        if (onLineStatus != null) {
-            wrapper.eq("cb.on_line_status", onLineStatus);
+
+        if (brandId != null) {
+            wrapper.eq("brand_id", brandId);
         }
-        if (StringUtils.isNotBlank(strchStr)) {
-            wrapper.and(i -> i.like("cb.camera_name", strchStr));
+
+        if (isOnline != null) {
+            wrapper.eq("is_online", isOnline);
         }
+
         if (sort == null) {
-            wrapper.orderByDesc("cb.id");
+            wrapper.orderByDesc("id");
         } else if (sort == 1) {
-            wrapper.orderByDesc("cb.sort");
+            wrapper.orderByDesc("sort");
         } else {
-            wrapper.orderByAsc("cb.sort");
+            wrapper.orderByAsc("sort");
         }
-        wrapper.orderByDesc("cb.id");
-        Page<SysCamera> page = new Page<>(current,size);
-        IPage<CameraBaseVo> cameraBaseVoIPage = cameraBaseMapper.listPage(page, wrapper);
-        return new Result(ResultCode.SUCCESS, cameraBaseVoIPage);
+        wrapper.orderByDesc("id");
+        return new Result(ResultCode.SUCCESS, page(new Page<>(current, size), wrapper));
     }
 
     @Override
-    public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
-        String farmId = paramsMap.get("farmId");
-        QueryWrapper<SysCameraArea> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId);
-        List<SysCameraArea> cameraAreas = cameraAreaMapper.selectList(queryWrapper);
+    public List getCameraDetails(CameraListsVo cameraListsVo) {
+        List<Integer> cameraIds = cameraListsVo.getCameraIds();
+        CameraListVo cameraListVo = new CameraListsVo();
+        cameraListVo.setCurrent(1);
+        cameraListVo.setSize(10000);
+        cameraListVo.setStrchStr(cameraListsVo.getStrchStr());
+        cameraListVo.setAreaId(cameraListsVo.getAreaId());
+        cameraListVo.setBrandId(cameraListsVo.getBrandId());
+        cameraListVo.setSort(cameraListsVo.getSort());
 
-        List<CameraNameDto> cameraNameDtoList = new LinkedList();
-        for (SysCameraArea cameraArea : cameraAreas) {
-            CameraNameDto cameraNameDto = new CameraNameDto();
-            QueryWrapper<SysCamera> baseQueryWrapper = new QueryWrapper<>();
-            baseQueryWrapper.eq("farm_id", farmId).eq("area_name", cameraArea.getAreaName());
-            List<SysCamera> cameraBases = cameraBaseMapper.selectList(baseQueryWrapper);
+        if (cameraIds == null || cameraIds.size() == 0) {
+            return null;
+        }
+        List cameraDetailsList = new ArrayList();
+        IPage<SysCamera> page = (IPage<SysCamera>) this.listPage(cameraListVo).getData();
+        List<SysCamera> list = page.getRecords();
+        int i = 0;
+        final String farmAppPort = "8081";
+        final String farmVideoApp = "/appleVideo/play?";
+        final String hlsMediaPort = "85";
+        for (SysCamera camera : list) {
+            for (Integer cameraId : cameraIds) {
+                if (cameraId.equals(camera.getId())) {
 
-            cameraNameDto.setCameraBases(cameraBases);
-            cameraNameDto.setId(cameraArea.getId());
-            cameraNameDto.setAreaName(cameraArea.getAreaName());
+                    String cameraAccount = camera.getAccount();
+                    String cameraPassword = camera.getPassword();
+                    String camerIp = camera.getCameraIp();
+                    String cameraName = camera.getCameraName();
+                    Integer areaId = camera.getAreaId();
+                    String url = cameraAreaMapper.selectById(areaId).getPublicUrl();
+                    String rtsp;
+                    SysCameraBrand cameraBrand = cameraBrandMapper.selectById(camera.getBrandId());
+                    Integer type = cameraBrand.getStreamType();
+                    if (type == 0) {
+                        rtsp = cameraBrand.getMainStream();
+                    } else {
+                        rtsp = cameraBrand.getAssistStream();
+                    }
+                    CameraVo cameraVo = new CameraVo();
+                    cameraVo.setId(camera.getId());
+                    cameraVo.setAreaId(areaId);
 
-            cameraNameDtoList.add(cameraNameDto);
+                    cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp /*+ "/h265/ch1/main/av_stream"*/);
+                    cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
 
+                    cameraVo.setCameraName(cameraName);
+                    cameraVo.setHttpUrl(handleHlsHttpUrl(url, cameraAccount, cameraPassword, camerIp, farmAppPort, farmVideoApp, hlsMediaPort));
+                    if (i > 0) {
+                        cameraVo.setLastId(list.get(i - 1).getId());
+                    }
+                    if (i < list.size() - 1) {
+                        cameraVo.setNextId(list.get(i + 1).getId());
+                    }
+                    cameraDetailsList.add(cameraVo);
+                }
+            }
+            i++;
+        }
+        return cameraDetailsList;
+    }
 
+    //构造HlsHttp地址
+    private String handleHlsHttpUrl(String url, String cameraAccount, String cameraPassword, String camerIp, String farmAppPort, String farmVideoApp, String hlsMediaPort) {
+        url = url.substring(0, url.indexOf(":"));
+        url = "http://" + url;
+        //return url+":"+farmAppPort+farmVideoApp+"url="+cameraAccount + ":" + cameraPassword + "@" + camerIp+"&name="+"&dt=3000&targetUrl="+url+":"+hlsMediaPort;
+        return url + ":" + farmAppPort + farmVideoApp + "url=" + cameraAccount + ":" + cameraPassword + "@" + camerIp + "&dt=3000&targetUrl=" + url + ":" + hlsMediaPort;
+    }
+
+    @Override
+    public Result add(SysCamera camera) {
+        Integer areaId = camera.getAreaId();
+        Integer brandId = camera.getBrandId();
+
+        int brandName = this.count(new QueryWrapper<SysCamera>().eq("camera_name", camera.getCameraName()).eq("farm_id", camera.getFarmId()));
+        if (brandName > 0) {
+            return new Result(10001, "摄像头名称重复", false);
         }
+        if (areaId != null) {
+            camera.setAreaName(cameraAreaMapper.selectById(areaId).getAreaName());
+        }
+        if (brandId != null) {
+            camera.setBrandName(cameraBrandMapper.selectById(brandId).getBrandName());
+        }
+        this.save(camera);
 
-        return new Result(ResultCode.SUCCESS, cameraNameDtoList);
+        return new Result(10000, "添加成功", true);
     }
+
+    @Override
+    public Result updates(SysCamera camera) {
+        Integer areaId = camera.getAreaId();
+        Integer brandId = camera.getBrandId();
+        this.updateById(camera);
+        int brandName = this.count(new QueryWrapper<SysCamera>().eq("camera_name", camera.getCameraName()));
+        if (brandName > 1) {
+            return new Result(10001, "摄像头名称重复", false);
+        }
+        if (areaId != null) {
+            camera.setAreaName(cameraAreaMapper.selectById(areaId).getAreaName());
+        }
+        if (brandId != null) {
+            camera.setBrandName(cameraBrandMapper.selectById(brandId).getBrandName());
+        }
+        this.updateById(camera);
+        return new Result(10000, "修改成功", true);
+    }
+
 }