海康摄像头迁移
parent
674ae8b22a
commit
27213d9c05
|
@ -269,6 +269,14 @@
|
||||||
<artifactId>jsch</artifactId>
|
<artifactId>jsch</artifactId>
|
||||||
<version>0.1.54</version>
|
<version>0.1.54</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 海康工具类 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.hikvision.ga</groupId>
|
||||||
|
<artifactId>artemis-http-client</artifactId>
|
||||||
|
<version>1.1.3</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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<String, Object> 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<String,Object> 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<String, Object> params) throws Exception{
|
||||||
|
if(StringUtils.isEmpty(params.get("INDEXCODE").toString())){
|
||||||
|
return R.error("缺少必填参数INDEXCODE");
|
||||||
|
}
|
||||||
|
Map<String,Object> 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<String, Object> params) throws Exception{
|
||||||
|
if(StringUtils.isEmpty(params.get("INDEXCODE").toString())){
|
||||||
|
return R.error("缺少必填参数INDEXCODE");
|
||||||
|
}
|
||||||
|
Map<String,Object> 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<String, Object> 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<String,Object> map = new HashMap<>();
|
||||||
|
for (String INDEXCODE : DATA_IDS.split(",")) {
|
||||||
|
Map<String,Object> returnMap = HKUtil.camerasPreviewURLs(INDEXCODE,"hls");
|
||||||
|
map.put(INDEXCODE,returnMap);
|
||||||
|
}
|
||||||
|
return R.ok(map);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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<String,Object> publicHkInterface(JSONObject jsonBody,String url){
|
||||||
|
final String getCamsApi = ARTEMIS_PATH +url;
|
||||||
|
Map<String, String> path = new HashMap<String, String>(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<String,Object> 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<String,Object> returnMap=publicHkInterface(jsonBody,"/api/video/v1/cameras/previewURLs");
|
||||||
|
return returnMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API名称:
|
||||||
|
* 查询监控点列表v2
|
||||||
|
* 分组:
|
||||||
|
* 视频资源接口
|
||||||
|
* 提供方名称:
|
||||||
|
* 资源目录服务
|
||||||
|
* qps:
|
||||||
|
* 描述:根据条件查询目录下有权限的监控点列表
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static Map<String,Object> cameraSearch(Map<String,Object> 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<String,Object> returnMap=publicHkInterface(jsonBody,"/api/resource/v2/camera/search");
|
||||||
|
return returnMap;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue