Browse Source

v4.3.0代码同步

dengsixing 2 năm trước cách đây
mục cha
commit
e7f1046519

+ 5 - 0
src/main/java/com/fdkankan/scene/bean/SceneJsonBean.java

@@ -193,5 +193,10 @@ public class SceneJsonBean {
      */
     private Integer filters;
 
+    /**
+     * 是否有监控摄像头数据
+     */
+    private Integer surveillances;
+
 
 }

+ 35 - 4
src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -3,17 +3,18 @@ package com.fdkankan.scene.controller;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.SceneInfoReqType;
 import com.fdkankan.common.exception.BusinessException;
-import com.fdkankan.scene.service.IDownloadTourVideoService;
-import com.fdkankan.web.response.ResultData;
 import com.fdkankan.scene.annotation.CheckPermit;
+import com.fdkankan.scene.service.IDownloadTourVideoService;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.ISceneEditService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneUploadService;
+import com.fdkankan.scene.service.ISurveillanceService;
 import com.fdkankan.scene.vo.BallScreenVideoParamVO;
 import com.fdkankan.scene.vo.BaseDataParamVO;
 import com.fdkankan.scene.vo.BaseFileParamVO;
 import com.fdkankan.scene.vo.BaseSceneParamVO;
+import com.fdkankan.scene.vo.BaseSidParamVO;
 import com.fdkankan.scene.vo.DeleteFileParamVO;
 import com.fdkankan.scene.vo.DeleteHotIconParamVO;
 import com.fdkankan.scene.vo.DeleteHotParamVO;
@@ -34,8 +35,10 @@ import com.fdkankan.scene.vo.SceneEditInfoParamVO;
 import com.fdkankan.scene.vo.SceneEditInfoVO;
 import com.fdkankan.scene.vo.SceneInfoParamVO;
 import com.fdkankan.scene.vo.SceneInfoVO;
+import com.fdkankan.scene.vo.SurveillanceParamVO;
 import com.fdkankan.scene.vo.UploadContentParamVO;
 import com.fdkankan.web.controller.BaseController;
