|
@@ -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);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|