Commit 5d400804683866d57136331d257b6e282f280cb7

Authored by 648540858
1 parent d8493524

优化部分sql实现

Showing 26 changed files with 191 additions and 115 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceChannel.java
@@ -172,7 +172,7 @@ public class DeviceChannel { @@ -172,7 +172,7 @@ public class DeviceChannel {
172 * 遇到过NVR下的IPC下发信令可以推流, 但是 Status 响应 OFF 172 * 遇到过NVR下的IPC下发信令可以推流, 但是 Status 响应 OFF
173 */ 173 */
174 @Schema(description = "在线/离线, 1在线,0离线") 174 @Schema(description = "在线/离线, 1在线,0离线")
175 - private int status; 175 + private boolean status;
176 176
177 /** 177 /**
178 * 经度 178 * 经度
@@ -455,11 +455,11 @@ public class DeviceChannel { @@ -455,11 +455,11 @@ public class DeviceChannel {
455 this.PTZTypeText = PTZTypeText; 455 this.PTZTypeText = PTZTypeText;
456 } 456 }
457 457
458 - public int getStatus() { 458 + public boolean isStatus() {
459 return status; 459 return status;
460 } 460 }
461 461
462 - public void setStatus(int status) { 462 + public void setStatus(boolean status) {
463 this.status = status; 463 this.status = status;
464 } 464 }
465 465
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java
@@ -66,7 +66,7 @@ public interface ISIPCommanderForPlatform { @@ -66,7 +66,7 @@ public interface ISIPCommanderForPlatform {
66 * @param fromTag 66 * @param fromTag
67 * @return 67 * @return
68 */ 68 */
69 - void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,int status) throws SipException, InvalidArgumentException, ParseException; 69 + void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,boolean status) throws SipException, InvalidArgumentException, ParseException;
70 70
71 /** 71 /**
72 * 向上级回复移动位置订阅消息 72 * 向上级回复移动位置订阅消息
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
@@ -221,7 +221,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -221,7 +221,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
221 if (!channel.getChannelId().equals(parentPlatform.getDeviceGBId())) { 221 if (!channel.getChannelId().equals(parentPlatform.getDeviceGBId())) {
222 catalogXml.append("<Parental>" + channel.getParental() + "</Parental>\r\n"); 222 catalogXml.append("<Parental>" + channel.getParental() + "</Parental>\r\n");
223 if (channel.getParental() == 0) { 223 if (channel.getParental() == 0) {
224 - catalogXml.append("<Status>" + (channel.getStatus() == 0 ? "OFF" : "ON") + "</Status>\r\n"); 224 + catalogXml.append("<Status>" + (channel.isStatus() ? "ON" : "OFF") + "</Status>\r\n");
225 } 225 }
226 } 226 }
227 if (channel.getParental() == 0) { 227 if (channel.getParental() == 0) {
@@ -250,7 +250,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -250,7 +250,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
250 catalogXml.append("<Port>" + channel.getPort() + "</Port>\r\n"); 250 catalogXml.append("<Port>" + channel.getPort() + "</Port>\r\n");
251 catalogXml.append("<Password>" + channel.getPort() + "</Password>\r\n"); 251 catalogXml.append("<Password>" + channel.getPort() + "</Password>\r\n");
252 catalogXml.append("<PTZType>" + channel.getPTZType() + "</PTZType>\r\n"); 252 catalogXml.append("<PTZType>" + channel.getPTZType() + "</PTZType>\r\n");
253 - catalogXml.append("<Status>" + (channel.getStatus() == 1?"ON":"OFF") + "</Status>\r\n"); 253 + catalogXml.append("<Status>" + (channel.isStatus() ? "ON":"OFF") + "</Status>\r\n");
254 catalogXml.append("<Longitude>" + 254 catalogXml.append("<Longitude>" +
255 (channel.getLongitudeWgs84() != 0? channel.getLongitudeWgs84():channel.getLongitude()) 255 (channel.getLongitudeWgs84() != 0? channel.getLongitudeWgs84():channel.getLongitude())
256 + "</Longitude>\r\n"); 256 + "</Longitude>\r\n");
@@ -377,11 +377,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -377,11 +377,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
377 * @return 377 * @return
378 */ 378 */
379 @Override 379 @Override
380 - public void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,int status) throws SipException, InvalidArgumentException, ParseException { 380 + public void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,boolean status) throws SipException, InvalidArgumentException, ParseException {
381 if (parentPlatform == null) { 381 if (parentPlatform == null) {
382 return ; 382 return ;
383 } 383 }
384 - String statusStr = (status==1)?"ONLINE":"OFFLINE"; 384 + String statusStr = (status)?"ONLINE":"OFFLINE";
385 String characterSet = parentPlatform.getCharacterSet(); 385 String characterSet = parentPlatform.getCharacterSet();
386 StringBuffer deviceStatusXml = new StringBuffer(600); 386 StringBuffer deviceStatusXml = new StringBuffer(600);
387 deviceStatusXml.append("<?xml version=\"1.0\" encoding=\"" + characterSet + "\"?>\r\n") 387 deviceStatusXml.append("<?xml version=\"1.0\" encoding=\"" + characterSet + "\"?>\r\n")
@@ -542,7 +542,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -542,7 +542,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
542 catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n") 542 catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n")
543 .append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n") 543 .append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n")
544 .append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n") 544 .append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n")
545 - .append("<Status>" + (channel.getStatus() == 0 ? "OFF" : "ON") + "</Status>\r\n"); 545 + .append("<Status>" + (channel.isStatus() ? "ON" : "OFF") + "</Status>\r\n");
546 546
547 if (channel.getChannelType() != 2) { // 业务分组/虚拟组织/行政区划 不设置以下属性 547 if (channel.getChannelType() != 2) { // 业务分组/虚拟组织/行政区划 不设置以下属性
548 catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n") 548 catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n")
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java
@@ -77,7 +77,7 @@ public class DeviceStatusQueryMessageHandler extends SIPRequestProcessorParent i @@ -77,7 +77,7 @@ public class DeviceStatusQueryMessageHandler extends SIPRequestProcessorParent i
77 return; 77 return;
78 } 78 }
79 try { 79 try {
80 - cmderFroPlatform.deviceStatusResponse(parentPlatform,channelId, sn, fromHeader.getTag(),deviceChannel.getStatus()); 80 + cmderFroPlatform.deviceStatusResponse(parentPlatform,channelId, sn, fromHeader.getTag(),deviceChannel.isStatus());
81 } catch (SipException | InvalidArgumentException | ParseException e) { 81 } catch (SipException | InvalidArgumentException | ParseException e) {
82 logger.error("[命令发送失败] 国标级联 DeviceStatus查询回复: {}", e.getMessage()); 82 logger.error("[命令发送失败] 国标级联 DeviceStatus查询回复: {}", e.getMessage());
83 } 83 }
src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java
@@ -255,7 +255,7 @@ public class XmlUtil { @@ -255,7 +255,7 @@ public class XmlUtil {
255 } 255 }
256 if (channelType.equals(ChannelType.CivilCode)) { 256 if (channelType.equals(ChannelType.CivilCode)) {
257 // 行政区划其他字段没必要识别了,默认在线即可 257 // 行政区划其他字段没必要识别了,默认在线即可
258 - deviceChannel.setStatus(1); 258 + deviceChannel.setStatus(true);
259 deviceChannel.setParental(1); 259 deviceChannel.setParental(1);
260 deviceChannel.setCreateTime(DateUtil.getNow()); 260 deviceChannel.setCreateTime(DateUtil.getNow());
261 deviceChannel.setUpdateTime(DateUtil.getNow()); 261 deviceChannel.setUpdateTime(DateUtil.getNow());
@@ -309,7 +309,7 @@ public class XmlUtil { @@ -309,7 +309,7 @@ public class XmlUtil {
309 deviceChannel.setBusinessGroupId(businessGroupID); 309 deviceChannel.setBusinessGroupId(businessGroupID);
310 if (channelType.equals(ChannelType.BusinessGroup) || channelType.equals(ChannelType.VirtualOrganization)) { 310 if (channelType.equals(ChannelType.BusinessGroup) || channelType.equals(ChannelType.VirtualOrganization)) {
311 // 业务分组和虚拟组织 其他字段没必要识别了,默认在线即可 311 // 业务分组和虚拟组织 其他字段没必要识别了,默认在线即可
312 - deviceChannel.setStatus(1); 312 + deviceChannel.setStatus(true);
313 deviceChannel.setParental(1); 313 deviceChannel.setParental(1);
314 deviceChannel.setCreateTime(DateUtil.getNow()); 314 deviceChannel.setCreateTime(DateUtil.getNow());
315 deviceChannel.setUpdateTime(DateUtil.getNow()); 315 deviceChannel.setUpdateTime(DateUtil.getNow());
@@ -322,13 +322,13 @@ public class XmlUtil { @@ -322,13 +322,13 @@ public class XmlUtil {
322 String status = statusElement.getTextTrim().trim(); 322 String status = statusElement.getTextTrim().trim();
323 // ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR的兼容性处理 323 // ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR的兼容性处理
324 if (status.equals("ON") || status.equals("On") || status.equals("ONLINE") || status.equals("OK")) { 324 if (status.equals("ON") || status.equals("On") || status.equals("ONLINE") || status.equals("OK")) {
325 - deviceChannel.setStatus(1); 325 + deviceChannel.setStatus(true);
326 } 326 }
327 if (status.equals("OFF") || status.equals("Off") || status.equals("OFFLINE")) { 327 if (status.equals("OFF") || status.equals("Off") || status.equals("OFFLINE")) {
328 - deviceChannel.setStatus(0); 328 + deviceChannel.setStatus(false);
329 } 329 }
330 }else { 330 }else {
331 - deviceChannel.setStatus(1); 331 + deviceChannel.setStatus(true);
332 } 332 }
333 // 识别自带的目录标识 333 // 识别自带的目录标识
334 String parental = XmlUtil.getText(itemDevice, "Parental"); 334 String parental = XmlUtil.getText(itemDevice, "Parental");
src/main/java/com/genersoft/iot/vmp/service/IDeviceChannelService.java
@@ -2,7 +2,7 @@ package com.genersoft.iot.vmp.service; @@ -2,7 +2,7 @@ package com.genersoft.iot.vmp.service;
2 2
3 import com.genersoft.iot.vmp.gb28181.bean.Device; 3 import com.genersoft.iot.vmp.gb28181.bean.Device;
4 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; 4 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
5 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; 5 +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
6 import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce; 6 import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
7 7
8 import java.util.List; 8 import java.util.List;
@@ -38,7 +38,7 @@ public interface IDeviceChannelService { @@ -38,7 +38,7 @@ public interface IDeviceChannelService {
38 * 获取统计信息 38 * 获取统计信息
39 * @return 39 * @return
40 */ 40 */
41 - ResourceBaceInfo getOverview(); 41 + ResourceBaseInfo getOverview();
42 42
43 /** 43 /**
44 * 查询所有未分配的通道 44 * 查询所有未分配的通道
src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java
@@ -5,7 +5,7 @@ import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; @@ -5,7 +5,7 @@ import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
5 import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo; 5 import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo;
6 import com.genersoft.iot.vmp.gb28181.bean.SyncStatus; 6 import com.genersoft.iot.vmp.gb28181.bean.SyncStatus;
7 import com.genersoft.iot.vmp.vmanager.bean.BaseTree; 7 import com.genersoft.iot.vmp.vmanager.bean.BaseTree;
8 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; 8 +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
9 9
10 import java.util.List; 10 import java.util.List;
11 11
@@ -162,7 +162,7 @@ public interface IDeviceService { @@ -162,7 +162,7 @@ public interface IDeviceService {
162 * 获取统计信息 162 * 获取统计信息
163 * @return 163 * @return
164 */ 164 */
165 - ResourceBaceInfo getOverview(); 165 + ResourceBaseInfo getOverview();
166 166
167 /** 167 /**
168 * 获取所有设备 168 * 获取所有设备
src/main/java/com/genersoft/iot/vmp/service/IStreamProxyService.java
@@ -4,7 +4,7 @@ import com.alibaba.fastjson2.JSONObject; @@ -4,7 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
4 import com.genersoft.iot.vmp.common.StreamInfo; 4 import com.genersoft.iot.vmp.common.StreamInfo;
5 import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; 5 import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
6 import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; 6 import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
7 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; 7 +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
8 import com.github.pagehelper.PageInfo; 8 import com.github.pagehelper.PageInfo;
9 9
10 public interface IStreamProxyService { 10 public interface IStreamProxyService {
@@ -108,6 +108,6 @@ public interface IStreamProxyService { @@ -108,6 +108,6 @@ public interface IStreamProxyService {
108 * 获取统计信息 108 * 获取统计信息
109 * @return 109 * @return
110 */ 110 */
111 - ResourceBaceInfo getOverview(); 111 + ResourceBaseInfo getOverview();
112 112
113 } 113 }
src/main/java/com/genersoft/iot/vmp/service/IStreamPushService.java
@@ -5,7 +5,7 @@ import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam; @@ -5,7 +5,7 @@ import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
5 import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; 5 import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
6 import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; 6 import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
7 import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis; 7 import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis;
8 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; 8 +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
9 import com.github.pagehelper.PageInfo; 9 import com.github.pagehelper.PageInfo;
10 10
11 import java.util.List; 11 import java.util.List;
@@ -113,5 +113,5 @@ public interface IStreamPushService { @@ -113,5 +113,5 @@ public interface IStreamPushService {
113 * 获取统计信息 113 * 获取统计信息
114 * @return 114 * @return
115 */ 115 */
116 - ResourceBaceInfo getOverview(); 116 + ResourceBaseInfo getOverview();
117 } 117 }
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java
@@ -11,7 +11,7 @@ import com.genersoft.iot.vmp.storager.IRedisCatchStorage; @@ -11,7 +11,7 @@ import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
11 import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; 11 import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper;
12 import com.genersoft.iot.vmp.storager.dao.DeviceMapper; 12 import com.genersoft.iot.vmp.storager.dao.DeviceMapper;
13 import com.genersoft.iot.vmp.utils.DateUtil; 13 import com.genersoft.iot.vmp.utils.DateUtil;
14 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; 14 +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
15 import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce; 15 import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
16 import org.slf4j.Logger; 16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory; 17 import org.slf4j.LoggerFactory;
@@ -175,8 +175,12 @@ public class DeviceChannelServiceImpl implements IDeviceChannelService { @@ -175,8 +175,12 @@ public class DeviceChannelServiceImpl implements IDeviceChannelService {
175 } 175 }
176 176
177 @Override 177 @Override
178 - public ResourceBaceInfo getOverview() {  
179 - return channelMapper.getOverview(); 178 + public ResourceBaseInfo getOverview() {
  179 +
  180 + int online = channelMapper.getOnlineCount();
  181 + int total = channelMapper.getAllChannelCount();
  182 +
  183 + return new ResourceBaseInfo(total, online);
180 } 184 }
181 185
182 186
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
@@ -20,7 +20,7 @@ import com.genersoft.iot.vmp.storager.dao.DeviceMapper; @@ -20,7 +20,7 @@ import com.genersoft.iot.vmp.storager.dao.DeviceMapper;
20 import com.genersoft.iot.vmp.storager.dao.PlatformChannelMapper; 20 import com.genersoft.iot.vmp.storager.dao.PlatformChannelMapper;
21 import com.genersoft.iot.vmp.utils.DateUtil; 21 import com.genersoft.iot.vmp.utils.DateUtil;
22 import com.genersoft.iot.vmp.vmanager.bean.BaseTree; 22 import com.genersoft.iot.vmp.vmanager.bean.BaseTree;
23 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; 23 +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
24 import org.slf4j.Logger; 24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory; 25 import org.slf4j.LoggerFactory;
26 import org.springframework.beans.factory.annotation.Autowired; 26 import org.springframework.beans.factory.annotation.Autowired;
@@ -652,8 +652,10 @@ public class DeviceServiceImpl implements IDeviceService { @@ -652,8 +652,10 @@ public class DeviceServiceImpl implements IDeviceService {
652 } 652 }
653 653
654 @Override 654 @Override
655 - public ResourceBaceInfo getOverview() {  
656 - return deviceMapper.getOverview(); 655 + public ResourceBaseInfo getOverview() {
  656 + List<Device> onlineDevices = deviceMapper.getOnlineDevices();
  657 + List<Device> all = deviceMapper.getAll();
  658 + return new ResourceBaseInfo(all.size(), onlineDevices.size());
657 } 659 }
658 660
659 @Override 661 @Override
src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
@@ -110,7 +110,7 @@ public class GbStreamServiceImpl implements IGbStreamService { @@ -110,7 +110,7 @@ public class GbStreamServiceImpl implements IGbStreamService {
110 deviceChannel.setLatitude(gbStream.getLatitude()); 110 deviceChannel.setLatitude(gbStream.getLatitude());
111 deviceChannel.setDeviceId(platform.getDeviceGBId()); 111 deviceChannel.setDeviceId(platform.getDeviceGBId());
112 deviceChannel.setManufacture("wvp-pro"); 112 deviceChannel.setManufacture("wvp-pro");
113 - deviceChannel.setStatus(gbStream.isStatus()?1:0); 113 + deviceChannel.setStatus(gbStream.isStatus());
114 114
115 deviceChannel.setRegisterWay(1); 115 deviceChannel.setRegisterWay(1);
116 deviceChannel.setCivilCode(platform.getAdministrativeDivision()); 116 deviceChannel.setCivilCode(platform.getAdministrativeDivision());
@@ -218,7 +218,7 @@ public class GbStreamServiceImpl implements IGbStreamService { @@ -218,7 +218,7 @@ public class GbStreamServiceImpl implements IGbStreamService {
218 }else { 218 }else {
219 status = gbStreamMapper.selectStatusForPush(gbStream.getApp(), gbStream.getStream()); 219 status = gbStreamMapper.selectStatusForPush(gbStream.getApp(), gbStream.getStream());
220 } 220 }
221 - deviceChannel.setStatus((status != null && status )?1:0); 221 + deviceChannel.setStatus(status != null && status);
222 222
223 deviceChannel.setRegisterWay(1); 223 deviceChannel.setRegisterWay(1);
224 deviceChannel.setCivilCode(platform.getAdministrativeDivision()); 224 deviceChannel.setCivilCode(platform.getAdministrativeDivision());
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
@@ -685,7 +685,7 @@ public class MediaServerServiceImpl implements IMediaServerService { @@ -685,7 +685,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
685 // 缓存不存在,从数据库查询,如果数据库不存在则是错误的 685 // 缓存不存在,从数据库查询,如果数据库不存在则是错误的
686 mediaServerItem = getOneFromDatabase(mediaServerId); 686 mediaServerItem = getOneFromDatabase(mediaServerId);
687 if (mediaServerItem == null) { 687 if (mediaServerItem == null) {
688 - logger.warn("[更新ZLM 保活信息]失败,未找到流媒体信息"); 688 + logger.warn("[更新ZLM 保活信息] 流媒体{}尚未加入使用,请检查节点中是否含有此流媒体 ", mediaServerId);
689 return; 689 return;
690 } 690 }
691 // zlm连接重试 691 // zlm连接重试
src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
@@ -23,7 +23,7 @@ import com.genersoft.iot.vmp.storager.dao.PlatformGbStreamMapper; @@ -23,7 +23,7 @@ import com.genersoft.iot.vmp.storager.dao.PlatformGbStreamMapper;
23 import com.genersoft.iot.vmp.storager.dao.StreamProxyMapper; 23 import com.genersoft.iot.vmp.storager.dao.StreamProxyMapper;
24 import com.genersoft.iot.vmp.utils.DateUtil; 24 import com.genersoft.iot.vmp.utils.DateUtil;
25 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; 25 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
26 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; 26 +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
27 import com.github.pagehelper.PageInfo; 27 import com.github.pagehelper.PageInfo;
28 import org.slf4j.Logger; 28 import org.slf4j.Logger;
29 import org.slf4j.LoggerFactory; 29 import org.slf4j.LoggerFactory;
@@ -438,7 +438,11 @@ public class StreamProxyServiceImpl implements IStreamProxyService { @@ -438,7 +438,11 @@ public class StreamProxyServiceImpl implements IStreamProxyService {
438 } 438 }
439 439
440 @Override 440 @Override
441 - public ResourceBaceInfo getOverview() {  
442 - return streamProxyMapper.getOverview(); 441 + public ResourceBaseInfo getOverview() {
  442 +
  443 + int total = streamProxyMapper.getAllCount();
  444 + int online = streamProxyMapper.getOnline();
  445 +
  446 + return new ResourceBaseInfo(total, online);
443 } 447 }
444 } 448 }
src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
@@ -20,7 +20,7 @@ import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis; @@ -20,7 +20,7 @@ import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis;
20 import com.genersoft.iot.vmp.storager.IRedisCatchStorage; 20 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
21 import com.genersoft.iot.vmp.storager.dao.*; 21 import com.genersoft.iot.vmp.storager.dao.*;
22 import com.genersoft.iot.vmp.utils.DateUtil; 22 import com.genersoft.iot.vmp.utils.DateUtil;
23 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; 23 +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
24 import com.github.pagehelper.PageHelper; 24 import com.github.pagehelper.PageHelper;
25 import com.github.pagehelper.PageInfo; 25 import com.github.pagehelper.PageInfo;
26 import org.slf4j.Logger; 26 import org.slf4j.Logger;
@@ -531,7 +531,10 @@ public class StreamPushServiceImpl implements IStreamPushService { @@ -531,7 +531,10 @@ public class StreamPushServiceImpl implements IStreamPushService {
531 } 531 }
532 532
533 @Override 533 @Override
534 - public ResourceBaceInfo getOverview() {  
535 - return streamPushMapper.getOverview(userSetting.isUsePushingAsStatus()); 534 + public ResourceBaseInfo getOverview() {
  535 + int total = streamPushMapper.getAllCount();
  536 + int online = streamPushMapper.getAllOnline(userSetting.isUsePushingAsStatus());
  537 +
  538 + return new ResourceBaseInfo(total, online);
536 } 539 }
537 } 540 }
src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java
@@ -9,7 +9,6 @@ import com.genersoft.iot.vmp.vmanager.bean.StreamPushExcelDto; @@ -9,7 +9,6 @@ import com.genersoft.iot.vmp.vmanager.bean.StreamPushExcelDto;
9 import com.google.common.collect.BiMap; 9 import com.google.common.collect.BiMap;
10 import com.google.common.collect.HashBiMap; 10 import com.google.common.collect.HashBiMap;
11 import org.springframework.util.ObjectUtils; 11 import org.springframework.util.ObjectUtils;
12 -import org.springframework.util.StringUtils;  
13 12
14 import java.util.*; 13 import java.util.*;
15 14
@@ -33,38 +32,43 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus @@ -33,38 +32,43 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus
33 /** 32 /**
34 * 用于存储不加过滤的所有数据 33 * 用于存储不加过滤的所有数据
35 */ 34 */
36 - private List<StreamPushItem> streamPushItems = new ArrayList<>(); 35 + private final List<StreamPushItem> streamPushItems = new ArrayList<>();
37 36
38 /** 37 /**
39 * 用于存储更具APP+Stream过滤后的数据,可以直接存入stream_push表与gb_stream表 38 * 用于存储更具APP+Stream过滤后的数据,可以直接存入stream_push表与gb_stream表
40 */ 39 */
41 - private Map<String,StreamPushItem> streamPushItemForSave = new HashMap<>(); 40 + private final Map<String,StreamPushItem> streamPushItemForSave = new HashMap<>();
42 41
43 /** 42 /**
44 * 用于存储按照APP+Stream为KEY, 平台ID+目录Id 为value的数据,用于存储到gb_stream表后获取app+Stream对应的平台与目录信息,然后存入关联表 43 * 用于存储按照APP+Stream为KEY, 平台ID+目录Id 为value的数据,用于存储到gb_stream表后获取app+Stream对应的平台与目录信息,然后存入关联表
45 */ 44 */
46 - private Map<String, List<String[]>> streamPushItemsForPlatform = new HashMap<>(); 45 + private final Map<String, List<String[]>> streamPushItemsForPlatform = new HashMap<>();
47 46
48 /** 47 /**
49 * 用于判断文件是否存在重复的app+Stream+平台ID 48 * 用于判断文件是否存在重复的app+Stream+平台ID
50 */ 49 */
51 - private Set<String> streamPushStreamSet = new HashSet<>(); 50 + private final Set<String> streamPushStreamSet = new HashSet<>();
52 51
53 /** 52 /**
54 * 用于存储APP+Stream->国标ID 的数据结构, 数据一一对应,全局判断APP+Stream->国标ID是否存在不对应 53 * 用于存储APP+Stream->国标ID 的数据结构, 数据一一对应,全局判断APP+Stream->国标ID是否存在不对应
55 */ 54 */
56 - private BiMap<String,String> gBMap = HashBiMap.create(); 55 + private final BiMap<String,String> gBMap = HashBiMap.create();
  56 +
  57 + /**
  58 + * 用于存储APP+Stream-> 在数据库中的数据
  59 + */
  60 + private final BiMap<String,String> pushMapInDb = HashBiMap.create();
57 61
58 /** 62 /**
59 * 记录错误的APP+Stream 63 * 记录错误的APP+Stream
60 */ 64 */
61 - private List<String> errorStreamList = new ArrayList<>(); 65 + private final List<String> errorStreamList = new ArrayList<>();
62 66
63 67
64 /** 68 /**
65 * 记录错误的国标ID 69 * 记录错误的国标ID
66 */ 70 */
67 - private List<String> errorGBList = new ArrayList<>(); 71 + private final List<String> errorInfoList = new ArrayList<>();
68 72
69 /** 73 /**
70 * 读取数量计数器 74 * 读取数量计数器
@@ -75,6 +79,13 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus @@ -75,6 +79,13 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus
75 this.pushService = pushService; 79 this.pushService = pushService;
76 this.defaultMediaServerId = defaultMediaServerId; 80 this.defaultMediaServerId = defaultMediaServerId;
77 this.errorDataHandler = errorDataHandler; 81 this.errorDataHandler = errorDataHandler;
  82 + // 获取数据库已有的数据,已经存在的则忽略
  83 + List<String> allAppAndStreams = pushService.getAllAppAndStream();
  84 + if (allAppAndStreams.size() > 0) {
  85 + for (String allAppAndStream : allAppAndStreams) {
  86 + pushMapInDb.put(allAppAndStream, allAppAndStream);
  87 + }
  88 + }
78 } 89 }
79 90
80 public interface ErrorDataHandler{ 91 public interface ErrorDataHandler{
@@ -88,26 +99,30 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus @@ -88,26 +99,30 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus
88 || ObjectUtils.isEmpty(streamPushExcelDto.getGbId())) { 99 || ObjectUtils.isEmpty(streamPushExcelDto.getGbId())) {
89 return; 100 return;
90 } 101 }
  102 + Integer rowIndex = analysisContext.readRowHolder().getRowIndex();
91 103
92 if (gBMap.get(streamPushExcelDto.getApp() + streamPushExcelDto.getStream()) == null) { 104 if (gBMap.get(streamPushExcelDto.getApp() + streamPushExcelDto.getStream()) == null) {
93 try { 105 try {
94 gBMap.put(streamPushExcelDto.getApp() + streamPushExcelDto.getStream(), streamPushExcelDto.getGbId()); 106 gBMap.put(streamPushExcelDto.getApp() + streamPushExcelDto.getStream(), streamPushExcelDto.getGbId());
95 }catch (IllegalArgumentException e) { 107 }catch (IllegalArgumentException e) {
96 - errorGBList.add(streamPushExcelDto.getGbId() + "(不同的app+stream使用了相同的国标ID)"); 108 + errorInfoList.add("行:" + rowIndex + ", " + streamPushExcelDto.getGbId() + " 国标ID重复使用");
97 return; 109 return;
98 } 110 }
99 }else { 111 }else {
100 if (!gBMap.get(streamPushExcelDto.getApp() + streamPushExcelDto.getStream()).equals(streamPushExcelDto.getGbId())) { 112 if (!gBMap.get(streamPushExcelDto.getApp() + streamPushExcelDto.getStream()).equals(streamPushExcelDto.getGbId())) {
101 - errorGBList.add(streamPushExcelDto.getGbId() + "(同一组app+stream使用了不同的国标ID)"); 113 + errorInfoList.add("行:" + rowIndex + ", " + streamPushExcelDto.getGbId() + " 同样的应用名和流ID使用了不同的国标ID");
102 return; 114 return;
103 } 115 }
104 } 116 }
105 117
106 if (streamPushStreamSet.contains(streamPushExcelDto.getApp() + streamPushExcelDto.getStream() + streamPushExcelDto.getPlatformId())) { 118 if (streamPushStreamSet.contains(streamPushExcelDto.getApp() + streamPushExcelDto.getStream() + streamPushExcelDto.getPlatformId())) {
107 - errorStreamList.add(streamPushExcelDto.getApp() + "/" + streamPushExcelDto.getStream()+ "/" +  
108 - streamPushExcelDto.getPlatformId() + "(同一组app+stream添加在了同一个平台下)"); 119 + errorStreamList.add("行:" + rowIndex + ", " + streamPushExcelDto.getApp() + "/" + streamPushExcelDto.getStream()+ " 平台信息重复");
109 return; 120 return;
110 }else { 121 }else {
  122 + if (pushMapInDb.get(streamPushExcelDto.getApp()+streamPushExcelDto.getStream()) != null) {
  123 + errorStreamList.add("行:" + rowIndex + ", " + streamPushExcelDto.getApp() + "/" + streamPushExcelDto.getStream()+ " 数据已存在");
  124 + return;
  125 + }
111 streamPushStreamSet.add(streamPushExcelDto.getApp()+streamPushExcelDto.getStream() + streamPushExcelDto.getPlatformId()); 126 streamPushStreamSet.add(streamPushExcelDto.getApp()+streamPushExcelDto.getStream() + streamPushExcelDto.getPlatformId());
112 } 127 }
113 128
@@ -165,7 +180,7 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus @@ -165,7 +180,7 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus
165 gBMap.clear(); 180 gBMap.clear();
166 streamPushStreamSet.clear(); 181 streamPushStreamSet.clear();
167 streamPushItemsForPlatform.clear(); 182 streamPushItemsForPlatform.clear();
168 - errorDataHandler.handle(errorStreamList, errorGBList); 183 + errorDataHandler.handle(errorStreamList, errorInfoList);
169 } 184 }
170 185
171 private void saveData(){ 186 private void saveData(){
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
@@ -3,7 +3,6 @@ package com.genersoft.iot.vmp.storager.dao; @@ -3,7 +3,6 @@ package com.genersoft.iot.vmp.storager.dao;
3 import com.genersoft.iot.vmp.gb28181.bean.Device; 3 import com.genersoft.iot.vmp.gb28181.bean.Device;
4 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; 4 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
5 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannelInPlatform; 5 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannelInPlatform;
6 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;  
7 import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce; 6 import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
8 import com.genersoft.iot.vmp.web.gb28181.dto.DeviceChannelExtend; 7 import com.genersoft.iot.vmp.web.gb28181.dto.DeviceChannelExtend;
9 import org.apache.ibatis.annotations.*; 8 import org.apache.ibatis.annotations.*;
@@ -74,8 +73,8 @@ public interface DeviceChannelMapper { @@ -74,8 +73,8 @@ public interface DeviceChannelMapper {
74 "dc.device_id = #{deviceId} " + 73 "dc.device_id = #{deviceId} " +
75 " <if test='query != null'> AND (dc.channel_id LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%'))</if> " + 74 " <if test='query != null'> AND (dc.channel_id LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%'))</if> " +
76 " <if test='parentChannelId != null'> AND (dc.parent_id=#{parentChannelId} OR dc.civil_code = #{parentChannelId}) </if> " + 75 " <if test='parentChannelId != null'> AND (dc.parent_id=#{parentChannelId} OR dc.civil_code = #{parentChannelId}) </if> " +
77 - " <if test='online == true' > AND dc.status=1</if>" +  
78 - " <if test='online == false' > AND dc.status=0</if>" + 76 + " <if test='online == true' > AND dc.status= true</if>" +
  77 + " <if test='online == false' > AND dc.status= false</if>" +
79 " <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" + 78 " <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" +
80 " <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" + 79 " <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" +
81 "<if test='channelIds != null'> AND dc.channel_id in <foreach item='item' index='index' collection='channelIds' open='(' separator=',' close=')'>" + 80 "<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 { @@ -97,8 +96,8 @@ public interface DeviceChannelMapper {
97 " <if test='device_id != null'> AND dc.device_id = #{deviceId} </if> " + 96 " <if test='device_id != null'> AND dc.device_id = #{deviceId} </if> " +
98 " <if test='query != null'> AND (dc.channel_id LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " + 97 " <if test='query != null'> AND (dc.channel_id LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " +
99 " <if test='parentChannelId != null'> AND dc.parent_id=#{parentChannelId} </if> " + 98 " <if test='parentChannelId != null'> AND dc.parent_id=#{parentChannelId} </if> " +
100 - " <if test='online == true' > AND dc.status=1</if>" +  
101 - " <if test='online == false' > AND dc.status=0</if>" + 99 + " <if test='online == true' > AND dc.status=true</if>" +
  100 + " <if test='online == false' > AND dc.status=false</if>" +
102 " <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" + 101 " <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" +
103 " <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" + 102 " <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" +
104 "<if test='channelIds != null'> AND dc.channel_id in <foreach item='item' index='index' collection='channelIds' open='(' separator=',' close=')'>" + 103 "<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 { @@ -121,8 +120,8 @@ public interface DeviceChannelMapper {
121 " <if test='deviceId != null'> AND dc.device_id = #{deviceId} </if> " + 120 " <if test='deviceId != null'> AND dc.device_id = #{deviceId} </if> " +
122 " <if test='query != null'> AND (dc.channel_id LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " + 121 " <if test='query != null'> AND (dc.channel_id LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " +
123 " <if test='parentChannelId != null'> AND dc.parent_id=#{parentChannelId} </if> " + 122 " <if test='parentChannelId != null'> AND dc.parent_id=#{parentChannelId} </if> " +
124 - " <if test='online == true' > AND dc.status=1</if>" +  
125 - " <if test='online == false' > AND dc.status=0</if>" + 123 + " <if test='online == true' > AND dc.status=true</if>" +
  124 + " <if test='online == false' > AND dc.status=false</if>" +
126 " <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" + 125 " <if test='hasSubChannel == true' > AND dc.sub_count > 0 </if>" +
127 " <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" + 126 " <if test='hasSubChannel == false' > AND dc.sub_count = 0 </if>" +
128 "<if test='channelIds != null'> AND dc.channel_id in <foreach item='item' index='index' collection='channelIds' open='(' separator=',' close=')'>" + 127 "<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 { @@ -165,8 +164,8 @@ public interface DeviceChannelMapper {
165 " LEFT JOIN wvp_platform_gb_channel pgc on pgc.device_channel_id = dc.id " + 164 " LEFT JOIN wvp_platform_gb_channel pgc on pgc.device_channel_id = dc.id " +
166 " WHERE 1=1 " + 165 " WHERE 1=1 " +
167 " <if test='query != null'> AND (dc.channel_id LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%'))</if> " + 166 " <if test='query != null'> AND (dc.channel_id LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%') OR dc.name LIKE concat('%',#{query},'%'))</if> " +
168 - " <if test='online == true' > AND dc.status=1</if> " +  
169 - " <if test='online == false' > AND dc.status=0</if> " + 167 + " <if test='online == true' > AND dc.status=true</if> " +
  168 + " <if test='online == false' > AND dc.status=false</if> " +
170 " <if test='hasSubChannel!= null and has_sub_channel == true' > AND dc.sub_count > 0</if> " + 169 " <if test='hasSubChannel!= null and has_sub_channel == true' > AND dc.sub_count > 0</if> " +
171 " <if test='hasSubChannel!= null and has_sub_channel == false' > AND dc.sub_count = 0</if> " + 170 " <if test='hasSubChannel!= null and has_sub_channel == false' > AND dc.sub_count = 0</if> " +
172 " <if test='catalogId == null ' > AND dc.id not in (select device_channel_id from wvp_platform_gb_channel where platform_id=#{platformId} ) </if> " + 171 " <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 { @@ -191,10 +190,10 @@ public interface DeviceChannelMapper {
191 @Select("SELECT * FROM wvp_device_channel WHERE channel_id=#{channelId}") 190 @Select("SELECT * FROM wvp_device_channel WHERE channel_id=#{channelId}")
192 List<DeviceChannel> queryChannelByChannelId( String channelId); 191 List<DeviceChannel> queryChannelByChannelId( String channelId);
193 192
194 - @Update(value = {"UPDATE wvp_device_channel SET status=0 WHERE device_id=#{deviceId} AND channel_id=#{channelId}"}) 193 + @Update(value = {"UPDATE wvp_device_channel SET status=false WHERE device_id=#{deviceId} AND channel_id=#{channelId}"})
195 void offline(String deviceId, String channelId); 194 void offline(String deviceId, String channelId);
196 195
197 - @Update(value = {"UPDATE wvp_device_channel SET status=0 WHERE device_id=#{deviceId}"}) 196 + @Update(value = {"UPDATE wvp_device_channel SET status=fasle WHERE device_id=#{deviceId}"})
198 void offlineByDeviceId(String deviceId); 197 void offlineByDeviceId(String deviceId);
199 198
200 @Insert("<script> " + 199 @Insert("<script> " +
@@ -271,7 +270,7 @@ public interface DeviceChannelMapper { @@ -271,7 +270,7 @@ public interface DeviceChannelMapper {
271 "</script>") 270 "</script>")
272 int batchAddOrUpdate(List<DeviceChannel> addChannels); 271 int batchAddOrUpdate(List<DeviceChannel> addChannels);
273 272
274 - @Update(value = {"UPDATE wvp_device_channel SET status=1 WHERE device_id=#{deviceId} AND channel_id=#{channelId}"}) 273 + @Update(value = {"UPDATE wvp_device_channel SET status=true WHERE device_id=#{deviceId} AND channel_id=#{channelId}"})
275 void online(String deviceId, String channelId); 274 void online(String deviceId, String channelId);
276 275
277 @Update({"<script>" + 276 @Update({"<script>" +
@@ -283,7 +282,7 @@ public interface DeviceChannelMapper { @@ -283,7 +282,7 @@ public interface DeviceChannelMapper {
283 "<if test='item.manufacture != null'>, manufacture=#{item.manufacture}</if>" + 282 "<if test='item.manufacture != null'>, manufacture=#{item.manufacture}</if>" +
284 "<if test='item.model != null'>, model=#{item.model}</if>" + 283 "<if test='item.model != null'>, model=#{item.model}</if>" +
285 "<if test='item.owner != null'>, owner=#{item.owner}</if>" + 284 "<if test='item.owner != null'>, owner=#{item.owner}</if>" +
286 - "<if test='item.civil_code != null'>, civil_code=#{item.civilCode}</if>" + 285 + "<if test='item.civilCode != null'>, civil_code=#{item.civilCode}</if>" +
287 "<if test='item.block != null'>, block=#{item.block}</if>" + 286 "<if test='item.block != null'>, block=#{item.block}</if>" +
288 "<if test='item.subCount != null'>, sub_count=#{item.subCount}</if>" + 287 "<if test='item.subCount != null'>, sub_count=#{item.subCount}</if>" +
289 "<if test='item.address != null'>, address=#{item.address}</if>" + 288 "<if test='item.address != null'>, address=#{item.address}</if>" +
@@ -317,7 +316,7 @@ public interface DeviceChannelMapper { @@ -317,7 +316,7 @@ public interface DeviceChannelMapper {
317 int batchUpdate(List<DeviceChannel> updateChannels); 316 int batchUpdate(List<DeviceChannel> updateChannels);
318 317
319 318
320 - @Select("SELECT * FROM wvp_device_channel WHERE device_id=#{deviceId} AND status=1") 319 + @Select("SELECT * FROM wvp_device_channel WHERE device_id=#{deviceId} AND status=true")
321 List<DeviceChannel> queryOnlineChannelsByDeviceId(String deviceId); 320 List<DeviceChannel> queryOnlineChannelsByDeviceId(String deviceId);
322 321
323 @Delete(value = {" <script>" + 322 @Delete(value = {" <script>" +
@@ -406,9 +405,6 @@ public interface DeviceChannelMapper { @@ -406,9 +405,6 @@ public interface DeviceChannelMapper {
406 List<DeviceChannel> queryAllChannels(String deviceId); 405 List<DeviceChannel> queryAllChannels(String deviceId);
407 406
408 407
409 - @Select("select count(1) as total, sum(status) as online from wvp_device_channel")  
410 - ResourceBaceInfo getOverview();  
411 -  
412 @Select("select channelId" + 408 @Select("select channelId" +
413 ", device_id" + 409 ", device_id" +
414 ", latitude" + 410 ", latitude" +
@@ -420,7 +416,7 @@ public interface DeviceChannelMapper { @@ -420,7 +416,7 @@ public interface DeviceChannelMapper {
420 "from wvp_device_channel where device_id = #{deviceId} " + 416 "from wvp_device_channel where device_id = #{deviceId} " +
421 "and latitude != 0 " + 417 "and latitude != 0 " +
422 "and longitude != 0 " + 418 "and longitude != 0 " +
423 - "and(latitude_gcj02=0orlatitude_wgs84=0orlongitude_wgs84= 0 or longitude_gcj02 = 0)") 419 + "and(latitude_gcj02=0 or latitude_wgs84=0 or longitude_wgs84= 0 or longitude_gcj02 = 0)")
424 List<DeviceChannel> getChannelsWithoutTransform(String deviceId); 420 List<DeviceChannel> getChannelsWithoutTransform(String deviceId);
425 421
426 @Select("select de.* from wvp_device de left join wvp_device_channel dc on de.device_id = dc.deviceId where dc.channel_id=#{channelId}") 422 @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 { @@ -436,15 +432,22 @@ public interface DeviceChannelMapper {
436 432
437 @Update({"<script>" + 433 @Update({"<script>" +
438 "<foreach collection='channels' item='item' separator=';'>" + 434 "<foreach collection='channels' item='item' separator=';'>" +
439 - "UPDATE wvp_device_channel SET status=1 WHERE device_id=#{item.deviceId} AND channel_id=#{item.channelId}" + 435 + "UPDATE wvp_device_channel SET status=true WHERE device_id=#{item.deviceId} AND channel_id=#{item.channelId}" +
440 "</foreach>" + 436 "</foreach>" +
441 "</script>"}) 437 "</script>"})
442 int batchOnline(List<DeviceChannel> channels); 438 int batchOnline(List<DeviceChannel> channels);
443 439
444 @Update({"<script>" + 440 @Update({"<script>" +
445 "<foreach collection='channels' item='item' separator=';'>" + 441 "<foreach collection='channels' item='item' separator=';'>" +
446 - "UPDATE wvp_device_channel SET status=0 WHERE device_id=#{item.deviceId} AND channel_id=#{item.channelId}" + 442 + "UPDATE wvp_device_channel SET status= false WHERE device_id=#{item.deviceId} AND channel_id=#{item.channelId}" +
447 "</foreach>" + 443 "</foreach>" +
448 "</script>"}) 444 "</script>"})
449 int batchOffline(List<DeviceChannel> channels); 445 int batchOffline(List<DeviceChannel> channels);
  446 +
  447 +
  448 + @Select("select count(1) from wvp_device_channel where status = true")
  449 + int getOnlineCount();
  450 +
  451 + @Select("select count(1) from wvp_device_channel")
  452 + int getAllChannelCount();
450 } 453 }
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java
1 package com.genersoft.iot.vmp.storager.dao; 1 package com.genersoft.iot.vmp.storager.dao;
2 2
3 import com.genersoft.iot.vmp.gb28181.bean.Device; 3 import com.genersoft.iot.vmp.gb28181.bean.Device;
4 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;  
5 import org.apache.ibatis.annotations.*; 4 import org.apache.ibatis.annotations.*;
6 import org.springframework.stereotype.Repository; 5 import org.springframework.stereotype.Repository;
7 6
@@ -162,8 +161,10 @@ public interface DeviceMapper { @@ -162,8 +161,10 @@ public interface DeviceMapper {
162 "tree_type,"+ 161 "tree_type,"+
163 "online,"+ 162 "online,"+
164 "media_server_id,"+ 163 "media_server_id,"+
165 - "(SELECT count(0) FROM wvp_device_channel WHERE device_id=de.device_id) as channel_count FROM wvp_device de" + 164 + "(SELECT count(0) FROM wvp_device_channel WHERE device_id=de.device_id) as channel_count " +
  165 + "FROM wvp_device de" +
166 "<if test=\"online != null\"> where online=${online}</if>"+ 166 "<if test=\"online != null\"> where online=${online}</if>"+
  167 + " order by create_time desc "+
167 " </script>" 168 " </script>"
168 ) 169 )
169 List<Device> getDevices(Boolean online); 170 List<Device> getDevices(Boolean online);
@@ -288,9 +289,6 @@ public interface DeviceMapper { @@ -288,9 +289,6 @@ public interface DeviceMapper {
288 ")") 289 ")")
289 void addCustomDevice(Device device); 290 void addCustomDevice(Device device);
290 291
291 - @Select("select count(1) as total, sum(online) as online FROM wvp_device")  
292 - ResourceBaceInfo getOverview();  
293 -  
294 @Select("select * FROM wvp_device") 292 @Select("select * FROM wvp_device")
295 List<Device> getAll(); 293 List<Device> getAll();
296 294
src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
@@ -117,7 +117,7 @@ public interface GbStreamMapper { @@ -117,7 +117,7 @@ public interface GbStreamMapper {
117 void batchDelForGbStream(List<GbStream> gbStreams); 117 void batchDelForGbStream(List<GbStream> gbStreams);
118 118
119 @Insert("<script> " + 119 @Insert("<script> " +
120 - "INSERT IGNORE into wvp_gb_stream " + 120 + "INSERT into wvp_gb_stream " +
121 "(app, stream, gb_id, name, " + 121 "(app, stream, gb_id, name, " +
122 "longitude, latitude, stream_type,media_server_id,create_time)" + 122 "longitude, latitude, stream_type,media_server_id,create_time)" +
123 "values " + 123 "values " +
@@ -127,7 +127,7 @@ public interface GbStreamMapper { @@ -127,7 +127,7 @@ public interface GbStreamMapper {
127 "#{item.mediaServerId}, #{item.createTime}) "+ 127 "#{item.mediaServerId}, #{item.createTime}) "+
128 "</foreach> " + 128 "</foreach> " +
129 "</script>") 129 "</script>")
130 - @Options(useGeneratedKeys = true, keyProperty = "gbStreamId", keyColumn = "gbStreamId") 130 + @Options(useGeneratedKeys = true, keyProperty = "gbStreamId", keyColumn = "gb_stream_id")
131 void batchAdd(List<StreamPushItem> subList); 131 void batchAdd(List<StreamPushItem> subList);
132 132
133 @Update({"<script>" + 133 @Update({"<script>" +
src/main/java/com/genersoft/iot/vmp/storager/dao/StreamProxyMapper.java
1 package com.genersoft.iot.vmp.storager.dao; 1 package com.genersoft.iot.vmp.storager.dao;
2 2
3 import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; 3 import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
4 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; 4 +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
5 import org.apache.ibatis.annotations.*; 5 import org.apache.ibatis.annotations.*;
6 import org.springframework.stereotype.Repository; 6 import org.springframework.stereotype.Repository;
7 7
@@ -78,5 +78,12 @@ public interface StreamProxyMapper { @@ -78,5 +78,12 @@ public interface StreamProxyMapper {
78 List<StreamProxyItem> selectAutoRemoveItemByMediaServerId(String mediaServerId); 78 List<StreamProxyItem> selectAutoRemoveItemByMediaServerId(String mediaServerId);
79 79
80 @Select("select count(1) as total, sum(status) as online from wvp_stream_proxy") 80 @Select("select count(1) as total, sum(status) as online from wvp_stream_proxy")
81 - ResourceBaceInfo getOverview(); 81 + ResourceBaseInfo getOverview();
  82 +
  83 + @Select("select count(1) from wvp_stream_proxy")
  84 +
  85 + int getAllCount();
  86 +
  87 + @Select("select count(1) from wvp_stream_proxy where status = true")
  88 + int getOnline();
82 } 89 }
src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java
@@ -3,7 +3,6 @@ package com.genersoft.iot.vmp.storager.dao; @@ -3,7 +3,6 @@ package com.genersoft.iot.vmp.storager.dao;
3 import com.genersoft.iot.vmp.gb28181.bean.GbStream; 3 import com.genersoft.iot.vmp.gb28181.bean.GbStream;
4 import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; 4 import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
5 import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis; 5 import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis;
6 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;  
7 import org.apache.ibatis.annotations.*; 6 import org.apache.ibatis.annotations.*;
8 import org.springframework.stereotype.Repository; 7 import org.springframework.stereotype.Repository;
9 8
@@ -89,7 +88,7 @@ public interface StreamPushMapper { @@ -89,7 +88,7 @@ public interface StreamPushMapper {
89 StreamPushItem selectOne(String app, String stream); 88 StreamPushItem selectOne(String app, String stream);
90 89
91 @Insert("<script>" + 90 @Insert("<script>" +
92 - "Insert IGNORE INTO wvp_stream_push (app, stream, total_reader_count, origin_type, origin_type_str, " + 91 + "Insert INTO wvp_stream_push (app, stream, total_reader_count, origin_type, origin_type_str, " +
93 "create_time, alive_second, media_server_id, status, push_ing) " + 92 "create_time, alive_second, media_server_id, status, push_ing) " +
94 "VALUES <foreach collection='streamPushItems' item='item' index='index' separator=','>" + 93 "VALUES <foreach collection='streamPushItems' item='item' index='index' separator=','>" +
95 "( #{item.app}, #{item.stream}, #{item.totalReaderCount}, #{item.originType}, " + 94 "( #{item.app}, #{item.stream}, #{item.totalReaderCount}, #{item.originType}, " +
@@ -171,9 +170,20 @@ public interface StreamPushMapper { @@ -171,9 +170,20 @@ public interface StreamPushMapper {
171 @Select("SELECT CONCAT(app,stream) from wvp_gb_stream") 170 @Select("SELECT CONCAT(app,stream) from wvp_gb_stream")
172 List<String> getAllAppAndStream(); 171 List<String> getAllAppAndStream();
173 172
  173 + @Select("select count(1) from wvp_stream_push ")
  174 + int getAllCount();
  175 +
174 @Select(value = {" <script>" + 176 @Select(value = {" <script>" +
175 - " <if test='pushIngAsOnline == true'> select count(1) as total, sum(push_ing) as online from wvp_stream_push </if>" +  
176 - " <if test='pushIngAsOnline == false'> select count(1) as total, sum(status) as online from wvp_stream_push </if>" + 177 + " <if test='pushIngAsOnline == true'> select count(1) from wvp_stream_push where push_ing = true </if>" +
  178 + " <if test='pushIngAsOnline == false'> select count(1)from wvp_stream_push where status = true </if>" +
177 " </script>"}) 179 " </script>"})
178 - ResourceBaceInfo getOverview(boolean pushIngAsOnline); 180 + int getAllOnline(Boolean usePushingAsStatus);
  181 +
  182 + @Select("<script> " +
  183 + "select app, stream from wvp_stream_push where (app, stream) in " +
  184 + "<foreach collection='streamPushItems' item='item' separator=','>" +
  185 + "(#{item.app}, #{item.stream}) " +
  186 + "</foreach>" +
  187 + "</script>")
  188 + List<StreamPushItem> getListIn(List<StreamPushItem> streamPushItems);
179 } 189 }
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -123,6 +123,9 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { @@ -123,6 +123,9 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
123 TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); 123 TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
124 // 数据去重 124 // 数据去重
125 List<DeviceChannel> channels = new ArrayList<>(); 125 List<DeviceChannel> channels = new ArrayList<>();
  126 +
  127 + List<DeviceChannel> updateChannels = new ArrayList<>();
  128 + List<DeviceChannel> addChannels = new ArrayList<>();
126 StringBuilder stringBuilder = new StringBuilder(); 129 StringBuilder stringBuilder = new StringBuilder();
127 Map<String, Integer> subContMap = new HashMap<>(); 130 Map<String, Integer> subContMap = new HashMap<>();
128 if (deviceChannelList.size() > 0) { 131 if (deviceChannelList.size() > 0) {
@@ -131,18 +134,22 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { @@ -131,18 +134,22 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
131 for (DeviceChannel deviceChannel : deviceChannelList) { 134 for (DeviceChannel deviceChannel : deviceChannelList) {
132 if (!gbIdSet.contains(deviceChannel.getChannelId())) { 135 if (!gbIdSet.contains(deviceChannel.getChannelId())) {
133 gbIdSet.add(deviceChannel.getChannelId()); 136 gbIdSet.add(deviceChannel.getChannelId());
  137 + deviceChannel.setUpdateTime(DateUtil.getNow());
134 if (allChannelMap.containsKey(deviceChannel.getChannelId())) { 138 if (allChannelMap.containsKey(deviceChannel.getChannelId())) {
135 deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId()); 139 deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId());
136 deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).isHasAudio()); 140 deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).isHasAudio());
137 - if (allChannelMap.get(deviceChannel.getChannelId()).getStatus() !=deviceChannel.getStatus()){ 141 + if (allChannelMap.get(deviceChannel.getChannelId()).isStatus() !=deviceChannel.isStatus()){
138 List<String> strings = platformChannelMapper.queryParentPlatformByChannelId(deviceChannel.getChannelId()); 142 List<String> strings = platformChannelMapper.queryParentPlatformByChannelId(deviceChannel.getChannelId());
139 if (!CollectionUtils.isEmpty(strings)){ 143 if (!CollectionUtils.isEmpty(strings)){
140 strings.forEach(platformId->{ 144 strings.forEach(platformId->{
141 - eventPublisher.catalogEventPublish(platformId, deviceChannel, deviceChannel.getStatus()==1?CatalogEvent.ON:CatalogEvent.OFF); 145 + eventPublisher.catalogEventPublish(platformId, deviceChannel, deviceChannel.isStatus()?CatalogEvent.ON:CatalogEvent.OFF);
142 }); 146 });
143 } 147 }
144 -  
145 } 148 }
  149 + updateChannels.add(deviceChannel);
  150 + }else {
  151 + deviceChannel.setCreateTime(DateUtil.getNow());
  152 + addChannels.add(deviceChannel);
146 } 153 }
147 channels.add(deviceChannel); 154 channels.add(deviceChannel);
148 if (!ObjectUtils.isEmpty(deviceChannel.getParentId())) { 155 if (!ObjectUtils.isEmpty(deviceChannel.getParentId())) {
@@ -175,21 +182,36 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { @@ -175,21 +182,36 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
175 } 182 }
176 try { 183 try {
177 int cleanChannelsResult = deviceChannelMapper.cleanChannelsNotInList(deviceId, channels); 184 int cleanChannelsResult = deviceChannelMapper.cleanChannelsNotInList(deviceId, channels);
  185 +
178 int limitCount = 300; 186 int limitCount = 300;
179 boolean result = cleanChannelsResult < 0; 187 boolean result = cleanChannelsResult < 0;
180 - if (!result && channels.size() > 0) {  
181 - if (channels.size() > limitCount) {  
182 - for (int i = 0; i < channels.size(); i += limitCount) { 188 + if (!result && addChannels.size() > 0) {
  189 + if (addChannels.size() > limitCount) {
  190 + for (int i = 0; i < addChannels.size(); i += limitCount) {
  191 + int toIndex = i + limitCount;
  192 + if (i + limitCount > addChannels.size()) {
  193 + toIndex = addChannels.size();
  194 + }
  195 + result = result || deviceChannelMapper.batchAdd(addChannels.subList(i, toIndex)) < 0;
  196 + }
  197 + }else {
  198 + result = result || deviceChannelMapper.batchAdd(addChannels) < 0;
  199 + }
  200 + }
  201 + if (!result && updateChannels.size() > 0) {
  202 + if (updateChannels.size() > limitCount) {
  203 + for (int i = 0; i < updateChannels.size(); i += limitCount) {
183 int toIndex = i + limitCount; 204 int toIndex = i + limitCount;
184 - if (i + limitCount > channels.size()) {  
185 - toIndex = channels.size(); 205 + if (i + limitCount > updateChannels.size()) {
  206 + toIndex = updateChannels.size();
186 } 207 }
187 - result = result || deviceChannelMapper.batchAddOrUpdate(channels.subList(i, toIndex)) < 0; 208 + result = result || deviceChannelMapper.batchUpdate(updateChannels.subList(i, toIndex)) < 0;
188 } 209 }
189 }else { 210 }else {
190 - result = result || deviceChannelMapper.batchAddOrUpdate(channels) < 0; 211 + result = result || deviceChannelMapper.batchUpdate(updateChannels) < 0;
191 } 212 }
192 } 213 }
  214 +
193 if (result) { 215 if (result) {
194 //事务回滚 216 //事务回滚
195 dataSourceTransactionManager.rollback(transactionStatus); 217 dataSourceTransactionManager.rollback(transactionStatus);
@@ -919,7 +941,7 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { @@ -919,7 +941,7 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
919 deviceChannel.setLatitude(0.0); 941 deviceChannel.setLatitude(0.0);
920 deviceChannel.setDeviceId(platform.getDeviceGBId()); 942 deviceChannel.setDeviceId(platform.getDeviceGBId());
921 deviceChannel.setManufacture("wvp-pro"); 943 deviceChannel.setManufacture("wvp-pro");
922 - deviceChannel.setStatus(1); 944 + deviceChannel.setStatus(true);
923 deviceChannel.setParental(1); 945 deviceChannel.setParental(1);
924 946
925 deviceChannel.setRegisterWay(1); 947 deviceChannel.setRegisterWay(1);
src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceBaceInfo.java renamed to src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceBaseInfo.java
1 package com.genersoft.iot.vmp.vmanager.bean; 1 package com.genersoft.iot.vmp.vmanager.bean;
2 2
3 -public class ResourceBaceInfo { 3 +public class ResourceBaseInfo {
4 private int total; 4 private int total;
5 private int online; 5 private int online;
6 6
  7 + public ResourceBaseInfo() {
  8 + }
  9 +
  10 + public ResourceBaseInfo(int total, int online) {
  11 + this.total = total;
  12 + this.online = online;
  13 + }
  14 +
7 public int getTotal() { 15 public int getTotal() {
8 return total; 16 return total;
9 } 17 }
src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceInfo.java
@@ -2,40 +2,40 @@ package com.genersoft.iot.vmp.vmanager.bean; @@ -2,40 +2,40 @@ package com.genersoft.iot.vmp.vmanager.bean;
2 2
3 public class ResourceInfo { 3 public class ResourceInfo {
4 4
5 - private ResourceBaceInfo device;  
6 - private ResourceBaceInfo channel;  
7 - private ResourceBaceInfo push;  
8 - private ResourceBaceInfo proxy; 5 + private ResourceBaseInfo device;
  6 + private ResourceBaseInfo channel;
  7 + private ResourceBaseInfo push;
  8 + private ResourceBaseInfo proxy;
9 9
10 - public ResourceBaceInfo getDevice() { 10 + public ResourceBaseInfo getDevice() {
11 return device; 11 return device;
12 } 12 }
13 13
14 - public void setDevice(ResourceBaceInfo device) { 14 + public void setDevice(ResourceBaseInfo device) {
15 this.device = device; 15 this.device = device;
16 } 16 }
17 17
18 - public ResourceBaceInfo getChannel() { 18 + public ResourceBaseInfo getChannel() {
19 return channel; 19 return channel;
20 } 20 }
21 21
22 - public void setChannel(ResourceBaceInfo channel) { 22 + public void setChannel(ResourceBaseInfo channel) {
23 this.channel = channel; 23 this.channel = channel;
24 } 24 }
25 25
26 - public ResourceBaceInfo getPush() { 26 + public ResourceBaseInfo getPush() {
27 return push; 27 return push;
28 } 28 }
29 29
30 - public void setPush(ResourceBaceInfo push) { 30 + public void setPush(ResourceBaseInfo push) {
31 this.push = push; 31 this.push = push;
32 } 32 }
33 33
34 - public ResourceBaceInfo getProxy() { 34 + public ResourceBaseInfo getProxy() {
35 return proxy; 35 return proxy;
36 } 36 }
37 37
38 - public void setProxy(ResourceBaceInfo proxy) { 38 + public void setProxy(ResourceBaseInfo proxy) {
39 this.proxy = proxy; 39 this.proxy = proxy;
40 } 40 }
41 } 41 }
src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java
@@ -15,7 +15,7 @@ import com.genersoft.iot.vmp.service.*; @@ -15,7 +15,7 @@ import com.genersoft.iot.vmp.service.*;
15 import com.genersoft.iot.vmp.service.bean.MediaServerLoad; 15 import com.genersoft.iot.vmp.service.bean.MediaServerLoad;
16 import com.genersoft.iot.vmp.storager.IRedisCatchStorage; 16 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
17 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; 17 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
18 -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; 18 +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
19 import com.genersoft.iot.vmp.vmanager.bean.ResourceInfo; 19 import com.genersoft.iot.vmp.vmanager.bean.ResourceInfo;
20 import com.genersoft.iot.vmp.vmanager.bean.SystemConfigInfo; 20 import com.genersoft.iot.vmp.vmanager.bean.SystemConfigInfo;
21 import io.swagger.v3.oas.annotations.Operation; 21 import io.swagger.v3.oas.annotations.Operation;
@@ -251,13 +251,13 @@ public class ServerController { @@ -251,13 +251,13 @@ public class ServerController {
251 @Operation(summary = "获取负载信息") 251 @Operation(summary = "获取负载信息")
252 public ResourceInfo getResourceInfo() { 252 public ResourceInfo getResourceInfo() {
253 ResourceInfo result = new ResourceInfo(); 253 ResourceInfo result = new ResourceInfo();
254 - ResourceBaceInfo deviceInfo = deviceService.getOverview(); 254 + ResourceBaseInfo deviceInfo = deviceService.getOverview();
255 result.setDevice(deviceInfo); 255 result.setDevice(deviceInfo);
256 - ResourceBaceInfo channelInfo = channelService.getOverview(); 256 + ResourceBaseInfo channelInfo = channelService.getOverview();
257 result.setChannel(channelInfo); 257 result.setChannel(channelInfo);
258 - ResourceBaceInfo pushInfo = pushService.getOverview(); 258 + ResourceBaseInfo pushInfo = pushService.getOverview();
259 result.setPush(pushInfo); 259 result.setPush(pushInfo);
260 - ResourceBaceInfo proxyInfo = proxyService.getOverview(); 260 + ResourceBaseInfo proxyInfo = proxyService.getOverview();
261 result.setProxy(proxyInfo); 261 result.setProxy(proxyInfo);
262 262
263 return result; 263 return result;
src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java
@@ -113,7 +113,7 @@ public class ApiStreamController { @@ -113,7 +113,7 @@ public class ApiStreamController {
113 result.put("error","channel[ " + code + " ]未找到"); 113 result.put("error","channel[ " + code + " ]未找到");
114 resultDeferredResult.setResult(result); 114 resultDeferredResult.setResult(result);
115 return resultDeferredResult; 115 return resultDeferredResult;
116 - }else if (deviceChannel.getStatus() == 0) { 116 + }else if (!deviceChannel.isStatus()) {
117 JSONObject result = new JSONObject(); 117 JSONObject result = new JSONObject();
118 result.put("error","channel[ " + code + " ]offline"); 118 result.put("error","channel[ " + code + " ]offline");
119 resultDeferredResult.setResult(result); 119 resultDeferredResult.setResult(result);