添加addParentPlatform, queryParentPlatformList 接口

This commit is contained in:
648540858
2020-11-20 18:02:01 +08:00
parent f3e45410d5
commit 1904978856
10 changed files with 616 additions and 10 deletions

View File

@@ -20,6 +20,8 @@ public class VideoManagerConstants {
public static final String PLAY_BLACK_PREFIX = "VMP_playback_";
public static final String PLATFORM_PREFIX = "VMP_platform_";
public static final String EVENT_ONLINE_REGISTER = "1";
public static final String EVENT_ONLINE_KEEPLIVE = "2";

View File

@@ -0,0 +1,227 @@
package com.genersoft.iot.vmp.gb28181.bean;
public class ParentPlatform {
/**
* 是否启用
*/
private boolean enable;
/**
* 名称
*/
private String name;
/**
* SIP服务国标编码
*/
private String serverGBId;
/**
* SIP服务国标域
*/
private String serverGBDomain;
/**
* SIP服务IP
*/
private String serverIP;
/**
* SIP服务端口
*/
private int serverPort;
/**
* 设备国标编号
*/
private String deviceGBId;
/**
* 设备ip
*/
private String deviceIp;
/**
* 设备端口
*/
private String devicePort;
/**
* SIP认证用户名(默认使用设备国标编号)
*/
private String username;
/**
* SIP认证密码
*/
private String password;
/**
* 注册周期 (秒)
*/
private String expires;
/**
* 心跳周期(秒)
*/
private String keepTimeout;
/**
* 传输协议
* UDP/TCP
*/
private String transport;
/**
* 字符集
*/
private String characterSet;
/**
* 允许云台控制
*/
private boolean PTZEnable;
/**
* RTCP流保活
*/
private boolean rtcp;
public boolean isEnable() {
return enable;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getServerGBId() {
return serverGBId;
}
public void setServerGBId(String serverGBId) {
this.serverGBId = serverGBId;
}
public String getServerGBDomain() {
return serverGBDomain;
}
public void setServerGBDomain(String serverGBDomain) {
this.serverGBDomain = serverGBDomain;
}
public String getServerIP() {
return serverIP;
}
public void setServerIP(String serverIP) {
this.serverIP = serverIP;
}
public int getServerPort() {
return serverPort;
}
public void setServerPort(int serverPort) {
this.serverPort = serverPort;
}
public String getDeviceGBId() {
return deviceGBId;
}
public void setDeviceGBId(String deviceGBId) {
this.deviceGBId = deviceGBId;
}
public String getDeviceIp() {
return deviceIp;
}
public void setDeviceIp(String deviceIp) {
this.deviceIp = deviceIp;
}
public String getDevicePort() {
return devicePort;
}
public void setDevicePort(String devicePort) {
this.devicePort = devicePort;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getExpires() {
return expires;
}
public void setExpires(String expires) {
this.expires = expires;
}
public String getKeepTimeout() {
return keepTimeout;
}
public void setKeepTimeout(String keepTimeout) {
this.keepTimeout = keepTimeout;
}
public String getTransport() {
return transport;
}
public void setTransport(String transport) {
this.transport = transport;
}
public String getCharacterSet() {
return characterSet;
}
public void setCharacterSet(String characterSet) {
this.characterSet = characterSet;
}
public boolean isPTZEnable() {
return PTZEnable;
}
public void setPTZEnable(boolean PTZEnable) {
this.PTZEnable = PTZEnable;
}
public boolean isRtcp() {
return rtcp;
}
public void setRtcp(boolean rtcp) {
this.rtcp = rtcp;
}
}

View File

@@ -9,6 +9,7 @@ import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.conf.MediaServerConfig;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
/**
* @Description:视频设备数据存储接口
@@ -191,4 +192,25 @@ public interface IVideoManagerStorager {
StreamInfo queryPlaybackByDevice(String deviceId, String channelId);
StreamInfo queryPlaybackBySSRC(String ssrc);
/**
* 更新或添加上级平台
* @param parentPlatform
*/
boolean updateParentPlatform(ParentPlatform parentPlatform);
/**
* 删除上级平台
* @param parentPlatform
*/
boolean deleteParentPlatform(ParentPlatform parentPlatform);
/**
* 分页获取上级平台
* @param page
* @param count
* @return
*/
public PageResult<ParentPlatform> queryParentPlatformList(int page, int count);
}

View File

@@ -7,6 +7,7 @@ import com.genersoft.iot.vmp.common.PageResult;
import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.conf.MediaServerConfig;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
@@ -213,4 +214,19 @@ public class VideoManagerJdbcStoragerImpl implements IVideoManagerStorager {
public StreamInfo queryPlaybackBySSRC(String ssrc) {
return null;
}
@Override
public boolean updateParentPlatform(ParentPlatform parentPlatform) {
return false;
}
@Override
public boolean deleteParentPlatform(ParentPlatform parentPlatform) {
return false;
}
@Override
public PageResult<ParentPlatform> queryParentPlatformList(int page, int count) {
return null;
}
}

View File

@@ -8,6 +8,7 @@ import com.genersoft.iot.vmp.common.PageResult;
import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.conf.MediaServerConfig;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -557,4 +558,33 @@ public class VideoManagerRedisStoragerImpl implements IVideoManagerStorager {
if (playLeys == null || playLeys.size() == 0) return null;
return (StreamInfo)redis.get(playLeys.get(0).toString());
}
@Override
public boolean updateParentPlatform(ParentPlatform parentPlatform) {
// 存储device
return redis.set(VideoManagerConstants.PLATFORM_PREFIX + parentPlatform.getDeviceGBId(), parentPlatform);
}
@Override
public boolean deleteParentPlatform(ParentPlatform parentPlatform) {
return false;
}
@Override
public PageResult<ParentPlatform> queryParentPlatformList(int page, int count) {
PageResult pageResult = new PageResult<Device>();
pageResult.setPage(page);
pageResult.setCount(count);
List<ParentPlatform> resultData = new ArrayList<>();
List<Object> parentPlatformList = redis.scan(VideoManagerConstants.PLATFORM_PREFIX + "*");
pageResult.setTotal(parentPlatformList.size());
int maxCount = (page + 1)* count;
for (int i = page * count; i < (pageResult.getTotal() > maxCount ? maxCount : pageResult.getTotal() ); i++) {
ParentPlatform parentPlatform =(ParentPlatform)redis.get((String)parentPlatformList.get(i));
resultData.add(parentPlatform);
}
pageResult.setData(resultData);
return pageResult;
}
}

View File

@@ -0,0 +1,48 @@
package com.genersoft.iot.vmp.vmanager.platform;
import com.genersoft.iot.vmp.common.PageResult;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
import com.genersoft.iot.vmp.vmanager.device.DeviceController;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@CrossOrigin
@RestController
@RequestMapping("/api")
public class PlatformController {
private final static Logger logger = LoggerFactory.getLogger(PlatformController.class);
@Autowired
private IVideoManagerStorager storager;
@GetMapping("/platforms")
public PageResult<ParentPlatform> platforms(int page, int count){
if (logger.isDebugEnabled()) {
logger.debug("查询所有上级设备API调用");
}
return storager.queryParentPlatformList(page, count);
}
@PostMapping("/platforms/add")
public ResponseEntity<String> addPlatform(ParentPlatform parentPlatform){
if (logger.isDebugEnabled()) {
logger.debug("查询所有上级设备API调用");
}
boolean updateResult = storager.updateParentPlatform(parentPlatform);
if (updateResult) {
return new ResponseEntity<>("success", HttpStatus.OK);
}else {
return new ResponseEntity<>("fail", HttpStatus.OK);
}
}
}