zhangqiankun %!s(int64=2) %!d(string=hai) anos
pai
achega
33ef396fd6
Modificáronse 2 ficheiros con 91 adicións e 6 borrados
  1. 6 6
      pom.xml
  2. 85 0
      src/main/java/com/persagy/cameractl/service/OpenAPIService.java

+ 6 - 6
pom.xml

@@ -74,6 +74,12 @@
 
 	<dependencies>
 		<dependency>
+			<groupId>cn.hutool</groupId>
+			<artifactId>hutool-all</artifactId>
+			<version>5.8.3</version>
+		</dependency>
+		
+		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-web</artifactId>
 		</dependency>
@@ -162,12 +168,6 @@
 		</dependency>
 
 		<dependency>
-			<groupId>cn.hutool</groupId>
-			<artifactId>hutool-core</artifactId>
-			<version>5.6.3</version>
-		</dependency>
-		
-		<dependency>
             <groupId>jaxen</groupId>
             <artifactId>jaxen</artifactId>
             <version>1.1.1</version>

+ 85 - 0
src/main/java/com/persagy/cameractl/service/OpenAPIService.java

@@ -0,0 +1,85 @@
+package com.persagy.cameractl.service;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.persagy.cameractl.conf.CameraApiConfig;
+import com.persagy.cameractl.utils.Camera;
+
+import cn.hutool.crypto.digest.MD5;
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONObject;
+
+/**
+ * 本类中的 openAPI 为 IVMS 8700,非综合安防管理平台
+ * 
+ * @version 1.0.0
+ * @company persagy 
+ * @author zhangqiankun
+ * @date 2022年6月16日 上午9:52:52
+ */
+@Service
+public class OpenAPIService {
+	public static final Logger logger = LoggerFactory.getLogger(OpenAPIService.class);
+	
+	/** 获取默认用户UUID【V2.7】 */
+	public static final String DEFAULT_USER_ID = "/openapi/service/base/user/getDefaultUserUuid";
+	/** 获取所有网域【V2.7】 */
+	public static final String GET_ALL_NET_ZONT = "/openapi/service/base/netZone/getNetZones";
+	/** 根据监控点UUID集和网域UUID分页获取录像计划【V2.7】 */
+	public static final String GET_RECORDPLANS_BY_CAMERAUUID = "/openapi/service/vss/playback/getRecordPlansByCameraUuids";
+	/** 根据录像计划UUID和网域UUID获取回放参数【V2.7】 */
+	public static final String PLAY_BACK_URI = "/openapi/service/vss/playback/getPlaybackParamByPlanUuid";
+
+	@Autowired
+	private CameraApiConfig cameraApiConfig;
+	
+	public void playBack(Camera camera) {
+		// 获取录像计划UUID
+		
+	}
+	
+	public String getRecordPlansByCameraUuids(Camera camera) {
+		// 获取录像计划UUID
+		long currentTimeMillis = System.currentTimeMillis();
+		String requestToken = this.createDefaultRequestToken(GET_RECORDPLANS_BY_CAMERAUUID, camera.cameraIndexCode, currentTimeMillis);
+		
+		JSONObject params = new JSONObject();
+		params.set("appkey", cameraApiConfig.getHkApiKey());
+		params.set("time", currentTimeMillis);
+		params.set("pageNo", 1);
+		params.set("pageSize", 15);
+		params.set("opUserUuid", "11d0e493870d40f9b2589383cf73001f");
+		params.set("cameraUuids", camera.cameraIndexCode);
+		params.set("netZoneUuid", "11d0e493870d40f9b2589383cf73001f");
+		
+		HttpUtil.post(GET_RECORDPLANS_BY_CAMERAUUID + "?token=" + requestToken, params.toString(), 30000);
+		
+		return null;
+	}
+	
+	/**
+	 * 生成token值
+	 * 
+	 * @param requestUrl
+	 * @param cameraUuid
+	 * @param time 当前毫秒值
+	 * @return
+	 * @date 2022年6月16日 上午11:27:50
+	 */
+	public String createDefaultRequestToken(String requestUrl, String cameraUuid, long time) {
+		JSONObject params = new JSONObject();
+		params.set("appkey", cameraApiConfig.getHkApiKey());
+		params.set("time", time);
+		params.set("opUserUuid", "43a9a55f76474bde89ecabc1d6914a7f");
+		params.set("cameraUuid", cameraUuid);
+		params.set("netZoneUuid", "11d0e493870d40f9b2589383cf73001f");
+		
+		String oriStr = requestUrl + params.toString() + cameraApiConfig.getHkApiSecret();
+		logger.info("md5 oriStr: {}", oriStr);
+		return MD5.create().digestHex(oriStr);
+	}
+	
+}