From d9945dca4197d615cdeaff24a521c9c8ca6059f9 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Tue, 28 Sep 2021 09:51:38 +0800
Subject: [PATCH] 语音对讲完善

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/util/GetCameraPreviewURL.java              |   21 ++++++++--
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/constant/HkConstant.java                   |    2 +
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java                |    9 ++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/constant/ProtocolConstant.java             |    2 +
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java |   45 ++++++++++++++++++++++
 5 files changed, 72 insertions(+), 7 deletions(-)

diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java
index 7e6eefc..ee036e6 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java
@@ -612,13 +612,56 @@
 			String code2 = data2.get("indexCode").toString();
 
 			//根据子节点编号获取设备播放地址
-			String result3 = GetCameraPreviewURL.GetCameraPreviewURL(HkConstant.previewURLs, code2, ProtocolConstant.HLS);
+			String result3 = GetCameraPreviewURL.GetCameraPreviewURL(HkConstant.previewURLshttps, code2, ProtocolConstant.HLSS);
 			res = JSONObject.parseObject(result3);
 		}
 
 		return R.data(res);
 	}
 
+	/**
+	 * 获取设备语音对讲的信息
+	 * @param equipmentPlayInfo 设备语音对讲对象,只需包含设备编号,以及设备语音对讲格式即可
+	 * @param response 响应域,设置跨域
+	 * @return
+	 */
+	@GetMapping("/EquimentVoice")
+	public R EquimentVoice(EquipmentPlayInfo equipmentPlayInfo,HttpServletResponse response){
+		response.setHeader("Access-Control-Allow-Origin", "*");
+		response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
+		response.setHeader("Access-Control-Allow-Credentials", "true");
+		//返回
+//		equipmentService.selectEquimentPlayInfo(equipmentPlayInfo)
+
+		JSONObject res = new JSONObject();
+
+		//根据设备id获取设备编号
+		String result1 = GetCameraPreviewURL.QueryCameraPreviewURL(HkConstant.camerasID, equipmentPlayInfo.getNumber(), "encodeDevice", "deviceCode");
+
+		JSONObject jsonObject1 = JSONObject.parseObject(result1);
+		JSONObject res1 = (JSONObject) jsonObject1.get("data");
+		JSONArray arr1 = JSON.parseArray(res1.getString("list"));
+		if (arr1.size() > 0){
+			JSONObject data1 = (JSONObject) arr1.get(0);
+			String code1 = data1.get("indexCode").toString();
+
+			//根据设备编号获取子节点编号
+			String result2 = GetCameraPreviewURL.QueryCameraPreviewURL(HkConstant.camerasID, code1, "camera", "parentIndexCode");
+
+			JSONObject jsonObject2 = JSONObject.parseObject(result2);
+			JSONObject res2 = (JSONObject) jsonObject2.get("data");
+			JSONArray arr2 = JSON.parseArray(res2.getString("list"));
+			JSONObject data2 = (JSONObject) arr2.get(0);
+			String code2 = data2.get("indexCode").toString();
+
+			//根据子节点获取设备语音对讲的信息
+			String result4 = GetCameraPreviewURL.GetTalkURLs(HkConstant.talkURLs, code2);
+			res = JSONObject.parseObject(result4);
+		}
+
+		return R.data(res);
+	}
+
 
 
 	/**
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/constant/HkConstant.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/constant/HkConstant.java
index 6358b28..60d3229 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/constant/HkConstant.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/constant/HkConstant.java
@@ -38,6 +38,8 @@
 	 */
 	public static final String previewURLs = "/api/video/v2/cameras/previewURLs";
 
+	public static final String previewURLshttps = "/api/vnsc/mls/v1/preview/openApi/getPreviewParam";
+
 	/**
 	 * 设备查询
 	 */
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/constant/ProtocolConstant.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/constant/ProtocolConstant.java
index 1663187..7f5cb49 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/constant/ProtocolConstant.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/constant/ProtocolConstant.java
@@ -28,6 +28,8 @@
 	 */
 	String HLS = "hls";
 
+	String HLSS = "hlss";
+
 	/**
 	 * Websocket协议(一般用于H5视频播放器取流播放)
 	 */
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/util/GetCameraPreviewURL.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/util/GetCameraPreviewURL.java
index 2e2ab22..55e0dc2 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/util/GetCameraPreviewURL.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/hk/util/GetCameraPreviewURL.java
@@ -58,12 +58,24 @@
 		 * STEP5:组装请求参数
 		 */
 		JSONObject jsonBody = new JSONObject();
-		jsonBody.put("cameraIndexCode", cameraIndexCode);
+		jsonBody.put("indexCode", cameraIndexCode);
 		jsonBody.put("streamType", 0);
+		jsonBody.put("netZoneCode", 0);
 		jsonBody.put("protocol", protocol);
 		jsonBody.put("transmode", 1);
-		jsonBody.put("expand", "streamform=ps");
+		jsonBody.put("expireTime", 300);
 		String body = jsonBody.toJSONString();
+
+
+//		JSONObject jsonBody = new JSONObject();
+//		jsonBody.put("cameraIndexCode", cameraIndexCode);
+//		jsonBody.put("streamType", 0);
+//		jsonBody.put("protocol", protocol);
+//		jsonBody.put("transmode", 1);
+//		jsonBody.put("expand", "streamform=ps");
+//		String body = jsonBody.toJSONString();
+
+
 		/**
 		 * STEP6:调用接口
 		 */
@@ -243,7 +255,7 @@
 
 		String result = GetCameraResourcePage(1, 1, HkConstant.cameras);
 		//根据设备id获取设备编号
-		String result1 = QueryCameraPreviewURL(HkConstant.camerasID, "111111", "encodeDevice", "deviceCode");
+		String result1 = QueryCameraPreviewURL(HkConstant.camerasID, "111111222", "encodeDevice", "deviceCode");
 
 		JSONObject jsonObject1 = JSONObject.parseObject(result1);
 		JSONObject res1 = (JSONObject) jsonObject1.get("data");
@@ -259,9 +271,8 @@
 		JSONArray arr2 = JSON.parseArray(res2.getString("list"));
 		JSONObject data2 = (JSONObject) arr2.get(0);
 		String code2 = data2.get("indexCode").toString();
-
 		//根据子节点编号获取设备播放地址
-		String result3 = GetCameraPreviewURL(HkConstant.previewURLs, code2, ProtocolConstant.HLS);
+		String result3 = GetCameraPreviewURL(HkConstant.previewURLshttps, code2, ProtocolConstant.HLSS);
 		//根据子节点编号获取音频对讲地址
 		String result4 = GetTalkURLs(HkConstant.talkURLs, code2);
 
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
index 3f34aed..30d50b7 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
@@ -141,12 +141,16 @@
 			}
 		} else if (CSType.equals("HK")) {
 
+			if (content.substring(25, 26) != "3"){
+				return;
+			}
+
 			List<String> outData = new ArrayList<>();
 
 			switch (content.substring(0, 2)) {
 				case "BJ":
 					//报警信息
-					String devId = content.substring(12, 24);
+					String devId = content.substring(12, 21);
 					List<Map<String, Object>> list = serverHandler.equipmentService.selectInfos(devId);
 					Alarm alarm = new Alarm();
 					alarm.setWaringType("紧急求救");
@@ -155,6 +159,7 @@
 					alarm.setAlarmTime(df.format(day));
 					alarm.setPlace((String) list.get(0).get("streeName"));//事发地址
 					alarm.setDeviceNumber((String) list.get(0).get("deviceNumber"));//设备编号
+
 					alarm.setDistrict((String) list.get(0).get("district"));//县区
 					alarm.setProvince((String) list.get(0).get("province"));//市
 					alarm.setCity((String) list.get(0).get("city"));
@@ -1686,6 +1691,8 @@
 							SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 							alarm.setJjTime(dateFormat.format(date));
 
+
+
 							serverHandler.alarmService.updatePoliceStatus(online_police.get(0).getId().toString(), "1");
 						}
 					}

--
Gitblit v1.9.3