소스 검색

第三方接口开发

gao.qiang 2 년 전
부모
커밋
d406b9500d

+ 22 - 0
business-service/src/main/java/com/ozs/entity/vo/CameraPlayVo.java

@@ -0,0 +1,22 @@
+package com.ozs.entity.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author Administrator
+ */
+@Data
+public class CameraPlayVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 车载终端编码
+     */
+    private String terminalCode;
+    /**
+     * 相机编码
+     */
+    private String cameraCode;
+}

+ 16 - 0
business-service/src/main/java/com/ozs/entity/vo/QueryAlarmVo.java

@@ -0,0 +1,16 @@
+package com.ozs.entity.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author Administrator
+ */
+@Data
+public class QueryAlarmVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private RespAlarmList[] alarmList;
+}

+ 18 - 0
business-service/src/main/java/com/ozs/entity/vo/RespAlarmList.java

@@ -0,0 +1,18 @@
+package com.ozs.entity.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author Administrator
+ */
+@Data
+public class RespAlarmList implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 报警信息
+     */
+    private AlarmInfoVo alarmInfo;
+}

+ 3 - 0
business-service/src/main/java/com/ozs/entity/vo/TerminalIgnoreVo.java

@@ -4,6 +4,9 @@ import lombok.Data;
 
 import java.io.Serializable;
 
