Commit c523ec37 by chenjunxiong

build(hikvision-sdk):

优化对象结构
视频资源获取 - 查询监控点
parent e86d708b
package org.jeecg.pm.hikvision.sdk.entity.body;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
/**
* <p>
*
* </p>
*
* @author 陈俊雄
* @since 2022/3/23
*/
@Slf4j
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public abstract class HikvisionPageModel extends HikvisionBodyModel {
public HikvisionPageModel() {
}
public HikvisionPageModel(Integer pageNo, Integer pageSize) {
this.pageNo = pageNo;
this.pageSize = pageSize;
}
/**
* 当前页码
*/
private Integer pageNo;
/**
* 每页数据最大记录数
*/
private Integer pageSize;
}
......@@ -100,4 +100,8 @@ public abstract class Constant implements Serializable {
// 接收事件
2
);
public static final List<String> IS_SMART_LIST = Arrays.asList(
"32800",
"32816");
}
package org.jeecg.pm.hikvision.sdk.entity.body.vss.res;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.pm.hikvision.sdk.entity.body.HikvisionPageModel;
import org.jeecg.pm.hikvision.sdk.json.serialize.ListJoinWithCommaSerialize;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author 陈俊雄
* @since 2022/3/23
*/
@Slf4j
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class HikvisionGetCamerasEx extends HikvisionPageModel {
public HikvisionGetCamerasEx() {
}
public HikvisionGetCamerasEx(Integer pageNo, Integer pageSize) {
super(pageNo, pageSize);
}
/**
* 监控点 UUID 集
*/
@JsonSerialize(using = ListJoinWithCommaSerialize.class)
private List<String> cameraUuids;
/**
* 组织中心UUID集
*/
@JsonSerialize(using = ListJoinWithCommaSerialize.class)
private List<String> unitUuids;
/**
* 区域 UUID 集
*/
@JsonSerialize(using = ListJoinWithCommaSerialize.class)
private List<String> regionUuids;
/**
* 编码设备UUID集
*/
@JsonSerialize(using = ListJoinWithCommaSerialize.class)
private List<String> encoderUuids;
/**
* 监控点名称
*/
private String cameraName;
/**
* 编码设备名称
*/
private String encoderName;
/**
* 是否是智能监控点
*
* @see Constant#IS_SMART_LIST
*/
private String isSmart;
/**
* 专业智能类型码
*
* @see Constant#SMART_TYPE_LIST
*/
private String smartType;
public HikvisionGetCamerasEx setIsSmart(String isSmart) {
if (!Constant.IS_SMART_LIST.contains(isSmart)) {
throw new JeecgBootException("不支持的值,支持值:" + Constant.IS_SMART_LIST);
}
this.isSmart = isSmart;
return this;
}
public HikvisionGetCamerasEx setSmartType(String smartType) {
if (!Constant.SMART_TYPE_LIST.contains(smartType)) {
throw new JeecgBootException("不支持的专业智能类型码,支持类码列表:" + Constant.SMART_TYPE_LIST);
}
this.smartType = smartType;
return this;
}
}
......@@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.pm.hikvision.sdk.entity.body.HikvisionBodyModel;
import org.jeecg.pm.hikvision.sdk.entity.body.HikvisionPageModel;
import org.jeecg.pm.hikvision.sdk.json.serialize.ListJoinWithCommaSerialize;
import java.util.List;
......@@ -21,29 +21,18 @@ import java.util.List;
*/
@Slf4j
@Data
@EqualsAndHashCode(callSuper = false)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class HikvisionGetEncoders extends HikvisionBodyModel {
public class HikvisionGetEncoders extends HikvisionPageModel {
public HikvisionGetEncoders() {
}
public HikvisionGetEncoders(Integer pageNo, Integer pageSize) {
this.pageNo = pageNo;
this.pageSize = pageSize;
super(pageNo, pageSize);
}
/**
* 当前页码
*/
private Integer pageNo;
/**
* 每页数据最大记录数
*/
private Integer pageSize;
/**
* 组织中心UUID集
*/
@JsonSerialize(using = ListJoinWithCommaSerialize.class)
......@@ -62,12 +51,14 @@ public class HikvisionGetEncoders extends HikvisionBodyModel {
/**
* 编码设备类型码集
* @see Constant#ENCODER_MODEL_LIST
*/
@JsonSerialize(using = ListJoinWithCommaSerialize.class)
private List<String> encoderModel;
/**
* 专业智能类型码
* @see Constant#SMART_TYPE_LIST
*/
private String smartType;
......
package org.jeecg.pm.hikvision.sdk.request.vss.res;
import com.chanjx.utils.HttpMethod;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.http.entity.ContentType;
import org.jeecg.pm.hikvision.sdk.entity.body.HikvisionBodyModel;
import org.jeecg.pm.hikvision.sdk.entity.body.vss.res.HikvisionGetCamerasEx;
import org.jeecg.pm.hikvision.sdk.request.HikvisionAbstractRequest;
import org.jeecg.pm.hikvision.sdk.response.vss.res.HikvisionGetCamerasExResponse;
import org.jeecg.pm.hikvision.sdk.result.vss.res.HikvisionGetCamerasExResult;
/**
* @author: JJww
* @Date:2022/3/21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class HikvisionGetCamerasExRequest extends HikvisionAbstractRequest<HikvisionGetCamerasExResponse, HikvisionGetCamerasExResult> {
private HikvisionGetCamerasEx hikvisionGetCamerasEx;
public HikvisionGetCamerasExRequest(HikvisionGetCamerasEx hikvisionGetCamerasEx) {
this.hikvisionGetCamerasEx = hikvisionGetCamerasEx;
}
@Override
public ContentType getContentType() {
return ContentType.APPLICATION_JSON;
}
@Override
public Class<HikvisionGetCamerasExResponse> getResponseClazz() {
return HikvisionGetCamerasExResponse.class;
}
@Override
public Class<HikvisionGetCamerasExResult> getResultClazz() {
return HikvisionGetCamerasExResult.class;
}
@Override
public HttpMethod getHttpMethod() {
return HttpMethod.POST;
}
@Override
public String getReqPath() {
return "/openapi/service/vss/res/getCamerasEx";
}
@Override
public HikvisionBodyModel getModel() {
return hikvisionGetCamerasEx;
}
@Override
public void setModel(HikvisionBodyModel model) {
this.hikvisionGetCamerasEx = (HikvisionGetCamerasEx) model;
}
}
package org.jeecg.pm.hikvision.sdk.response.vss.res;
import org.jeecg.pm.hikvision.sdk.response.HikvisionAbstractResponse;
import org.jeecg.pm.hikvision.sdk.result.vss.res.HikvisionGetCamerasExResult;
/**
* <p>
*
* </p>
*
* @author 陈俊雄
* @since 2022/3/23
*/
public class HikvisionGetCamerasExResponse extends HikvisionAbstractResponse<HikvisionGetCamerasExResult> {
public HikvisionGetCamerasExResponse() {
super(HikvisionGetCamerasExResult.class, false);
}
}
package org.jeecg.pm.hikvision.sdk.result;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
import java.io.Serializable;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author 陈俊雄
* @since 2022/3/23
*/
@Slf4j
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class HikvisionPageResultData<T> implements Serializable {
/**
* 查询数据记录总数
*/
private Integer total;
/**
* 当前页码
*/
private Integer pageNo;
/**
* 每页记录总数
*/
private Integer pageSize;
/**
* 对象列表
*/
private List<T> list;
}
package org.jeecg.pm.hikvision.sdk.result.vss.res;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.pm.hikvision.sdk.json.deserialize.ListJoinWithCommaDeserialize;
import org.jeecg.pm.hikvision.sdk.result.HikvisionBaseResult;
import org.jeecg.pm.hikvision.sdk.result.HikvisionPageResultData;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author 陈俊雄
* @since 2022/3/23
*/
@Slf4j
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class HikvisionGetCamerasExResult extends HikvisionBaseResult {
/**
* 返回数据
*/
private HikvisionPageResultData<Camera> data;
@Slf4j
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public static class Camera implements Serializable {
/**
* 监控点 UUID
*/
private String cameraUuid;
/**
* 监控点名称
*/
private String cameraName;
/**
* 监控点类型
*/
private String cameraType;
/**
* 通道号
*/
private Integer cameraChannelNum;
/**
* 专业智能类型码
* @see org.jeecg.pm.hikvision.sdk.entity.body.vss.res.Constant#SMART_TYPE_LIST
*/
private String smartType;
/**
* 是否支持智能
* @see org.jeecg.pm.hikvision.sdk.entity.body.vss.res.Constant#SMART_SUPPORT_LIST
*/
private Integer smartSupport;
/**
* 在线状态
*/
@JsonFormat(shape = JsonFormat.Shape.NUMBER)
private Boolean onLineStatus;
/**
* 键盘矩阵 UUID
*/
private String keyBoardCode;
/**
* 排序字段
*/
private Integer orderNum;
/**
* 更新时间
*/
private Date updateTime;
/**
* 中心 UUID
*/
private String unitUuid;
/**
* 区域 UUID
*/
private String regionUuid;
/**
* 编码设备 UUID
*/
private String encoderUuid;
/**
* 资源权限集
*/
@JsonDeserialize(using = ListJoinWithCommaDeserialize.class)
private List<String> resAuths;
}
}
......@@ -7,6 +7,7 @@ import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.pm.hikvision.sdk.json.deserialize.ListJoinWithCommaDeserialize;
import org.jeecg.pm.hikvision.sdk.result.HikvisionBaseResult;
import org.jeecg.pm.hikvision.sdk.result.HikvisionPageResultData;
import java.io.Serializable;
import java.util.Date;
......@@ -22,43 +23,14 @@ import java.util.List;
*/
@Slf4j
@Data
@EqualsAndHashCode(callSuper = false)
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class HikvisionGetEncodersResult extends HikvisionBaseResult {
/**
* 返回数据
*/
private ResultData data;
@Slf4j
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public static class ResultData implements Serializable {
/**
* 查询数据记录总数
*/
private Integer total;
/**
* 当前页码
*/
private Integer pageNo;
/**
* 每页记录总数
*/
private Integer pageSize;
/**
* 对象列表
*/
private List<Encoder> list;
}
private HikvisionPageResultData<Encoder> data;
@Slf4j
@Data
......@@ -150,11 +122,3 @@ public class HikvisionGetEncodersResult extends HikvisionBaseResult {
private List<String> resAuths;
}
}
/*
报警输入数 Integer 是
报警输出数 Integer 是
可视对讲通道数 Integer 是
resAuths 资源权限集 String 是 编码设备资源权限说明
*/
import org.jeecg.pm.hikvision.sdk.client.HikvisionBaseClient;
import org.jeecg.pm.hikvision.sdk.client.HikvisionClient;
import org.jeecg.pm.hikvision.sdk.entity.body.vss.res.HikvisionGetCamerasEx;
import org.jeecg.pm.hikvision.sdk.entity.body.vss.res.HikvisionGetEncoders;
import org.jeecg.pm.hikvision.sdk.request.base.user.HikvisionGetDefaultUserUuidRequest;
import org.jeecg.pm.hikvision.sdk.request.vss.res.HikvisionGetCamerasExRequest;
import org.jeecg.pm.hikvision.sdk.request.vss.res.HikvisionGetEncodersRequest;
import org.jeecg.pm.hikvision.sdk.response.base.user.HikvisionGetDefaultUserUuidResponse;
import org.jeecg.pm.hikvision.sdk.response.vss.res.HikvisionGetCamerasExResponse;
import org.jeecg.pm.hikvision.sdk.response.vss.res.HikvisionGetEncodersResponse;
import org.junit.jupiter.api.Test;
......@@ -35,4 +38,10 @@ public class HikvisionSdkTest {
System.out.println(response);
}
@Test
void getCamerasEx() {
final HikvisionGetCamerasEx camerasEx = new HikvisionGetCamerasEx(1, 10);
final HikvisionGetCamerasExResponse response = CLIENT.execute(new HikvisionGetCamerasExRequest(camerasEx));
System.out.println(response);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment