优化部分sql实现
parent
d849352441
commit
5d40080468
|
@ -172,7 +172,7 @@ public class DeviceChannel {
|
||||||
* 遇到过NVR下的IPC下发信令可以推流, 但是 Status 响应 OFF
|
* 遇到过NVR下的IPC下发信令可以推流, 但是 Status 响应 OFF
|
||||||
*/
|
*/
|
||||||
@Schema(description = "在线/离线, 1在线,0离线")
|
@Schema(description = "在线/离线, 1在线,0离线")
|
||||||
private int status;
|
private boolean status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 经度
|
* 经度
|
||||||
|
@ -455,11 +455,11 @@ public class DeviceChannel {
|
||||||
this.PTZTypeText = PTZTypeText;
|
this.PTZTypeText = PTZTypeText;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getStatus() {
|
public boolean isStatus() {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setStatus(int status) {
|
public void setStatus(boolean status) {
|
||||||
this.status = status;
|
this.status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ public interface ISIPCommanderForPlatform {
|
||||||
* @param fromTag
|
* @param fromTag
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,int status) throws SipException, InvalidArgumentException, ParseException;
|
void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,boolean status) throws SipException, InvalidArgumentException, ParseException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 向上级回复移动位置订阅消息
|
* 向上级回复移动位置订阅消息
|
||||||
|
|
|
@ -221,7 +221,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
|
||||||
if (!channel.getChannelId().equals(parentPlatform.getDeviceGBId())) {
|
if (!channel.getChannelId().equals(parentPlatform.getDeviceGBId())) {
|
||||||
catalogXml.append("<Parental>" + channel.getParental() + "</Parental>\r\n");
|
catalogXml.append("<Parental>" + channel.getParental() + "</Parental>\r\n");
|
||||||
if (channel.getParental() == 0) {
|
if (channel.getParental() == 0) {
|
||||||
catalogXml.append("<Status>" + (channel.getStatus() == 0 ? "OFF" : "ON") + "</Status>\r\n");
|
catalogXml.append("<Status>" + (channel.isStatus() ? "ON" : "OFF") + "</Status>\r\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (channel.getParental() == 0) {
|
if (channel.getParental() == 0) {
|
||||||
|
@ -250,7 +250,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
|
||||||
catalogXml.append("<Port>" + channel.getPort() + "</Port>\r\n");
|
catalogXml.append("<Port>" + channel.getPort() + "</Port>\r\n");
|
||||||
catalogXml.append("<Password>" + channel.getPort() + "</Password>\r\n");
|
catalogXml.append("<Password>" + channel.getPort() + "</Password>\r\n");
|
||||||
catalogXml.append("<PTZType>" + channel.getPTZType() + "</PTZType>\r\n");
|
catalogXml.append("<PTZType>" + channel.getPTZType() + "</PTZType>\r\n");
|
||||||
catalogXml.append("<Status>" + (channel.getStatus() == 1?"ON":"OFF") + "</Status>\r\n");
|
catalogXml.append("<Status>" + (channel.isStatus() ? "ON":"OFF") + "</Status>\r\n");
|
||||||
catalogXml.append("<Longitude>" +
|
catalogXml.append("<Longitude>" +
|
||||||
(channel.getLongitudeWgs84() != 0? channel.getLongitudeWgs84():channel.getLongitude())
|
(channel.getLongitudeWgs84() != 0? channel.getLongitudeWgs84():channel.getLongitude())
|
||||||
+ "</Longitude>\r\n");
|
+ "</Longitude>\r\n");
|
||||||
|
@ -377,11 +377,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,int status) throws SipException, InvalidArgumentException, ParseException {
|
public void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,boolean status) throws SipException, InvalidArgumentException, ParseException {
|
||||||
if (parentPlatform == null) {
|
if (parentPlatform == null) {
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
String statusStr = (status==1)?"ONLINE":"OFFLINE";
|
String statusStr = (status)?"ONLINE":"OFFLINE";
|
||||||
String characterSet = parentPlatform.getCharacterSet();
|
String characterSet = parentPlatform.getCharacterSet();
|
||||||
StringBuffer deviceStatusXml = new StringBuffer(600);
|
StringBuffer deviceStatusXml = new StringBuffer(600);
|
||||||
deviceStatusXml.append("<?xml version=\"1.0\" encoding=\"" + characterSet + "\"?>\r\n")
|
deviceStatusXml.append("<?xml version=\"1.0\" encoding=\"" + characterSet + "\"?>\r\n")
|
||||||
|
@ -542,7 +542,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
|
||||||
catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n")
|
catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n")
|
||||||
.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n")
|
.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n")
|
||||||
.append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n")
|
.append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n")
|
||||||
.append("<Status>" + (channel.getStatus() == 0 ? "OFF" : "ON") + "</Status>\r\n");
|
.append("<Status>" + (channel.isStatus() ? "ON" : "OFF") + "</Status>\r\n");
|
||||||
|
|
||||||
if (channel.getChannelType() != 2) { // 业务分组/虚拟组织/行政区划 不设置以下属性
|
if (channel.getChannelType() != 2) { // 业务分组/虚拟组织/行政区划 不设置以下属性
|
||||||
catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n")
|
catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n")
|
||||||
|
|
|
@ -77,7 +77,7 @@ public class DeviceStatusQueryMessageHandler extends SIPRequestProcessorParent i
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
cmderFroPlatform.deviceStatusResponse(parentPlatform,channelId, sn, fromHeader.getTag(),deviceChannel.getStatus());
|
cmderFroPlatform.deviceStatusResponse(parentPlatform,channelId, sn, fromHeader.getTag(),deviceChannel.isStatus());
|
||||||
} catch (SipException | InvalidArgumentException | ParseException e) {
|
} catch (SipException | InvalidArgumentException | ParseException e) {
|
||||||
logger.error("[命令发送失败] 国标级联 DeviceStatus查询回复: {}", e.getMessage());
|
logger.error("[命令发送失败] 国标级联 DeviceStatus查询回复: {}", e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
|
@ -255,7 +255,7 @@ public class XmlUtil {
|
||||||
}
|
}
|
||||||
if (channelType.equals(ChannelType.CivilCode)) {
|
if (channelType.equals(ChannelType.CivilCode)) {
|
||||||
// 行政区划其他字段没必要识别了,默认在线即可
|
// 行政区划其他字段没必要识别了,默认在线即可
|
||||||
deviceChannel.setStatus(1);
|
deviceChannel.setStatus(true);
|
||||||
deviceChannel.setParental(1);
|
deviceChannel.setParental(1);
|
||||||
deviceChannel.setCreateTime(DateUtil.getNow());
|
deviceChannel.setCreateTime(DateUtil.getNow());
|
||||||
deviceChannel.setUpdateTime(DateUtil.getNow());
|
deviceChannel.setUpdateTime(DateUtil.getNow());
|
||||||
|
@ -309,7 +309,7 @@ public class XmlUtil {
|
||||||
deviceChannel.setBusinessGroupId(businessGroupID);
|
deviceChannel.setBusinessGroupId(businessGroupID);
|
||||||
if (channelType.equals(ChannelType.BusinessGroup) || channelType.equals(ChannelType.VirtualOrganization)) {
|
if (channelType.equals(ChannelType.BusinessGroup) || channelType.equals(ChannelType.VirtualOrganization)) {
|
||||||
// 业务分组和虚拟组织 其他字段没必要识别了,默认在线即可
|
// 业务分组和虚拟组织 其他字段没必要识别了,默认在线即可
|
||||||
deviceChannel.setStatus(1);
|
deviceChannel.setStatus(true);
|
||||||
deviceChannel.setParental(1);
|
deviceChannel.setParental(1);
|
||||||
deviceChannel.setCreateTime(DateUtil.getNow());
|
deviceChannel.setCreateTime(DateUtil.getNow());
|
||||||
deviceChannel.setUpdateTime(DateUtil.getNow());
|
deviceChannel.setUpdateTime(DateUtil.getNow());
|
||||||
|
@ -322,13 +322,13 @@ public class XmlUtil {
|
||||||
String status = statusElement.getTextTrim().trim();
|
String status = statusElement.getTextTrim().trim();
|
||||||
// ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR的兼容性处理
|
// ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR的兼容性处理
|
||||||
if (status.equals("ON") || status.equals("On") || status.equals("ONLINE") || status.equals("OK")) {
|
if (status.equals("ON") || status.equals("On") || status.equals("ONLINE") || status.equals("OK")) {
|
||||||
deviceChannel.setStatus(1);
|
deviceChannel.setStatus(true);
|
||||||
}
|
}
|
||||||
if (status.equals("OFF") || status.equals("Off") || status.equals("OFFLINE")) {
|
if (status.equals("OFF") || status.equals("Off") || status.equals("OFFLINE")) {
|
||||||
deviceChannel.setStatus(0);
|
deviceChannel.setStatus(false);
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
deviceChannel.setStatus(1);
|
deviceChannel.setStatus(true);
|
||||||
}
|
}
|
||||||
// 识别自带的目录标识
|
// 识别自带的目录标识
|
||||||
String parental = XmlUtil.getText(itemDevice, "Parental");
|
String parental = XmlUtil.getText(itemDevice, "Parental");
|
||||||
|
|
|
@ -2,7 +2,7 @@ package com.genersoft.iot.vmp.service;
|
||||||
|
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.Device;
|
import com.genersoft.iot.vmp.gb28181.bean.Device;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
|
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
|
||||||
import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
|
import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -38,7 +38,7 @@ public interface IDeviceChannelService {
|
||||||
* 获取统计信息
|
* 获取统计信息
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
ResourceBaceInfo getOverview();
|
ResourceBaseInfo getOverview();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询所有未分配的通道
|
* 查询所有未分配的通道
|
||||||
|
|
|
@ -5,7 +5,7 @@ import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo;
|
import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.SyncStatus;
|
import com.genersoft.iot.vmp.gb28181.bean.SyncStatus;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.BaseTree;
|
import com.genersoft.iot.vmp.vmanager.bean.BaseTree;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ public interface IDeviceService {
|
||||||
* 获取统计信息
|
* 获取统计信息
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
ResourceBaceInfo getOverview();
|
ResourceBaseInfo getOverview();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取所有设备
|
* 获取所有设备
|
||||||
|
|
|
@ -4,7 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.genersoft.iot.vmp.common.StreamInfo;
|
import com.genersoft.iot.vmp.common.StreamInfo;
|
||||||
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
|
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
|
||||||
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
|
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
|
|
||||||
public interface IStreamProxyService {
|
public interface IStreamProxyService {
|
||||||
|
@ -108,6 +108,6 @@ public interface IStreamProxyService {
|
||||||
* 获取统计信息
|
* 获取统计信息
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
ResourceBaceInfo getOverview();
|
ResourceBaseInfo getOverview();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
|
||||||
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
|
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
|
||||||
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
|
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
|
||||||
import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis;
|
import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -113,5 +113,5 @@ public interface IStreamPushService {
|
||||||
* 获取统计信息
|
* 获取统计信息
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
ResourceBaceInfo getOverview();
|
ResourceBaseInfo getOverview();
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
||||||
import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper;
|
import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper;
|
||||||
import com.genersoft.iot.vmp.storager.dao.DeviceMapper;
|
import com.genersoft.iot.vmp.storager.dao.DeviceMapper;
|
||||||
import com.genersoft.iot.vmp.utils.DateUtil;
|
import com.genersoft.iot.vmp.utils.DateUtil;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
|
||||||
import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
|
import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -175,8 +175,12 @@ public class DeviceChannelServiceImpl implements IDeviceChannelService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceBaceInfo getOverview() {
|
public ResourceBaseInfo getOverview() {
|
||||||
return channelMapper.getOverview();
|
|
||||||
|
int online = channelMapper.getOnlineCount();
|
||||||
|
int total = channelMapper.getAllChannelCount();
|
||||||
|
|
||||||
|
return new ResourceBaseInfo(total, online);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ import com.genersoft.iot.vmp.storager.dao.DeviceMapper;
|
||||||
import com.genersoft.iot.vmp.storager.dao.PlatformChannelMapper;
|
import com.genersoft.iot.vmp.storager.dao.PlatformChannelMapper;
|
||||||
import com.genersoft.iot.vmp.utils.DateUtil;
|
import com.genersoft.iot.vmp.utils.DateUtil;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.BaseTree;
|
import com.genersoft.iot.vmp.vmanager.bean.BaseTree;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -652,8 +652,10 @@ public class DeviceServiceImpl implements IDeviceService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceBaceInfo getOverview() {
|
public ResourceBaseInfo getOverview() {
|
||||||
return deviceMapper.getOverview();
|
List<Device> onlineDevices = deviceMapper.getOnlineDevices();
|
||||||
|
List<Device> all = deviceMapper.getAll();
|
||||||
|
return new ResourceBaseInfo(all.size(), onlineDevices.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -110,7 +110,7 @@ public class GbStreamServiceImpl implements IGbStreamService {
|
||||||
deviceChannel.setLatitude(gbStream.getLatitude());
|
deviceChannel.setLatitude(gbStream.getLatitude());
|
||||||
deviceChannel.setDeviceId(platform.getDeviceGBId());
|
deviceChannel.setDeviceId(platform.getDeviceGBId());
|
||||||
deviceChannel.setManufacture("wvp-pro");
|
deviceChannel.setManufacture("wvp-pro");
|
||||||
deviceChannel.setStatus(gbStream.isStatus()?1:0);
|
deviceChannel.setStatus(gbStream.isStatus());
|
||||||
|
|
||||||
deviceChannel.setRegisterWay(1);
|
deviceChannel.setRegisterWay(1);
|
||||||
deviceChannel.setCivilCode(platform.getAdministrativeDivision());
|
deviceChannel.setCivilCode(platform.getAdministrativeDivision());
|
||||||
|
@ -218,7 +218,7 @@ public class GbStreamServiceImpl implements IGbStreamService {
|
||||||
}else {
|
}else {
|
||||||
status = gbStreamMapper.selectStatusForPush(gbStream.getApp(), gbStream.getStream());
|
status = gbStreamMapper.selectStatusForPush(gbStream.getApp(), gbStream.getStream());
|
||||||
}
|
}
|
||||||
deviceChannel.setStatus((status != null && status )?1:0);
|
deviceChannel.setStatus(status != null && status);
|
||||||
|
|
||||||
deviceChannel.setRegisterWay(1);
|
deviceChannel.setRegisterWay(1);
|
||||||
deviceChannel.setCivilCode(platform.getAdministrativeDivision());
|
deviceChannel.setCivilCode(platform.getAdministrativeDivision());
|
||||||
|
|
|
@ -685,7 +685,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||||
// 缓存不存在,从数据库查询,如果数据库不存在则是错误的
|
// 缓存不存在,从数据库查询,如果数据库不存在则是错误的
|
||||||
mediaServerItem = getOneFromDatabase(mediaServerId);
|
mediaServerItem = getOneFromDatabase(mediaServerId);
|
||||||
if (mediaServerItem == null) {
|
if (mediaServerItem == null) {
|
||||||
logger.warn("[更新ZLM 保活信息]失败,未找到流媒体信息");
|
logger.warn("[更新ZLM 保活信息] 流媒体{}尚未加入使用,请检查节点中是否含有此流媒体 ", mediaServerId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// zlm连接重试
|
// zlm连接重试
|
||||||
|
|
|
@ -23,7 +23,7 @@ import com.genersoft.iot.vmp.storager.dao.PlatformGbStreamMapper;
|
||||||
import com.genersoft.iot.vmp.storager.dao.StreamProxyMapper;
|
import com.genersoft.iot.vmp.storager.dao.StreamProxyMapper;
|
||||||
import com.genersoft.iot.vmp.utils.DateUtil;
|
import com.genersoft.iot.vmp.utils.DateUtil;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
|
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -438,7 +438,11 @@ public class StreamProxyServiceImpl implements IStreamProxyService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceBaceInfo getOverview() {
|
public ResourceBaseInfo getOverview() {
|
||||||
return streamProxyMapper.getOverview();
|
|
||||||
|
int total = streamProxyMapper.getAllCount();
|
||||||
|
int online = streamProxyMapper.getOnline();
|
||||||
|
|
||||||
|
return new ResourceBaseInfo(total, online);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis;
|
||||||
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
||||||
import com.genersoft.iot.vmp.storager.dao.*;
|
import com.genersoft.iot.vmp.storager.dao.*;
|
||||||
import com.genersoft.iot.vmp.utils.DateUtil;
|
import com.genersoft.iot.vmp.utils.DateUtil;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -531,7 +531,10 @@ public class StreamPushServiceImpl implements IStreamPushService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceBaceInfo getOverview() {
|
public ResourceBaseInfo getOverview() {
|
||||||
return streamPushMapper.getOverview(userSetting.isUsePushingAsStatus());
|
int total = streamPushMapper.getAllCount();
|
||||||
|
int online = streamPushMapper.getAllOnline(userSetting.isUsePushingAsStatus());
|
||||||
|
|
||||||
|
return new ResourceBaseInfo(total, online);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@ import com.genersoft.iot.vmp.vmanager.bean.StreamPushExcelDto;
|
||||||
import com.google.common.collect.BiMap;
|
import com.google.common.collect.BiMap;
|
||||||
import com.google.common.collect.HashBiMap;
|
import com.google.common.collect.HashBiMap;
|
||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@ -33,38 +32,43 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener<StreamPus
|
||||||
/**
|
/**
|
||||||
* 用于存储不加过滤的所有数据
|
* 用于存储不加过滤的所有数据
|
||||||
*/
|
*/
|
||||||
private List<StreamPushItem> streamPushItems = new ArrayList<>();
|
private final List<StreamPushItem> streamPushItems = new ArrayList<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用于存储更具APP+Stream过滤后的数据,可以直接存入stream_push表与gb_stream表
|
* 用于存储更具APP+Stream过滤后的数据,可以直接存入stream_push表与gb_stream表
|
||||||
*/
|
*/
|
||||||
private Map<String,StreamPushItem> streamPushItemForSave = new HashMap<>();
|
private final Map<String,StreamPushItem> streamPushItemForSave = new HashMap<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用于存储按照APP+Stream为KEY, 平台ID+目录Id 为value的数据,用于存储到gb_stream表后获取app+Stream对应的平台与目录信息,然后存入关联表
|
* 用于存储按照APP+Stream为KEY, 平台ID+目录Id 为value的数据,用于存储到gb_stream表后获取app+Stream对应的平台与目录信息,然后存入关联表
|
||||||
*/
|
*/
|
||||||
private Map<String, List<String[]>> streamPushItemsForPlatform = new HashMap<>();
|
private final Map<String, List<String[]>> streamPushItemsForPlatform = new HashMap<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用于判断文件是否存在重复的app+Stream+平台ID
|
* 用于判断文件是否存在重复的app+Stream+平台ID
|
||||||
*/
|
*/
|
||||||
private Set<String> streamPushStreamSet = new HashSet<>();
|
private final Set<String> streamPushStreamSet = new HashSet<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用于存储APP+Stream->国标ID 的数据结构, 数据一一对应,全局判断APP+Stream->国标ID是否存在不对应
|
* 用于存储APP+Stream->国标ID 的数据结构, 数据一一对应,全局判断APP+Stream->国标ID是否存在不对应
|
||||||
*/
|
*/
|
||||||
private BiMap<String,String> gBMap = HashBiMap.create();
|
private final BiMap<String,String> gBMap = HashBiMap.create();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用于存储APP+Stream-> 在数据库中的数据
|
||||||
|
*/
|
||||||
|
private final BiMap<String,String> pushMapInDb = HashBiMap.create();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录错误的APP+Stream
|
* 记录错误的APP+Stream
|
||||||
*/
|
*/
|
||||||
private List<String> errorStreamList = new ArrayList<>();
|
private final List<String> errorStreamList = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录错误的国标ID
|
* 记录错误的国标ID
|
||||||
*/
|
*/
|
||||||
private List<String> errorGBList = new ArrayList<>();
|
private final List<String> errorInfoList = new ArrayList<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 读取数量计数器
|
* 读取数量计数器
|
||||||
|
@ -75,6 +79,13 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener<StreamPus
|
||||||
this.pushService = pushService;
|
this.pushService = pushService;
|
||||||
this.defaultMediaServerId = defaultMediaServerId;
|
this.defaultMediaServerId = defaultMediaServerId;
|
||||||
this.errorDataHandler = errorDataHandler;
|
this.errorDataHandler = errorDataHandler;
|
||||||
|
// 获取数据库已有的数据,已经存在的则忽略
|
||||||
|
List<String> allAppAndStreams = pushService.getAllAppAndStream();
|
||||||
|
if (allAppAndStreams.size() > 0) {
|
||||||
|
for (String allAppAndStream : allAppAndStreams) {
|
||||||
|
pushMapInDb.put(allAppAndStream, allAppAndStream);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface ErrorDataHandler{
|
public interface ErrorDataHandler{
|
||||||
|
@ -88,26 +99,30 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener<StreamPus
|
||||||
|| ObjectUtils.isEmpty(streamPushExcelDto.getGbId())) {
|
|| ObjectUtils.isEmpty(streamPushExcelDto.getGbId())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Integer rowIndex = analysisContext.readRowHolder().getRowIndex();
|
||||||
|
|
||||||
if (gBMap.get(streamPushExcelDto.getApp() + streamPushExcelDto.getStream()) == null) {
|
if (gBMap.get(streamPushExcelDto.getApp() + streamPushExcelDto.getStream()) == null) {
|
||||||
try {
|
try {
|
||||||
gBMap.put(streamPushExcelDto.getApp() + streamPushExcelDto.getStream(), streamPushExcelDto.getGbId());
|
gBMap.put(streamPushExcelDto.getApp() + streamPushExcelDto.getStream(), streamPushExcelDto.getGbId());
|
||||||
}catch (IllegalArgumentException e) {
|
}catch (IllegalArgumentException e) {
|
||||||
errorGBList.add(streamPushExcelDto.getGbId() + "(不同的app+stream使用了相同的国标ID)");
|
errorInfoList.add("行:" + rowIndex + ", " + streamPushExcelDto.getGbId() + " 国标ID重复使用");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
if (!gBMap.get(streamPushExcelDto.getApp() + streamPushExcelDto.getStream()).equals(streamPushExcelDto.getGbId())) {
|
if (!gBMap.get(streamPushExcelDto.getApp() + streamPushExcelDto.getStream()).equals(streamPushExcelDto.getGbId())) {
|
||||||
errorGBList.add(streamPushExcelDto.getGbId() + "(同一组app+stream使用了不同的国标ID)");
|
errorInfoList.add("行:" + rowIndex + ", " + streamPushExcelDto.getGbId() + " 同样的应用名和流ID使用了不同的国标ID");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (streamPushStreamSet.contains(streamPushExcelDto.getApp() + streamPushExcelDto.getStream() + streamPushExcelDto.getPlatformId())) {
|
if (streamPushStreamSet.contains(streamPushExcelDto.getApp() + streamPushExcelDto.getStream() + streamPushExcelDto.getPlatformId())) {
|
||||||
errorStreamList.add(streamPushExcelDto.getApp() + "/" + streamPushExcelDto.getStream()+ "/" +
|
errorStreamList.add("行:" + rowIndex + ", " + streamPushExcelDto.getApp() + "/" + streamPushExcelDto.getStream()+ " 平台信息重复");
|
||||||
streamPushExcelDto.getPlatformId() + "(同一组app+stream添加在了同一个平台下)");
|
|
||||||
return;
|
return;
|
||||||
}else {
|
}else {
|
||||||
|
if (pushMapInDb.get(streamPushExcelDto.getApp()+streamPushExcelDto.getStream()) != null) {
|
||||||
|
errorStreamList.add("行:" + rowIndex + ", " + streamPushExcelDto.getApp() + "/" + streamPushExcelDto.getStream()+ " 数据已存在");
|
||||||
|
return;
|
||||||
|
}
|
||||||
streamPushStreamSet.add(streamPushExcelDto.getApp()+streamPushExcelDto.getStream() + streamPushExcelDto.getPlatformId());
|
streamPushStreamSet.add(streamPushExcelDto.getApp()+streamPushExcelDto.getStream() + streamPushExcelDto.getPlatformId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,7 +180,7 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener<StreamPus
|
||||||
gBMap.clear();
|
gBMap.clear();
|
||||||
streamPushStreamSet.clear();
|
streamPushStreamSet.clear();
|
||||||
streamPushItemsForPlatform.clear();
|
streamPushItemsForPlatform.clear();
|
||||||
errorDataHandler.handle(errorStreamList, errorGBList);
|
errorDataHandler.handle(errorStreamList, errorInfoList);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveData(){
|
private void saveData(){
|
||||||
|
|
|
@ -3,7 +3,6 @@ package com.genersoft.iot.vmp.storager.dao;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.Device;
|
import com.genersoft.iot.vmp.gb28181.bean.Device;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
|
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannelInPlatform;
|
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannelInPlatform;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
|
||||||
import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
|
import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
|
||||||
import com.genersoft.iot.vmp.web.gb28181.dto.DeviceChannelExtend;
|
import com.genersoft.iot.vmp.web.gb28181.dto.DeviceChannelExtend;
|
||||||
import org.apache.ibatis.annotations.*;
|
import org.apache.ibatis.annotations.*;
|
||||||
|
@ -74,8 +73,8 @@ public interface DeviceChannelMapper {
|
||||||
"dc.device_id = #{deviceId} " +
|
"dc.device_id = #{deviceId} " +
|
||||||
" <if test='query != null'> AND (dc.channel_id LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%'))</if> " +
|
" <if test='query != null'> AND (dc.channel_id LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%'))</if> " +
|
||||||
" <if test='parentChannelId != null'> AND (dc.parent_id=#{parentChannelId} OR dc.civil_code = #{parentChannelId}) </if> " +
|
" <if test='parentChannelId != null'> AND (dc.parent_id=#{parentChannelId} OR dc.civil_code = #{parentChannelId}) </if> " +
|
||||||
" <if test='online == true' > AND dc.status=1</if>" +
|
" <if test='online == true' > AND dc.status= true</if>" +
|
||||||
" <if test='online == false' > AND dc.status=0</if>" +
|
" <if test='online == false' > AND dc.status= false</if>" +
|
||||||
" <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" +
|
" <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" +
|
||||||
" <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" +
|
" <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" +
|
||||||
"<if test='channelIds != null'> AND dc.channel_id in <foreach item='item' index='index' collection='channelIds' open='(' separator=',' close=')'>" +
|
"<if test='channelIds != null'> AND dc.channel_id in <foreach item='item' index='index' collection='channelIds' open='(' separator=',' close=')'>" +
|
||||||
|
@ -97,8 +96,8 @@ public interface DeviceChannelMapper {
|
||||||
" <if test='device_id != null'> AND dc.device_id = #{deviceId} </if> " +
|
" <if test='device_id != null'> AND dc.device_id = #{deviceId} </if> " +
|
||||||
" <if test='query != null'> AND (dc.channel_id LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " +
|
" <if test='query != null'> AND (dc.channel_id LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " +
|
||||||
" <if test='parentChannelId != null'> AND dc.parent_id=#{parentChannelId} </if> " +
|
" <if test='parentChannelId != null'> AND dc.parent_id=#{parentChannelId} </if> " +
|
||||||
" <if test='online == true' > AND dc.status=1</if>" +
|
" <if test='online == true' > AND dc.status=true</if>" +
|
||||||
" <if test='online == false' > AND dc.status=0</if>" +
|
" <if test='online == false' > AND dc.status=false</if>" +
|
||||||
" <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" +
|
" <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" +
|
||||||
" <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" +
|
" <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" +
|
||||||
"<if test='channelIds != null'> AND dc.channel_id in <foreach item='item' index='index' collection='channelIds' open='(' separator=',' close=')'>" +
|
"<if test='channelIds != null'> AND dc.channel_id in <foreach item='item' index='index' collection='channelIds' open='(' separator=',' close=')'>" +
|
||||||
|
@ -121,8 +120,8 @@ public interface DeviceChannelMapper {
|
||||||
" <if test='deviceId != null'> AND dc.device_id = #{deviceId} </if> " +
|
" <if test='deviceId != null'> AND dc.device_id = #{deviceId} </if> " +
|
||||||
" <if test='query != null'> AND (dc.channel_id LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " +
|
" <if test='query != null'> AND (dc.channel_id LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " +
|
||||||
" <if test='parentChannelId != null'> AND dc.parent_id=#{parentChannelId} </if> " +
|
" <if test='parentChannelId != null'> AND dc.parent_id=#{parentChannelId} </if> " +
|
||||||
" <if test='online == true' > AND dc.status=1</if>" +
|
" <if test='online == true' > AND dc.status=true</if>" +
|
||||||
" <if test='online == false' > AND dc.status=0</if>" +
|
" <if test='online == false' > AND dc.status=false</if>" +
|
||||||
" <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" +
|
" <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" +
|
||||||
" <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" +
|
" <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" +
|
||||||
"<if test='channelIds != null'> AND dc.channel_id in <foreach item='item' index='index' collection='channelIds' open='(' separator=',' close=')'>" +
|
"<if test='channelIds != null'> AND dc.channel_id in <foreach item='item' index='index' collection='channelIds' open='(' separator=',' close=')'>" +
|
||||||
|
@ -165,8 +164,8 @@ public interface DeviceChannelMapper {
|
||||||
" LEFT JOIN wvp_platform_gb_channel pgc on pgc.device_channel_id = dc.id " +
|
" LEFT JOIN wvp_platform_gb_channel pgc on pgc.device_channel_id = dc.id " +
|
||||||
" WHERE 1=1 " +
|
" WHERE 1=1 " +
|
||||||
" <if test='query != null'> AND (dc.channel_id LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%'))</if> " +
|
" <if test='query != null'> AND (dc.channel_id LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%'))</if> " +
|
||||||
" <if test='online == true' > AND dc.status=1</if> " +
|
" <if test='online == true' > AND dc.status=true</if> " +
|
||||||
" <if test='online == false' > AND dc.status=0</if> " +
|
" <if test='online == false' > AND dc.status=false</if> " +
|
||||||
" <if test='hasSubChannel!= null and has_sub_channel == true' > AND dc.sub_count > 0</if> " +
|
" <if test='hasSubChannel!= null and has_sub_channel == true' > AND dc.sub_count > 0</if> " +
|
||||||
" <if test='hasSubChannel!= null and has_sub_channel == false' > AND dc.sub_count = 0</if> " +
|
" <if test='hasSubChannel!= null and has_sub_channel == false' > AND dc.sub_count = 0</if> " +
|
||||||
" <if test='catalogId == null ' > AND dc.id not in (select device_channel_id from wvp_platform_gb_channel where platform_id=#{platformId} ) </if> " +
|
" <if test='catalogId == null ' > AND dc.id not in (select device_channel_id from wvp_platform_gb_channel where platform_id=#{platformId} ) </if> " +
|
||||||
|
@ -191,10 +190,10 @@ public interface DeviceChannelMapper {
|
||||||
@Select("SELECT * FROM wvp_device_channel WHERE channel_id=#{channelId}")
|
@Select("SELECT * FROM wvp_device_channel WHERE channel_id=#{channelId}")
|
||||||
List<DeviceChannel> queryChannelByChannelId( String channelId);
|
List<DeviceChannel> queryChannelByChannelId( String channelId);
|
||||||
|
|
||||||
@Update(value = {"UPDATE wvp_device_channel SET status=0 WHERE device_id=#{deviceId} AND channel_id=#{channelId}"})
|
@Update(value = {"UPDATE wvp_device_channel SET status=false WHERE device_id=#{deviceId} AND channel_id=#{channelId}"})
|
||||||
void offline(String deviceId, String channelId);
|
void offline(String deviceId, String channelId);
|
||||||
|
|
||||||
@Update(value = {"UPDATE wvp_device_channel SET status=0 WHERE device_id=#{deviceId}"})
|
@Update(value = {"UPDATE wvp_device_channel SET status=fasle WHERE device_id=#{deviceId}"})
|
||||||
void offlineByDeviceId(String deviceId);
|
void offlineByDeviceId(String deviceId);
|
||||||
|
|
||||||
@Insert("<script> " +
|
@Insert("<script> " +
|
||||||
|
@ -271,7 +270,7 @@ public interface DeviceChannelMapper {
|
||||||
"</script>")
|
"</script>")
|
||||||
int batchAddOrUpdate(List<DeviceChannel> addChannels);
|
int batchAddOrUpdate(List<DeviceChannel> addChannels);
|
||||||
|
|
||||||
@Update(value = {"UPDATE wvp_device_channel SET status=1 WHERE device_id=#{deviceId} AND channel_id=#{channelId}"})
|
@Update(value = {"UPDATE wvp_device_channel SET status=true WHERE device_id=#{deviceId} AND channel_id=#{channelId}"})
|
||||||
void online(String deviceId, String channelId);
|
void online(String deviceId, String channelId);
|
||||||
|
|
||||||
@Update({"<script>" +
|
@Update({"<script>" +
|
||||||
|
@ -283,7 +282,7 @@ public interface DeviceChannelMapper {
|
||||||
"<if test='item.manufacture != null'>, manufacture=#{item.manufacture}</if>" +
|
"<if test='item.manufacture != null'>, manufacture=#{item.manufacture}</if>" +
|
||||||
"<if test='item.model != null'>, model=#{item.model}</if>" +
|
"<if test='item.model != null'>, model=#{item.model}</if>" +
|
||||||
"<if test='item.owner != null'>, owner=#{item.owner}</if>" +
|
"<if test='item.owner != null'>, owner=#{item.owner}</if>" +
|
||||||
"<if test='item.civil_code != null'>, civil_code=#{item.civilCode}</if>" +
|
"<if test='item.civilCode != null'>, civil_code=#{item.civilCode}</if>" +
|
||||||
"<if test='item.block != null'>, block=#{item.block}</if>" +
|
"<if test='item.block != null'>, block=#{item.block}</if>" +
|
||||||
"<if test='item.subCount != null'>, sub_count=#{item.subCount}</if>" +
|
"<if test='item.subCount != null'>, sub_count=#{item.subCount}</if>" +
|
||||||
"<if test='item.address != null'>, address=#{item.address}</if>" +
|
"<if test='item.address != null'>, address=#{item.address}</if>" +
|
||||||
|
@ -317,7 +316,7 @@ public interface DeviceChannelMapper {
|
||||||
int batchUpdate(List<DeviceChannel> updateChannels);
|
int batchUpdate(List<DeviceChannel> updateChannels);
|
||||||
|
|
||||||
|
|
||||||
@Select("SELECT * FROM wvp_device_channel WHERE device_id=#{deviceId} AND status=1")
|
@Select("SELECT * FROM wvp_device_channel WHERE device_id=#{deviceId} AND status=true")
|
||||||
List<DeviceChannel> queryOnlineChannelsByDeviceId(String deviceId);
|
List<DeviceChannel> queryOnlineChannelsByDeviceId(String deviceId);
|
||||||
|
|
||||||
@Delete(value = {" <script>" +
|
@Delete(value = {" <script>" +
|
||||||
|
@ -406,9 +405,6 @@ public interface DeviceChannelMapper {
|
||||||
List<DeviceChannel> queryAllChannels(String deviceId);
|
List<DeviceChannel> queryAllChannels(String deviceId);
|
||||||
|
|
||||||
|
|
||||||
@Select("select count(1) as total, sum(status) as online from wvp_device_channel")
|
|
||||||
ResourceBaceInfo getOverview();
|
|
||||||
|
|
||||||
@Select("select channelId" +
|
@Select("select channelId" +
|
||||||
", device_id" +
|
", device_id" +
|
||||||
", latitude" +
|
", latitude" +
|
||||||
|
@ -420,7 +416,7 @@ public interface DeviceChannelMapper {
|
||||||
"from wvp_device_channel where device_id = #{deviceId} " +
|
"from wvp_device_channel where device_id = #{deviceId} " +
|
||||||
"and latitude != 0 " +
|
"and latitude != 0 " +
|
||||||
"and longitude != 0 " +
|
"and longitude != 0 " +
|
||||||
"and(latitude_gcj02=0orlatitude_wgs84=0orlongitude_wgs84= 0 or longitude_gcj02 = 0)")
|
"and(latitude_gcj02=0 or latitude_wgs84=0 or longitude_wgs84= 0 or longitude_gcj02 = 0)")
|
||||||
List<DeviceChannel> getChannelsWithoutTransform(String deviceId);
|
List<DeviceChannel> getChannelsWithoutTransform(String deviceId);
|
||||||
|
|
||||||
@Select("select de.* from wvp_device de left join wvp_device_channel dc on de.device_id = dc.deviceId where dc.channel_id=#{channelId}")
|
@Select("select de.* from wvp_device de left join wvp_device_channel dc on de.device_id = dc.deviceId where dc.channel_id=#{channelId}")
|
||||||
|
@ -436,15 +432,22 @@ public interface DeviceChannelMapper {
|
||||||
|
|
||||||
@Update({"<script>" +
|
@Update({"<script>" +
|
||||||
"<foreach collection='channels' item='item' separator=';'>" +
|
"<foreach collection='channels' item='item' separator=';'>" +
|
||||||
"UPDATE wvp_device_channel SET status=1 WHERE device_id=#{item.deviceId} AND channel_id=#{item.channelId}" +
|
"UPDATE wvp_device_channel SET status=true WHERE device_id=#{item.deviceId} AND channel_id=#{item.channelId}" +
|
||||||
"</foreach>" +
|
"</foreach>" +
|
||||||
"</script>"})
|
"</script>"})
|
||||||
int batchOnline(List<DeviceChannel> channels);
|
int batchOnline(List<DeviceChannel> channels);
|
||||||
|
|
||||||
@Update({"<script>" +
|
@Update({"<script>" +
|
||||||
"<foreach collection='channels' item='item' separator=';'>" +
|
"<foreach collection='channels' item='item' separator=';'>" +
|
||||||
"UPDATE wvp_device_channel SET status=0 WHERE device_id=#{item.deviceId} AND channel_id=#{item.channelId}" +
|
"UPDATE wvp_device_channel SET status= false WHERE device_id=#{item.deviceId} AND channel_id=#{item.channelId}" +
|
||||||
"</foreach>" +
|
"</foreach>" +
|
||||||
"</script>"})
|
"</script>"})
|
||||||
int batchOffline(List<DeviceChannel> channels);
|
int batchOffline(List<DeviceChannel> channels);
|
||||||
|
|
||||||
|
|
||||||
|
@Select("select count(1) from wvp_device_channel where status = true")
|
||||||
|
int getOnlineCount();
|
||||||
|
|
||||||
|
@Select("select count(1) from wvp_device_channel")
|
||||||
|
int getAllChannelCount();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.genersoft.iot.vmp.storager.dao;
|
package com.genersoft.iot.vmp.storager.dao;
|
||||||
|
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.Device;
|
import com.genersoft.iot.vmp.gb28181.bean.Device;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
|
||||||
import org.apache.ibatis.annotations.*;
|
import org.apache.ibatis.annotations.*;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@ -162,8 +161,10 @@ public interface DeviceMapper {
|
||||||
"tree_type,"+
|
"tree_type,"+
|
||||||
"online,"+
|
"online,"+
|
||||||
"media_server_id,"+
|
"media_server_id,"+
|
||||||
"(SELECT count(0) FROM wvp_device_channel WHERE device_id=de.device_id) as channel_count FROM wvp_device de" +
|
"(SELECT count(0) FROM wvp_device_channel WHERE device_id=de.device_id) as channel_count " +
|
||||||
|
"FROM wvp_device de" +
|
||||||
"<if test=\"online != null\"> where online=${online}</if>"+
|
"<if test=\"online != null\"> where online=${online}</if>"+
|
||||||
|
" order by create_time desc "+
|
||||||
" </script>"
|
" </script>"
|
||||||
)
|
)
|
||||||
List<Device> getDevices(Boolean online);
|
List<Device> getDevices(Boolean online);
|
||||||
|
@ -288,9 +289,6 @@ public interface DeviceMapper {
|
||||||
")")
|
")")
|
||||||
void addCustomDevice(Device device);
|
void addCustomDevice(Device device);
|
||||||
|
|
||||||
@Select("select count(1) as total, sum(online) as online FROM wvp_device")
|
|
||||||
ResourceBaceInfo getOverview();
|
|
||||||
|
|
||||||
@Select("select * FROM wvp_device")
|
@Select("select * FROM wvp_device")
|
||||||
List<Device> getAll();
|
List<Device> getAll();
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,7 @@ public interface GbStreamMapper {
|
||||||
void batchDelForGbStream(List<GbStream> gbStreams);
|
void batchDelForGbStream(List<GbStream> gbStreams);
|
||||||
|
|
||||||
@Insert("<script> " +
|
@Insert("<script> " +
|
||||||
"INSERT IGNORE into wvp_gb_stream " +
|
"INSERT into wvp_gb_stream " +
|
||||||
"(app, stream, gb_id, name, " +
|
"(app, stream, gb_id, name, " +
|
||||||
"longitude, latitude, stream_type,media_server_id,create_time)" +
|
"longitude, latitude, stream_type,media_server_id,create_time)" +
|
||||||
"values " +
|
"values " +
|
||||||
|
@ -127,7 +127,7 @@ public interface GbStreamMapper {
|
||||||
"#{item.mediaServerId}, #{item.createTime}) "+
|
"#{item.mediaServerId}, #{item.createTime}) "+
|
||||||
"</foreach> " +
|
"</foreach> " +
|
||||||
"</script>")
|
"</script>")
|
||||||
@Options(useGeneratedKeys = true, keyProperty = "gbStreamId", keyColumn = "gbStreamId")
|
@Options(useGeneratedKeys = true, keyProperty = "gbStreamId", keyColumn = "gb_stream_id")
|
||||||
void batchAdd(List<StreamPushItem> subList);
|
void batchAdd(List<StreamPushItem> subList);
|
||||||
|
|
||||||
@Update({"<script>" +
|
@Update({"<script>" +
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.genersoft.iot.vmp.storager.dao;
|
package com.genersoft.iot.vmp.storager.dao;
|
||||||
|
|
||||||
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
|
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
|
||||||
import org.apache.ibatis.annotations.*;
|
import org.apache.ibatis.annotations.*;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@ -78,5 +78,12 @@ public interface StreamProxyMapper {
|
||||||
List<StreamProxyItem> selectAutoRemoveItemByMediaServerId(String mediaServerId);
|
List<StreamProxyItem> selectAutoRemoveItemByMediaServerId(String mediaServerId);
|
||||||
|
|
||||||
@Select("select count(1) as total, sum(status) as online from wvp_stream_proxy")
|
@Select("select count(1) as total, sum(status) as online from wvp_stream_proxy")
|
||||||
ResourceBaceInfo getOverview();
|
ResourceBaseInfo getOverview();
|
||||||
|
|
||||||
|
@Select("select count(1) from wvp_stream_proxy")
|
||||||
|
|
||||||
|
int getAllCount();
|
||||||
|
|
||||||
|
@Select("select count(1) from wvp_stream_proxy where status = true")
|
||||||
|
int getOnline();
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ package com.genersoft.iot.vmp.storager.dao;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.GbStream;
|
import com.genersoft.iot.vmp.gb28181.bean.GbStream;
|
||||||
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
|
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
|
||||||
import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis;
|
import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
|
||||||
import org.apache.ibatis.annotations.*;
|
import org.apache.ibatis.annotations.*;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@ -89,7 +88,7 @@ public interface StreamPushMapper {
|
||||||
StreamPushItem selectOne(String app, String stream);
|
StreamPushItem selectOne(String app, String stream);
|
||||||
|
|
||||||
@Insert("<script>" +
|
@Insert("<script>" +
|
||||||
"Insert IGNORE INTO wvp_stream_push (app, stream, total_reader_count, origin_type, origin_type_str, " +
|
"Insert INTO wvp_stream_push (app, stream, total_reader_count, origin_type, origin_type_str, " +
|
||||||
"create_time, alive_second, media_server_id, status, push_ing) " +
|
"create_time, alive_second, media_server_id, status, push_ing) " +
|
||||||
"VALUES <foreach collection='streamPushItems' item='item' index='index' separator=','>" +
|
"VALUES <foreach collection='streamPushItems' item='item' index='index' separator=','>" +
|
||||||
"( #{item.app}, #{item.stream}, #{item.totalReaderCount}, #{item.originType}, " +
|
"( #{item.app}, #{item.stream}, #{item.totalReaderCount}, #{item.originType}, " +
|
||||||
|
@ -171,9 +170,20 @@ public interface StreamPushMapper {
|
||||||
@Select("SELECT CONCAT(app,stream) from wvp_gb_stream")
|
@Select("SELECT CONCAT(app,stream) from wvp_gb_stream")
|
||||||
List<String> getAllAppAndStream();
|
List<String> getAllAppAndStream();
|
||||||
|
|
||||||
|
@Select("select count(1) from wvp_stream_push ")
|
||||||
|
int getAllCount();
|
||||||
|
|
||||||
@Select(value = {" <script>" +
|
@Select(value = {" <script>" +
|
||||||
" <if test='pushIngAsOnline == true'> select count(1) as total, sum(push_ing) as online from wvp_stream_push </if>" +
|
" <if test='pushIngAsOnline == true'> select count(1) from wvp_stream_push where push_ing = true </if>" +
|
||||||
" <if test='pushIngAsOnline == false'> select count(1) as total, sum(status) as online from wvp_stream_push </if>" +
|
" <if test='pushIngAsOnline == false'> select count(1)from wvp_stream_push where status = true </if>" +
|
||||||
" </script>"})
|
" </script>"})
|
||||||
ResourceBaceInfo getOverview(boolean pushIngAsOnline);
|
int getAllOnline(Boolean usePushingAsStatus);
|
||||||
|
|
||||||
|
@Select("<script> " +
|
||||||
|
"select app, stream from wvp_stream_push where (app, stream) in " +
|
||||||
|
"<foreach collection='streamPushItems' item='item' separator=','>" +
|
||||||
|
"(#{item.app}, #{item.stream}) " +
|
||||||
|
"</foreach>" +
|
||||||
|
"</script>")
|
||||||
|
List<StreamPushItem> getListIn(List<StreamPushItem> streamPushItems);
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,6 +123,9 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
||||||
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
|
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
|
||||||
// 数据去重
|
// 数据去重
|
||||||
List<DeviceChannel> channels = new ArrayList<>();
|
List<DeviceChannel> channels = new ArrayList<>();
|
||||||
|
|
||||||
|
List<DeviceChannel> updateChannels = new ArrayList<>();
|
||||||
|
List<DeviceChannel> addChannels = new ArrayList<>();
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
Map<String, Integer> subContMap = new HashMap<>();
|
Map<String, Integer> subContMap = new HashMap<>();
|
||||||
if (deviceChannelList.size() > 0) {
|
if (deviceChannelList.size() > 0) {
|
||||||
|
@ -131,18 +134,22 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
||||||
for (DeviceChannel deviceChannel : deviceChannelList) {
|
for (DeviceChannel deviceChannel : deviceChannelList) {
|
||||||
if (!gbIdSet.contains(deviceChannel.getChannelId())) {
|
if (!gbIdSet.contains(deviceChannel.getChannelId())) {
|
||||||
gbIdSet.add(deviceChannel.getChannelId());
|
gbIdSet.add(deviceChannel.getChannelId());
|
||||||
|
deviceChannel.setUpdateTime(DateUtil.getNow());
|
||||||
if (allChannelMap.containsKey(deviceChannel.getChannelId())) {
|
if (allChannelMap.containsKey(deviceChannel.getChannelId())) {
|
||||||
deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId());
|
deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId());
|
||||||
deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).isHasAudio());
|
deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).isHasAudio());
|
||||||
if (allChannelMap.get(deviceChannel.getChannelId()).getStatus() !=deviceChannel.getStatus()){
|
if (allChannelMap.get(deviceChannel.getChannelId()).isStatus() !=deviceChannel.isStatus()){
|
||||||
List<String> strings = platformChannelMapper.queryParentPlatformByChannelId(deviceChannel.getChannelId());
|
List<String> strings = platformChannelMapper.queryParentPlatformByChannelId(deviceChannel.getChannelId());
|
||||||
if (!CollectionUtils.isEmpty(strings)){
|
if (!CollectionUtils.isEmpty(strings)){
|
||||||
strings.forEach(platformId->{
|
strings.forEach(platformId->{
|
||||||
eventPublisher.catalogEventPublish(platformId, deviceChannel, deviceChannel.getStatus()==1?CatalogEvent.ON:CatalogEvent.OFF);
|
eventPublisher.catalogEventPublish(platformId, deviceChannel, deviceChannel.isStatus()?CatalogEvent.ON:CatalogEvent.OFF);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
updateChannels.add(deviceChannel);
|
||||||
|
}else {
|
||||||
|
deviceChannel.setCreateTime(DateUtil.getNow());
|
||||||
|
addChannels.add(deviceChannel);
|
||||||
}
|
}
|
||||||
channels.add(deviceChannel);
|
channels.add(deviceChannel);
|
||||||
if (!ObjectUtils.isEmpty(deviceChannel.getParentId())) {
|
if (!ObjectUtils.isEmpty(deviceChannel.getParentId())) {
|
||||||
|
@ -175,21 +182,36 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
int cleanChannelsResult = deviceChannelMapper.cleanChannelsNotInList(deviceId, channels);
|
int cleanChannelsResult = deviceChannelMapper.cleanChannelsNotInList(deviceId, channels);
|
||||||
|
|
||||||
int limitCount = 300;
|
int limitCount = 300;
|
||||||
boolean result = cleanChannelsResult < 0;
|
boolean result = cleanChannelsResult < 0;
|
||||||
if (!result && channels.size() > 0) {
|
if (!result && addChannels.size() > 0) {
|
||||||
if (channels.size() > limitCount) {
|
if (addChannels.size() > limitCount) {
|
||||||
for (int i = 0; i < channels.size(); i += limitCount) {
|
for (int i = 0; i < addChannels.size(); i += limitCount) {
|
||||||
int toIndex = i + limitCount;
|
int toIndex = i + limitCount;
|
||||||
if (i + limitCount > channels.size()) {
|
if (i + limitCount > addChannels.size()) {
|
||||||
toIndex = channels.size();
|
toIndex = addChannels.size();
|
||||||
}
|
}
|
||||||
result = result || deviceChannelMapper.batchAddOrUpdate(channels.subList(i, toIndex)) < 0;
|
result = result || deviceChannelMapper.batchAdd(addChannels.subList(i, toIndex)) < 0;
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
result = result || deviceChannelMapper.batchAddOrUpdate(channels) < 0;
|
result = result || deviceChannelMapper.batchAdd(addChannels) < 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!result && updateChannels.size() > 0) {
|
||||||
|
if (updateChannels.size() > limitCount) {
|
||||||
|
for (int i = 0; i < updateChannels.size(); i += limitCount) {
|
||||||
|
int toIndex = i + limitCount;
|
||||||
|
if (i + limitCount > updateChannels.size()) {
|
||||||
|
toIndex = updateChannels.size();
|
||||||
|
}
|
||||||
|
result = result || deviceChannelMapper.batchUpdate(updateChannels.subList(i, toIndex)) < 0;
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
result = result || deviceChannelMapper.batchUpdate(updateChannels) < 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (result) {
|
if (result) {
|
||||||
//事务回滚
|
//事务回滚
|
||||||
dataSourceTransactionManager.rollback(transactionStatus);
|
dataSourceTransactionManager.rollback(transactionStatus);
|
||||||
|
@ -919,7 +941,7 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
||||||
deviceChannel.setLatitude(0.0);
|
deviceChannel.setLatitude(0.0);
|
||||||
deviceChannel.setDeviceId(platform.getDeviceGBId());
|
deviceChannel.setDeviceId(platform.getDeviceGBId());
|
||||||
deviceChannel.setManufacture("wvp-pro");
|
deviceChannel.setManufacture("wvp-pro");
|
||||||
deviceChannel.setStatus(1);
|
deviceChannel.setStatus(true);
|
||||||
deviceChannel.setParental(1);
|
deviceChannel.setParental(1);
|
||||||
|
|
||||||
deviceChannel.setRegisterWay(1);
|
deviceChannel.setRegisterWay(1);
|
||||||
|
|
|
@ -1,9 +1,17 @@
|
||||||
package com.genersoft.iot.vmp.vmanager.bean;
|
package com.genersoft.iot.vmp.vmanager.bean;
|
||||||
|
|
||||||
public class ResourceBaceInfo {
|
public class ResourceBaseInfo {
|
||||||
private int total;
|
private int total;
|
||||||
private int online;
|
private int online;
|
||||||
|
|
||||||
|
public ResourceBaseInfo() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ResourceBaseInfo(int total, int online) {
|
||||||
|
this.total = total;
|
||||||
|
this.online = online;
|
||||||
|
}
|
||||||
|
|
||||||
public int getTotal() {
|
public int getTotal() {
|
||||||
return total;
|
return total;
|
||||||
}
|
}
|
|
@ -2,40 +2,40 @@ package com.genersoft.iot.vmp.vmanager.bean;
|
||||||
|
|
||||||
public class ResourceInfo {
|
public class ResourceInfo {
|
||||||
|
|
||||||
private ResourceBaceInfo device;
|
private ResourceBaseInfo device;
|
||||||
private ResourceBaceInfo channel;
|
private ResourceBaseInfo channel;
|
||||||
private ResourceBaceInfo push;
|
private ResourceBaseInfo push;
|
||||||
private ResourceBaceInfo proxy;
|
private ResourceBaseInfo proxy;
|
||||||
|
|
||||||
public ResourceBaceInfo getDevice() {
|
public ResourceBaseInfo getDevice() {
|
||||||
return device;
|
return device;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDevice(ResourceBaceInfo device) {
|
public void setDevice(ResourceBaseInfo device) {
|
||||||
this.device = device;
|
this.device = device;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResourceBaceInfo getChannel() {
|
public ResourceBaseInfo getChannel() {
|
||||||
return channel;
|
return channel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setChannel(ResourceBaceInfo channel) {
|
public void setChannel(ResourceBaseInfo channel) {
|
||||||
this.channel = channel;
|
this.channel = channel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResourceBaceInfo getPush() {
|
public ResourceBaseInfo getPush() {
|
||||||
return push;
|
return push;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPush(ResourceBaceInfo push) {
|
public void setPush(ResourceBaseInfo push) {
|
||||||
this.push = push;
|
this.push = push;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResourceBaceInfo getProxy() {
|
public ResourceBaseInfo getProxy() {
|
||||||
return proxy;
|
return proxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProxy(ResourceBaceInfo proxy) {
|
public void setProxy(ResourceBaseInfo proxy) {
|
||||||
this.proxy = proxy;
|
this.proxy = proxy;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ import com.genersoft.iot.vmp.service.*;
|
||||||
import com.genersoft.iot.vmp.service.bean.MediaServerLoad;
|
import com.genersoft.iot.vmp.service.bean.MediaServerLoad;
|
||||||
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
|
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.ResourceInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.ResourceInfo;
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.SystemConfigInfo;
|
import com.genersoft.iot.vmp.vmanager.bean.SystemConfigInfo;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
@ -251,13 +251,13 @@ public class ServerController {
|
||||||
@Operation(summary = "获取负载信息")
|
@Operation(summary = "获取负载信息")
|
||||||
public ResourceInfo getResourceInfo() {
|
public ResourceInfo getResourceInfo() {
|
||||||
ResourceInfo result = new ResourceInfo();
|
ResourceInfo result = new ResourceInfo();
|
||||||
ResourceBaceInfo deviceInfo = deviceService.getOverview();
|
ResourceBaseInfo deviceInfo = deviceService.getOverview();
|
||||||
result.setDevice(deviceInfo);
|
result.setDevice(deviceInfo);
|
||||||
ResourceBaceInfo channelInfo = channelService.getOverview();
|
ResourceBaseInfo channelInfo = channelService.getOverview();
|
||||||
result.setChannel(channelInfo);
|
result.setChannel(channelInfo);
|
||||||
ResourceBaceInfo pushInfo = pushService.getOverview();
|
ResourceBaseInfo pushInfo = pushService.getOverview();
|
||||||
result.setPush(pushInfo);
|
result.setPush(pushInfo);
|
||||||
ResourceBaceInfo proxyInfo = proxyService.getOverview();
|
ResourceBaseInfo proxyInfo = proxyService.getOverview();
|
||||||
result.setProxy(proxyInfo);
|
result.setProxy(proxyInfo);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -113,7 +113,7 @@ public class ApiStreamController {
|
||||||
result.put("error","channel[ " + code + " ]未找到");
|
result.put("error","channel[ " + code + " ]未找到");
|
||||||
resultDeferredResult.setResult(result);
|
resultDeferredResult.setResult(result);
|
||||||
return resultDeferredResult;
|
return resultDeferredResult;
|
||||||
}else if (deviceChannel.getStatus() == 0) {
|
}else if (!deviceChannel.isStatus()) {
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
result.put("error","channel[ " + code + " ]offline");
|
result.put("error","channel[ " + code + " ]offline");
|
||||||
resultDeferredResult.setResult(result);
|
resultDeferredResult.setResult(result);
|
||||||
|
|
Loading…
Reference in New Issue