+/**
+ * @author Administrator
+ */
 @Data
 public class TerminalIgnoreVo implements Serializable {
     private static final long serialVersionUID = 1L;

+ 156 - 13
vehicle-admin/src/main/java/com/ozs/web/controller/sdk/GeoHazardMonitorTokenController.java

@@ -28,11 +28,14 @@ import com.ozs.entity.VehiclePosition;
 import com.ozs.entity.vo.AlarmFilesVo;
 import com.ozs.entity.vo.AlarmInfoVo;
 import com.ozs.entity.vo.AlarmListVo;
+import com.ozs.entity.vo.CameraPlayVo;
 import com.ozs.entity.vo.CameraVo;
 import com.ozs.entity.vo.Files;
 import com.ozs.entity.vo.HeartbeatVo;
+import com.ozs.entity.vo.QueryAlarmVo;
 import com.ozs.entity.vo.ReleaseAlarmVo;
 import com.ozs.entity.vo.ReqMsgAlarmVo;
+import com.ozs.entity.vo.RespAlarmList;
 import com.ozs.entity.vo.RespCameraVo;
 import com.ozs.entity.vo.RespGeoHazardMonitorVo;
 import com.ozs.entity.vo.RespHeartbeatVo;
@@ -401,6 +404,7 @@ public class GeoHazardMonitorTokenController {
                     camera.eq(BaseCameraManagement::getLineDir, heartbeatVo.getLineDir());
                     camera.orderByAsc(BaseCameraManagement::getInstallMile);
                     List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
+                    List<AlarmListVo> listVos = new ArrayList<>();
                     if (baseCameraManagementList.size() > 0) {
                         //获取视频点播地址
                         String playFlv = CameraUtil.getPlayFlv(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel(), false);
@@ -441,11 +445,11 @@ public class GeoHazardMonitorTokenController {
                         if (i == 0) {
                             wrapper.last("limit 1,1000000");
                         }
+                        //获取所有报警安装里程位置的相机
                         List<BaseCameraManagement> baseList = baseCameraManagementService.list(camera);
                         if (baseList.size() > 0) {
                             for (int o = 0; o < baseList.size(); o++) {
                                 String flv = CameraUtil.getPlayFlv(baseList.get(o).getCameraCode(), baseList.get(o).getChannel(), false);
-                                List<AlarmListVo> listVos = new ArrayList<>();
                                 AlarmListVo alarmListVo = new AlarmListVo();
                                 //alarmList对象
                                 alarmListVo.setCameraStream(flv);
@@ -458,18 +462,18 @@ public class GeoHazardMonitorTokenController {
                                 alarmInfoVo1.setAlarmTime(list.get(i).getAlarmTime().getTime());
                                 alarmInfoVo1.setAlarmType(list.get(i).getAlarmType());
                                 alarmInfoVo1.setAlarmLevel(list.get(i).getAlarmLevel());
-                                AlarmFilesVo[] vo = new AlarmFilesVo[1];
                                 LambdaQueryWrapper<MsgAlarmExt> alarm = new LambdaQueryWrapper<>();
                                 alarm.eq(MsgAlarmExt::getAlarmId, list.get(0).getAlarmId());
-                                MsgAlarmExt msgAlarmExt = msgAlarmExtService.getOne(alarm);
-                                vo[0] = new AlarmFilesVo();
-                                vo[0].setAlarmAttType(msgAlarmExt.getAlarmAttType());
-                                vo[0].setAlarmAttPath(msgAlarmExt.getAlarmAttPath());
-                                //返回结果
+                                List<MsgAlarmExt> list1 = msgAlarmExtService.list(alarm);
+                                AlarmFilesVo[] vo = new AlarmFilesVo[list1.size()];
+                                for (int i1 = 0; i1 < list1.size(); i1++) {
+                                    vo[i1] = new AlarmFilesVo();
+                                    vo[i1].setAlarmAttType(list1.get(i1).getAlarmAttType());
+                                    vo[i1].setAlarmAttPath(list1.get(i1).getAlarmAttPath());
+                                }
                                 alarmInfoVo1.setAlarmFiles(vo);
+                                alarmListVo.setAlarmInfo(alarmInfoVo1);
                                 listVos.add(alarmListVo);
-                                AlarmListVo[] array = listVos.toArray(new AlarmListVo[]{});
-                                respHeartbeatVo.setAlarmList(array);
                             }
                         } else {
                             jsonObject.put("resultCode", 0);
@@ -478,6 +482,8 @@ public class GeoHazardMonitorTokenController {
                             return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
                         }
                     }
+                    AlarmListVo[] array = listVos.toArray(new AlarmListVo[]{});
+                    respHeartbeatVo.setAlarmList(array);
                 } else {
                     //没有报警信息的时候
                     distance = heartbeatVo.getVisualDistance() + heartbeatVo.getCurrentMile();
@@ -629,19 +635,156 @@ public class GeoHazardMonitorTokenController {
                     }
                 }
             });
-            List<RespCameraVo> cameraVos=new ArrayList<>();
+            List<RespCameraVo> cameraVos = new ArrayList<>();
             for (BaseCameraManagement baseCameraManagement : list) {
-                RespCameraVo respCameraVo=new RespCameraVo();
+                RespCameraVo respCameraVo = new RespCameraVo();
                 BeanUtils.copyProperties(baseCameraManagement, respCameraVo);
                 respCameraVo.setRailwayCame(baseCameraManagement.getRailwayName());
                 cameraVos.add(respCameraVo);
             }
-            
+
             jsonObject.put("resultCode", 1);
             jsonObject.put("message", "ok");
             jsonObject.put("data", cameraVos);
             return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
-        }else {
+        } else {
+            jsonObject.put("resultCode", 2);
+            jsonObject.put("message", "失败");
+            jsonObject.put("data", "token验证失败");
+            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+        }
+    }
+
+    /**
+     * 点播功能接口定义(直播流)
+     *
+     * @param parameter
+     * @param request
+     * @return
+     */
+    @PostMapping("/api/camera/play")
+    public String cameraPlay(@RequestParam("parameter") String parameter, HttpServletRequest request) {
+        Map<String, Object> map = new HashMap<>();
+        String token = apiTokenUtils.getGeoHazardMonitorToken(request);
+        log.info("token:{}", token);
+        log.info("parameter:{}", parameter);
+        JSONObject jsonObject = new JSONObject();
+        if (StringUtils.isNotEmpty(token)) {
+            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            CameraPlayVo cameraPlayVo = JSON.parseObject(s, CameraPlayVo.class);
+
+            LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
+            lw.eq(BaseCameraManagement::getCameraCode, cameraPlayVo.getCameraCode());
+            BaseCameraManagement one = baseCameraManagementService.getOne(lw);
+            if (ObjectUtils.isEmpty(one)) {
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "没有该相机编码的相机");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            String flv = CameraUtil.getPlayFlv(one.getCameraCode(), one.getChannel());
+            map.put("url", flv);
+            jsonObject.put("resultCode", 1);
+            jsonObject.put("message", "ok");
+            jsonObject.put("data", map);
+            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+        } else {
+            jsonObject.put("resultCode", 2);
+            jsonObject.put("message", "失败");
+            jsonObject.put("data", "token验证失败");
+            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+        }
+    }
+
+
+    /**
+     * 获取报警列表(已解除和未解除)
+     *
+     * @param parameter
+     * @param request
+     * @return
+     */
+    @PostMapping("/api/query/alarm")
+    public String queryAlarm(@RequestParam("parameter") String parameter, HttpServletRequest request) {
+        String token = apiTokenUtils.getGeoHazardMonitorToken(request);
+        log.info("token:{}", token);
+        log.info("parameter:{}", parameter);
+        JSONObject jsonObject = new JSONObject();
+        if (StringUtils.isNotEmpty(token)) {
+            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            CameraVo cameraVo = JSON.parseObject(s, CameraVo.class);
+            LambdaQueryWrapper<MsgAlarm> wrapper = new LambdaQueryWrapper<>();
+            if (!ObjectUtils.isEmpty(cameraVo.getRailwayCode())) {
+                wrapper.eq(MsgAlarm::getRailwayCode, cameraVo.getRailwayCode());
+            }
+            if (!ObjectUtils.isEmpty(cameraVo.getLineDir())) {
+                wrapper.eq(MsgAlarm::getLineDir, cameraVo.getLineDir());
+            }
+            List<MsgAlarm> list = msgAlarmService.list(wrapper);
+            QueryAlarmVo queryAlarmVo = new QueryAlarmVo();
+            List<RespAlarmList> listVos = new ArrayList<>();
+            for (MsgAlarm msgAlarm : list) {
+                RespAlarmList alarmListVo = new RespAlarmList();
+                AlarmInfoVo alarmInfoVo1 = new AlarmInfoVo();
+                alarmInfoVo1.setAlarmId(msgAlarm.getAlarmId());
+                alarmInfoVo1.setAlarmMile(msgAlarm.getAlarmMile());
+                alarmInfoVo1.setAlarmTime(msgAlarm.getAlarmTime().getTime());
+                alarmInfoVo1.setAlarmType(msgAlarm.getAlarmType());
+                alarmInfoVo1.setAlarmLevel(msgAlarm.getAlarmLevel());
+                LambdaQueryWrapper<MsgAlarmExt> alarm = new LambdaQueryWrapper<>();
+                alarm.eq(MsgAlarmExt::getAlarmId, msgAlarm.getAlarmId());
+                List<MsgAlarmExt> list1 = msgAlarmExtService.list(alarm);
+                AlarmFilesVo[] vo = new AlarmFilesVo[list1.size()];
+                for (int i1 = 0; i1 < list1.size(); i1++) {
+                    vo[i1] = new AlarmFilesVo();
+                    vo[i1].setAlarmAttType(list1.get(i1).getAlarmAttType());
+                    vo[i1].setAlarmAttPath(list1.get(i1).getAlarmAttPath());
+                }
+                //返回结果
+                alarmInfoVo1.setAlarmFiles(vo);
+                alarmListVo.setAlarmInfo(alarmInfoVo1);
+                listVos.add(alarmListVo);
+            }
+            RespAlarmList[] array = listVos.toArray(new RespAlarmList[]{});
+            queryAlarmVo.setAlarmList(array);
+            jsonObject.put("resultCode", 1);
+            jsonObject.put("message", "ok");
+            jsonObject.put("data", queryAlarmVo);
+            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+        } else {
+            jsonObject.put("resultCode", 2);
+            jsonObject.put("message", "失败");
+            jsonObject.put("data", "token验证失败");
+            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+        }
+    }
+
+    @PostMapping("/api/alarm/play")
+    public String alarmPlay(@RequestParam("parameter") String parameter, HttpServletRequest request) {
+        Map<String,Object> map=new HashMap<>();
+        String token = apiTokenUtils.getGeoHazardMonitorToken(request);
+        log.info("token:{}", token);
+        log.info("parameter:{}", parameter);
+        JSONObject jsonObject = new JSONObject();
+        if (StringUtils.isNotEmpty(token)) {
+            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            TerminalIgnoreVo terminalIgnoreVo = JSON.parseObject(s, TerminalIgnoreVo.class);
+            LambdaQueryWrapper<MsgAlarm> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(MsgAlarm::getAlarmId, terminalIgnoreVo.getAlarmId());
+            MsgAlarm one = msgAlarmService.getOne(wrapper);
+            if (ObjectUtils.isEmpty(one)){
+                jsonObject.put("resultCode", 0);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "没有该报警唯一UUID的报警数据");
+                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            }
+            //todo 报警视频未写
+            map.put("url","");
+            jsonObject.put("resultCode", 1);
+            jsonObject.put("message", "ok");
+            jsonObject.put("data", map);
+            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+        } else {
             jsonObject.put("resultCode", 2);
             jsonObject.put("message", "失败");
             jsonObject.put("data", "token验证失败");