diff --git a/review_repo/pom.xml b/review_repo/pom.xml
index ccc547b..f39a0c1 100644
--- a/review_repo/pom.xml
+++ b/review_repo/pom.xml
@@ -269,6 +269,14 @@
jsch
0.1.54
+
+
+
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.3
+
diff --git a/review_repo/src/main/java/com/zcloud/modules/hk/controller/hkController.java b/review_repo/src/main/java/com/zcloud/modules/hk/controller/hkController.java
new file mode 100644
index 0000000..f5b8a1f
--- /dev/null
+++ b/review_repo/src/main/java/com/zcloud/modules/hk/controller/hkController.java
@@ -0,0 +1,83 @@
+package com.zcloud.modules.hk.controller;
+
+import com.zcloud.common.utils.R;
+import com.zcloud.util.HKUtil;
+import com.zcloud.util.ReturnMap;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Controller;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Controller
+@RequestMapping("/map/hk")
+public class hkController {
+
+
+ /**列表
+ * @throws Exception
+ */
+ @RequestMapping(value="/platformList")
+ public R platformList(@RequestBody Map params) throws Exception{
+ if(StringUtils.isEmpty(params.get("pageNo").toString())){
+ return R.error("缺少必填参数pageNo");
+ }else if(StringUtils.isEmpty(params.get("pageSize").toString())){
+ return R.error("缺少必填参数pageSize");
+ }
+ Map map = HKUtil.cameraSearch(params);
+ if(ObjectUtils.isEmpty(map)){
+ return R.error("海康平台摄像头调用失败");
+ }
+ return R.ok(map);
+ }
+
+ /**列表
+ * @throws Exception
+ */
+ @RequestMapping(value="/getHlsPath")
+ public R getHlsPath(@RequestBody Map params) throws Exception{
+ if(StringUtils.isEmpty(params.get("INDEXCODE").toString())){
+ return R.error("缺少必填参数INDEXCODE");
+ }
+ Map map = HKUtil.camerasPreviewURLs(params.get("INDEXCODE").toString(),"hls");
+ if(ObjectUtils.isEmpty(map)){
+ return R.error("海康平台摄像头调用失败");
+ }
+ return R.ok(map);
+ }
+
+ /**列表
+ * @throws Exception
+ */
+ @RequestMapping(value="/getRtspPath")
+ public R getRtspPath(@RequestBody Map params) throws Exception{
+ if(StringUtils.isEmpty(params.get("INDEXCODE").toString())){
+ return R.error("缺少必填参数INDEXCODE");
+ }
+ Map map = HKUtil.camerasPreviewURLs(params.get("INDEXCODE").toString(),"rtsp");
+ if(ObjectUtils.isEmpty(map)){
+ return R.error("海康平台摄像头调用失败");
+ }
+ return R.ok(map);
+ }
+
+
+ @RequestMapping(value="/goAllVideo")
+ public Object goAllVideo(@RequestBody Map params) throws Exception{
+ if(StringUtils.isEmpty(params.get("DATA_IDS").toString())){
+ return R.error("缺少必填参数DATA_IDS,参数格式为1,2,3,4用逗号分隔的INDEXCODE");
+ }
+ String DATA_IDS = params.get("DATA_IDS").toString();
+ Map map = new HashMap<>();
+ for (String INDEXCODE : DATA_IDS.split(",")) {
+ Map returnMap = HKUtil.camerasPreviewURLs(INDEXCODE,"hls");
+ map.put(INDEXCODE,returnMap);
+ }
+ return R.ok(map);
+ }
+}
diff --git a/review_repo/src/main/java/com/zcloud/util/HKUtil.java b/review_repo/src/main/java/com/zcloud/util/HKUtil.java
new file mode 100644
index 0000000..3392584
--- /dev/null
+++ b/review_repo/src/main/java/com/zcloud/util/HKUtil.java
@@ -0,0 +1,84 @@
+package com.zcloud.util;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.hikvision.artemis.sdk.ArtemisHttpUtil;
+import com.hikvision.artemis.sdk.config.ArtemisConfig;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 海康工具类
+ */
+public class HKUtil {
+ static {
+ // 代理API网关nginx服务器ip端口
+ ArtemisConfig.host = "192.168.0.253:443";
+ // 秘钥appkey
+ ArtemisConfig.appKey = "27510476";
+ // 秘钥appSecret
+ ArtemisConfig.appSecret = "vyuVh14pAnD0oMuJdcc0";
+ }
+ /**
+ * 能力开放平台的网站路径
+ * TODO 路径不用修改,就是/artemis
+ */
+ private static final String ARTEMIS_PATH = "/artemis";
+ /**
+ * 通用海康接口
+ * 调用POST请求类型(application/json)接口*
+ * @return
+ */
+ public static Map publicHkInterface(JSONObject jsonBody,String url){
+ final String getCamsApi = ARTEMIS_PATH +url;
+ Map path = new HashMap(2);
+ path.put("https://", getCamsApi);
+ // post请求application/json类型参数
+ String result =ArtemisHttpUtil.doPostStringArtemis(path,jsonBody.toJSONString(),null,null,"application/json",null);
+ JSONObject parseObject = JSONArray.parseObject(result);
+ return parseObject;
+ }
+
+
+ /**
+ * 获取监控点预览取流URL
+ * @param id 设备编号
+ * @return
+ */
+ public static Map camerasPreviewURLs(String id,String type){
+ JSONObject jsonBody = new JSONObject();
+ jsonBody.put("cameraIndexCode", id);
+ jsonBody.put("netZoneCode", "1");
+ jsonBody.put("transmode", 1);
+ jsonBody.put("streamType", 0);
+ jsonBody.put("protocol",type);
+ jsonBody.put("expireTime", -1);
+ jsonBody.put("expand","transcode=1&streamform=rtp");
+ Map returnMap=publicHkInterface(jsonBody,"/api/video/v1/cameras/previewURLs");
+ return returnMap;
+ }
+
+ /**
+ * API名称:
+ * 查询监控点列表v2
+ * 分组:
+ * 视频资源接口
+ * 提供方名称:
+ * 资源目录服务
+ * qps:
+ * 描述:根据条件查询目录下有权限的监控点列表
+ * @return
+ */
+ public static Map cameraSearch(Map map){
+ JSONObject jsonBody = new JSONObject();
+ jsonBody.put("pageNo", map.get("pageNo"));
+ jsonBody.put("pageSize", map.get("pageSize"));
+ if(map.get("name")!=null && !"".equals(map.get("name")))
+ jsonBody.put("name", map.get("name"));
+ jsonBody.put("orderBy", "name");
+ jsonBody.put("orderType", "desc");
+ Map returnMap=publicHkInterface(jsonBody,"/api/resource/v2/camera/search");
+ return returnMap;
+ }
+}