Przeglądaj źródła

Merge branch 'master' of http://git.jihengcc.cn/Liuxincheng/eaglescreen into master

Levi.u 4 lat temu
rodzic
commit
dace55848d

+ 8 - 1
src/main/java/com/ebei/screen/controller/video/VideoMonitorController.java

@@ -5,6 +5,7 @@ import com.ebei.screen.common.response.ResponseBean;
 import com.ebei.screen.modules.po.CameraDevice;
 import com.ebei.screen.modules.po.MachineRoom;
 import com.ebei.screen.modules.po.Project;
+import com.ebei.screen.modules.po.VideoScreenListVo;
 import com.ebei.screen.service.CameraDeviceService;
 import com.ebei.screen.service.MachineRoomService;
 import com.ebei.screen.service.ProjectService;
@@ -102,7 +103,7 @@ public class VideoMonitorController {
         return ResponseBean.success();
     }
 
-    @ApiOperation("根据项目分页查询机房(视频大屏首页使用)")
+    @ApiOperation("根据项目分页查询机房")
     @PostMapping("/queryMachineRoom/{page}/{pageSize}")
     public ResponseBean queryMachineRoom(@PathVariable("page") @NotNull(message = "URL参数:当前页的页码不能为空") Integer page,
                                          @PathVariable("pageSize") @NotNull(message = "URL参数:当前页的页数不能为空") Integer pageSize,
@@ -110,6 +111,12 @@ public class VideoMonitorController {
         return machineRoomService.queryMachineRoom(page - 1, pageSize, machineRoom.getName(), machineRoom.getProjectId());
     }
 
+    @ApiOperation("视频大屏首页列表接口(项目下包括机房)")
+    @PostMapping("/videoScreenList")
+    public ResponseBean<VideoScreenListVo> videoScreenList() {
+        return machineRoomService.videoScreenList();
+    }
+
     @ApiOperation("获取萤石token")
     @GetMapping("/getYsToken")
     public ResponseBean getYsToken() {

+ 3 - 0
src/main/java/com/ebei/screen/modules/po/CameraDevice.java

@@ -34,4 +34,7 @@ public class CameraDevice extends BaseEntity {
     private Integer status;
     @ApiModelProperty("直播地址")
     private String url;
+    @ApiModelProperty("机房名")
+    private String machineRoomName;
+
 }

+ 2 - 0
src/main/java/com/ebei/screen/modules/po/MachineRoom.java

@@ -28,6 +28,8 @@ public class MachineRoom extends BaseEntity {
 
     @ApiModelProperty("机房名")
     private String name;
+    @ApiModelProperty("监控设备验证码")
+    private String verCode;
     @ApiModelProperty("项目id")
     private String projectId;
     @ApiModelProperty("项目名")

+ 4 - 0
src/main/java/com/ebei/screen/modules/po/Project.java

@@ -7,6 +7,7 @@ import lombok.experimental.Accessors;
 import org.springframework.data.mongodb.core.mapping.Document;
 
 import javax.validation.constraints.NotEmpty;
+import java.util.List;
 
 /**
  * @version v1.0
@@ -30,4 +31,7 @@ public class Project extends BaseEntity {
     @ApiModelProperty(value = "项目名")
     private String name;
 
+    @ApiModelProperty(value = "监控设备list")
+    private List<CameraDevice> cameraList;
+
 }

+ 33 - 0
src/main/java/com/ebei/screen/modules/po/VideoScreenListVo.java

@@ -0,0 +1,33 @@
+package com.ebei.screen.modules.po;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+/**
+ * @version v1.0
+ * @ProjectName: screen
+ * @ClassName: MachineRoom
+ * @Description:
+ * @Author: ch
+ * @Date: 2021-01-19 13:57
+ */
+@Data
+@Document
+@NoArgsConstructor
+@ToString(callSuper = true)
+@Accessors(chain = true)
+@ApiModel(value = "VideoScreenListVo", description = "视频大屏首页使用")
+@AllArgsConstructor
+public class VideoScreenListVo {
+
+    @ApiModelProperty("萤石项目list")
+    private List<Project> ysList;
+    @ApiModelProperty("广联达项目list")
+    private List<Project> gldList;
+
+}

+ 3 - 0
src/main/java/com/ebei/screen/service/MachineRoomService.java

@@ -37,4 +37,7 @@ public interface MachineRoomService {
      * @return
      */
     ResponseBean queryMachineRoom(int page, Integer pageSize, String name, String projectId);
+
+    ResponseBean videoScreenList();
+
 }

+ 1 - 1
src/main/java/com/ebei/screen/service/impl/CameraDeviceServiceImpl.java

@@ -46,7 +46,7 @@ public class CameraDeviceServiceImpl implements CameraDeviceService {
     private static Long _id = 1L;
     private static String appKey = "d63cdf8387254760a0c75adeb97a4ce9";
     private static String appSecret = "3c2e436abfbb6a4f5da9ba05f76a5605";
-    private static String code = "Jn5201314";
+    private static String code = "888888";
     private static String ysGetTokenUrl = "https://open.ys7.com/api/lapp/token/get";
     private static String ysGetDeviceWithPage = "https://open.ys7.com/api/lapp/device/list";
     private static String ysGetLiveAddress = "https://open.ys7.com/api/lapp/v2/live/address/get";

+ 97 - 0
src/main/java/com/ebei/screen/service/impl/MachineRoomServiceImpl.java

@@ -2,7 +2,11 @@ package com.ebei.screen.service.impl;
 
 import com.ebei.screen.common.response.ResponseBean;
 import com.ebei.screen.common.util.CommonUtil;
+import com.ebei.screen.modules.po.CameraDevice;
 import com.ebei.screen.modules.po.MachineRoom;
+import com.ebei.screen.modules.po.Project;
+import com.ebei.screen.modules.po.VideoScreenListVo;
+import com.ebei.screen.service.EbaSystemService;
 import com.ebei.screen.service.MachineRoomService;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -15,8 +19,12 @@ import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * @version v1.0
@@ -33,6 +41,8 @@ public class MachineRoomServiceImpl implements MachineRoomService {
 
     @Autowired
     private MongoTemplate mongoTemplate;
+    @Autowired
+    private EbaSystemService ebaSystemService;
 
     @Override
     public void saveMachineRoom(MachineRoom machineRoom) {
@@ -41,6 +51,15 @@ public class MachineRoomServiceImpl implements MachineRoomService {
         machineRoom.setCreateTime(now);
         machineRoom.setType(machineRoom.getType());
         machineRoom.setIsDelete(0);
+        if (machineRoom.getType().equals(1) && CommonUtil.isNotEmpty(machineRoom.getCameraDeviceList()) && CommonUtil.isNotEmpty(machineRoom.getVerCode())) {
+            //监控设备拼接上验证码
+            machineRoom.getCameraDeviceList().forEach(i -> {
+                if (i.getUrl().contains("888888")) {
+                    String url = i.getUrl().replace("888888", machineRoom.getVerCode());
+                    i.setUrl(url);
+                }
+            });
+        }
         mongoTemplate.insert(machineRoom);
     }
 
@@ -54,8 +73,18 @@ public class MachineRoomServiceImpl implements MachineRoomService {
         update.set("projectId", machineRoom.getProjectId());
         update.set("projectName", machineRoom.getProjectName());
         update.set("type", machineRoom.getType());
+        if (machineRoom.getType().equals(1) && CommonUtil.isNotEmpty(machineRoom.getCameraDeviceList()) && CommonUtil.isNotEmpty(machineRoom.getVerCode())) {
+            //监控设备拼接上验证码
+            machineRoom.getCameraDeviceList().forEach(i -> {
+                if (i.getUrl().contains("888888")) {
+                    String url = i.getUrl().replace("888888", machineRoom.getVerCode());
+                    i.setUrl(url);
+                }
+            });
+        }
         update.set("cameraDeviceList", machineRoom.getCameraDeviceList());
         update.set("updateTime", now);
+        update.set("verCode", machineRoom.getVerCode());
         update.set("isDelete", machineRoom.getIsDelete());
         mongoTemplate.updateFirst(query, update, MachineRoom.class);
     }
@@ -83,4 +112,72 @@ public class MachineRoomServiceImpl implements MachineRoomService {
         Page<MachineRoom> pageResult = new PageImpl<>(result, pageable, total);
         return ResponseBean.success(pageResult);
     }
+
+    @Override
+    public ResponseBean videoScreenList() {
+        //查询所有项目
+        ResponseBean crmProjectList = ebaSystemService.getCrmProjectList();
+        List<Map> projects = (List<Map>) crmProjectList.getData();
+        if (CommonUtil.isEmpty(projects)) {
+            return ResponseBean.success();
+        }
+        List<Project> ysProject = new ArrayList<>();
+        List<Project> gldProject = new ArrayList<>();
+        //查询项目下关联的机房、摄像头
+        projects.forEach(i -> {
+            //查询项目下是否关联机房、机房下是否关联摄像头
+            Query query = new Query();
+            String projectId = String.valueOf(i.get("projectId"));
+            String projectName = String.valueOf(i.get("projectName"));
+            query.addCriteria(Criteria.where("projectId").is(projectId));
+            query.addCriteria(Criteria.where("isDelete").is(0));
+            List<MachineRoom> machineRooms = mongoTemplate.find(query, MachineRoom.class);
+            if (CommonUtil.isNotEmpty(machineRooms)) {
+                machineRooms.forEach(machineRoom -> {
+                    List<CameraDevice> cameraList = machineRoom.getCameraDeviceList();
+                    CameraDevice cameraDevice = cameraList.get(0);
+                    cameraDevice.setMachineRoomName(machineRoom.getName());
+                    if (machineRoom.getType().equals(1)) {
+                        //萤石设备
+                        List<Project> exist = ysProject.stream().filter(x -> x.getId().equals(projectId)).collect(Collectors.toList());
+                        if(CommonUtil.isEmpty(exist)) {
+                            //不存在项目
+                            Project project = new Project();
+                            project.setId(projectId);
+                            project.setName(projectName);
+                            ArrayList<CameraDevice> ysCameraDeviceList = new ArrayList<>();
+                            ysCameraDeviceList.add(cameraDevice);
+                            project.setCameraList(ysCameraDeviceList);
+                            ysProject.add(project);
+                        } else {
+                            //存在
+                            Project project = exist.get(0);
+                            project.getCameraList().add(cameraDevice);
+                        }
+                    } else {
+                        //广联达设备
+                        List<Project> exist = gldProject.stream().filter(x -> x.getId().equals(projectId)).collect(Collectors.toList());
+                        if(CommonUtil.isEmpty(exist)) {
+                            //不存在项目
+                            Project project = new Project();
+                            project.setId(projectId);
+                            project.setName(projectName);
+                            ArrayList<CameraDevice> ysCameraDeviceList = new ArrayList<>();
+                            ysCameraDeviceList.add(cameraDevice);
+                            project.setCameraList(ysCameraDeviceList);
+                            gldProject.add(project);
+                        } else {
+                            //存在
+                            Project project = exist.get(0);
+                            project.getCameraList().add(cameraDevice);
+                        }
+                    }
+                });
+            }
+        });
+        VideoScreenListVo result = new VideoScreenListVo();
+        result.setGldList(gldProject);
+        result.setYsList(ysProject);
+        return ResponseBean.success(result);
+    }
 }