+import com.fdkankan.web.response.ResultData;
 import java.io.IOException;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -71,6 +74,8 @@ public class SceneEditController extends BaseController {
     private ISceneEditService sceneEditService;
     @Autowired
     private IDownloadTourVideoService downloadTourVideoService;
+    @Autowired
+    private ISurveillanceService surveillanceService;
 
 
     /**
@@ -652,8 +657,7 @@ public class SceneEditController extends BaseController {
 
     @PostMapping(value = "/tour/video/upload")
     public ResultData uploadTourVideo(@RequestParam("num") String num, @RequestParam("file") MultipartFile file) throws Exception {
-        downloadTourVideoService.uploadTourVideo(num, file);
-        return null;
+        return downloadTourVideoService.uploadTourVideo(num, file);
     }
 
     @PostMapping(value = "/tour/video/download")
@@ -760,4 +764,31 @@ public class SceneEditController extends BaseController {
         return sceneEditInfoService.listFilter(param);
     }
 
+    /**
+     * <p>
+     添加监控
+     * </p>
+     * @author dengsixing
+     * @date 2022/9/20
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckPermit
+    @PostMapping("/surveillance/save")
+    ResultData saveSurveillance(@RequestBody @Validated SurveillanceParamVO param){
+        return surveillanceService.saveSurveillance(param);
+    }
+
+    @CheckPermit
+    @PostMapping("/surveillance/delete")
+    public ResultData deleteSurveillance(@RequestBody @Validated BaseSidParamVO param){
+        return surveillanceService.deleteSurveillance(param);
+    }
+
+    @CheckPermit
+    @PostMapping("/surveillance/list")
+    public ResultData listSurveillance(@RequestBody @Validated BaseSceneParamVO param){
+        return ResultData.ok(surveillanceService.listSurveillance(param.getNum()));
+    }
+
 }

+ 6 - 0
src/main/java/com/fdkankan/scene/entity/SceneEditInfoExt.java

@@ -79,6 +79,12 @@ public class SceneEditInfoExt {
     private Integer filters;
 
     /**
+     * 是否有监控摄像头(0-否,1-是)
+     */
+    @TableField("surveillances")
+    private Integer surveillances;
+
+    /**
      * 创建时间
      */
     @TableField("create_time")

+ 84 - 0
src/main/java/com/fdkankan/scene/entity/Surveillance.java

@@ -0,0 +1,84 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 监控推拉流信息
+ * </p>
+ *
+ * @author 
+ * @since 2022-09-16
+ */
+@Getter
+@Setter
+@TableName("t_surveillance")
+public class Surveillance implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 监控名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 监控唯一标识
+     */
+    @TableField("sid")
+    private String sid;
+
+    /**
+     * panoId
+     */
+    @TableField("pano_id")
+    private String panoId;
+
+    /**
+     * 摄像头设置信息
+     */
+    @TableField("data")
+    private String data;
+
+    /**
+     * 播放地址
+     */
+    @TableField("play_url")
+    private String playUrl;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A", delval = "I")
+    private String recStatus;
+
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ISurveillanceMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.scene.entity.Surveillance;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 监控推拉流信息 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-09-16
+ */
+@Mapper
+public interface ISurveillanceMapper extends BaseMapper<Surveillance> {
+
+}

+ 5 - 2
src/main/java/com/fdkankan/scene/service/ISceneEditInfoService.java

@@ -2,7 +2,9 @@ package com.fdkankan.scene.service;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.scene.annotation.CheckPermit;
 import com.fdkankan.scene.vo.BaseSceneParamVO;
+import com.fdkankan.scene.vo.SurveillanceParamVO;
 import com.fdkankan.web.response.ResultData;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.vo.BallScreenVideoParamVO;
@@ -24,6 +26,9 @@ import com.fdkankan.scene.vo.SceneInfoParamVO;
 import com.fdkankan.scene.vo.SceneInfoVO;
 import java.io.IOException;
 import java.util.List;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
 /**
@@ -108,6 +113,4 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
     ResultData listFilter(BaseSceneParamVO param) throws Exception;
 
-
-
 }

+ 29 - 0
src/main/java/com/fdkankan/scene/service/ISurveillanceService.java

@@ -0,0 +1,29 @@
+package com.fdkankan.scene.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.scene.entity.Surveillance;
+import com.fdkankan.scene.vo.BaseSidParamVO;
+import com.fdkankan.scene.vo.SurveillanceParamVO;
+import com.fdkankan.scene.vo.SurveillanceVO;
+import com.fdkankan.web.response.ResultData;
+import java.util.List;
+
+/**
+ * <p>
+ * 监控推拉流信息 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-09-16
+ */
+public interface ISurveillanceService extends IService<Surveillance> {
+
+    ResultData saveSurveillance(SurveillanceParamVO param);
+
+    ResultData deleteSurveillance(BaseSidParamVO param);
+
+    List<SurveillanceVO> listSurveillance(String num);
+
+    Surveillance getBySid(String sid);
+
+}

+ 107 - 0
src/main/java/com/fdkankan/scene/service/impl/SurveillanceServiceImpl.java

@@ -0,0 +1,107 @@
+package com.fdkankan.scene.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.CommonStatus;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.scene.entity.SceneEditInfoExt;
+import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.entity.Surveillance;
+import com.fdkankan.scene.mapper.ISurveillanceMapper;
+import com.fdkankan.scene.service.ISceneEditInfoExtService;
+import com.fdkankan.scene.service.IScenePlusService;
+import com.fdkankan.scene.service.ISurveillanceService;
+import com.fdkankan.scene.vo.BaseSidParamVO;
+import com.fdkankan.scene.vo.SurveillanceParamVO;
+import com.fdkankan.scene.vo.SurveillanceVO;
+import com.fdkankan.web.response.ResultData;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 监控推拉流信息 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-09-16
+ */
+@Service
+public class SurveillanceServiceImpl extends ServiceImpl<ISurveillanceMapper, Surveillance> implements ISurveillanceService {
+
+    @Autowired
+    private IScenePlusService scenePlusService;
+    @Autowired
+    private ISceneEditInfoExtService sceneEditInfoExtService;
+
+    @Override
+    public ResultData saveSurveillance(SurveillanceParamVO param) {
+
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if(Objects.isNull(scenePlus)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+        SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByScenePlusId(scenePlus.getId());
+
+        Surveillance surveillance = this.getBySid(param.getSid());
+        if(Objects.isNull(surveillance)){
+            surveillance = new Surveillance();
+        }
+        surveillance.setSid(param.getSid());
+        surveillance.setPanoId(param.getPanoId());
+        surveillance.setNum(param.getNum());
+        surveillance.setName(param.getName());
+        surveillance.setData(param.getData().toJSONString());
+        surveillance.setPlayUrl(param.getPlayUrl());
+        this.saveOrUpdate(surveillance);
+
+        sceneEditInfoExt.setSurveillances(CommonStatus.YES.code().intValue());
+        sceneEditInfoExtService.updateById(sceneEditInfoExt);
+
+        return ResultData.ok();
+    }
+
+    @Override
+    public ResultData deleteSurveillance(BaseSidParamVO param) {
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if(Objects.isNull(scenePlus)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+        SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByScenePlusId(scenePlus.getId());
+
+        this.remove(new LambdaQueryWrapper<Surveillance>().eq(Surveillance::getSid, param.getSid()));
+
+        long count = this.count(new LambdaQueryWrapper<Surveillance>().eq(Surveillance::getNum, param.getNum()));
+        if(count < 1){
+            sceneEditInfoExt.setSurveillances(CommonStatus.NO.code().intValue());
+        }
+        sceneEditInfoExtService.updateById(sceneEditInfoExt);
+        return ResultData.ok();
+    }
+
+    @Override
+    public List<SurveillanceVO> listSurveillance(String num) {
+        List<Surveillance> list = this.list(new LambdaQueryWrapper<Surveillance>().eq(Surveillance::getNum, num).orderByDesc(Surveillance::getId));
+        if(Objects.isNull(list)){
+            return null;
+        }
+        List<SurveillanceVO> voList = list.stream().map(item -> {
+            SurveillanceVO vo = BeanUtil.copyProperties(item, SurveillanceVO.class, "data");
+            vo.setData(JSON.parseObject(item.getData()));
+            return vo;
+        }).collect(Collectors.toList());
+        return voList;
+    }
+
+    @Override
+    public Surveillance getBySid(String sid) {
+        return this.getOne(new LambdaQueryWrapper<Surveillance>().eq(Surveillance::getSid, sid));
+    }
+
+}

+ 20 - 0
src/main/java/com/fdkankan/scene/vo/BaseSidParamVO.java

@@ -0,0 +1,20 @@
+package com.fdkankan.scene.vo;
+
+import javax.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * <p>
+ * 通用sid类型参数类
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/2/10
+ **/
+@Data
+public class BaseSidParamVO extends BaseSceneParamVO{
+
+    @NotBlank(message = "sid不能为空")
+    private String sid;
+
+}

+ 4 - 1
src/main/java/com/fdkankan/scene/vo/SceneInfoVO.java

@@ -207,7 +207,10 @@ public class SceneInfoVO {
      */
     private Integer filters;
 
-
+    /**
+     * 是否有监控摄像头数据
+     */
+    private Integer surveillances;
 
 
 }

+ 45 - 0
src/main/java/com/fdkankan/scene/vo/SurveillanceParamVO.java

@@ -0,0 +1,45 @@
+package com.fdkankan.scene.vo;
+
+import com.alibaba.fastjson.JSONObject;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import lombok.Data;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/9/16
+ **/
+@Data
+public class SurveillanceParamVO {
+
+    @NotBlank(message = "场景码不能为空")
+    private String num;
+
+    @NotEmpty(message = "数据不能为空")
+    private JSONObject data;
+
+    @NotBlank(message = "name不能为空")
+    private String name;
+
+    @NotBlank(message = "playUrl不能为空")
+    private String playUrl;
+
+    @NotBlank(message = "panoId不能为空")
+    private String panoId;
+
+    @NotBlank(message = "sid不能为空")
+    private String sid;
+
+    private String type;
+
+    private String deviceId;
+
+    private String channelId;
+
+    private String rtspUrl;
+
+}

+ 41 - 0
src/main/java/com/fdkankan/scene/vo/SurveillanceVO.java

@@ -0,0 +1,41 @@
+package com.fdkankan.scene.vo;
+
+import com.alibaba.fastjson.JSONObject;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * <p>
+ * 监控推拉流信息
+ * </p>
+ *
+ * @author 
+ * @since 2022-09-16
+ */
+@Data
+public class SurveillanceVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    /**
+     * 监控名称
+     */
+    private String name;
+
+    /**
+     * 摄像头设置信息
+     */
+    private JSONObject data;
+
+    /**
+     * 播放地址
+     */
+    private String playUrl;
+
+    private String sid;
+
+    private String panoId;
+
+}

+ 5 - 0
src/main/resources/mapper/scene/SurveillanceMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.scene.mapper.ISurveillanceMapper">
+
+</mapper>