From 5d400804683866d57136331d257b6e282f280cb7 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 15 五月 2023 15:29:39 +0800 Subject: [PATCH] 优化部分sql实现 --- src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java | 9 + src/main/java/com/genersoft/iot/vmp/service/IDeviceChannelService.java | 4 src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java | 10 + src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java | 20 ++ src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java | 2 src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceInfo.java | 24 ++-- src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceBaseInfo.java | 10 + src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java | 8 src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 44 +++++- src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceChannel.java | 6 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java | 2 src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java | 41 ++++-- src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java | 2 src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java | 8 src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java | 10 src/main/java/com/genersoft/iot/vmp/service/IStreamProxyService.java | 4 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java | 2 src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java | 10 src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java | 4 src/main/java/com/genersoft/iot/vmp/storager/dao/StreamProxyMapper.java | 11 + src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java | 10 src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java | 4 src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java | 4 src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java | 10 + src/main/java/com/genersoft/iot/vmp/service/IStreamPushService.java | 4 src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java | 43 +++--- 26 files changed, 191 insertions(+), 115 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceChannel.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceChannel.java index 0e1b618..f7ef12d 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceChannel.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceChannel.java @@ -172,7 +172,7 @@ * 閬囧埌杩嘚VR涓嬬殑IPC涓嬪彂淇′护鍙互鎺ㄦ祦锛� 浣嗘槸 Status 鍝嶅簲 OFF */ @Schema(description = "鍦ㄧ嚎/绂荤嚎锛� 1鍦ㄧ嚎,0绂荤嚎") - private int status; + private boolean status; /** * 缁忓害 @@ -455,11 +455,11 @@ this.PTZTypeText = PTZTypeText; } - public int getStatus() { + public boolean isStatus() { return status; } - public void setStatus(int status) { + public void setStatus(boolean status) { this.status = status; } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java index acfb880..0332aab 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java @@ -66,7 +66,7 @@ * @param fromTag * @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; /** * 鍚戜笂绾у洖澶嶇Щ鍔ㄤ綅缃闃呮秷鎭� diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java index 582fbaf..b1e2196 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java @@ -221,7 +221,7 @@ if (!channel.getChannelId().equals(parentPlatform.getDeviceGBId())) { catalogXml.append("<Parental>" + channel.getParental() + "</Parental>\r\n"); 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) { @@ -250,7 +250,7 @@ catalogXml.append("<Port>" + channel.getPort() + "</Port>\r\n"); catalogXml.append("<Password>" + channel.getPort() + "</Password>\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>" + (channel.getLongitudeWgs84() != 0? channel.getLongitudeWgs84():channel.getLongitude()) + "</Longitude>\r\n"); @@ -377,11 +377,11 @@ * @return */ @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) { return ; } - String statusStr = (status==1)?"ONLINE":"OFFLINE"; + String statusStr = (status)?"ONLINE":"OFFLINE"; String characterSet = parentPlatform.getCharacterSet(); StringBuffer deviceStatusXml = new StringBuffer(600); deviceStatusXml.append("<?xml version=\"1.0\" encoding=\"" + characterSet + "\"?>\r\n") @@ -542,7 +542,7 @@ catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n") .append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\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) { // 涓氬姟鍒嗙粍/铏氭嫙缁勭粐/琛屾斂鍖哄垝 涓嶈缃互涓嬪睘鎬� catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n") diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java index e9d44d5..f9edfb3 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/DeviceStatusQueryMessageHandler.java @@ -77,7 +77,7 @@ return; } try { - cmderFroPlatform.deviceStatusResponse(parentPlatform,channelId, sn, fromHeader.getTag(),deviceChannel.getStatus()); + cmderFroPlatform.deviceStatusResponse(parentPlatform,channelId, sn, fromHeader.getTag(),deviceChannel.isStatus()); } catch (SipException | InvalidArgumentException | ParseException e) { logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈 DeviceStatus鏌ヨ鍥炲: {}", e.getMessage()); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java index d51ab9f..750cd8b 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java @@ -255,7 +255,7 @@ } if (channelType.equals(ChannelType.CivilCode)) { // 琛屾斂鍖哄垝鍏朵粬瀛楁娌″繀瑕佽瘑鍒簡锛岄粯璁ゅ湪绾垮嵆鍙� - deviceChannel.setStatus(1); + deviceChannel.setStatus(true); deviceChannel.setParental(1); deviceChannel.setCreateTime(DateUtil.getNow()); deviceChannel.setUpdateTime(DateUtil.getNow()); @@ -309,7 +309,7 @@ deviceChannel.setBusinessGroupId(businessGroupID); if (channelType.equals(ChannelType.BusinessGroup) || channelType.equals(ChannelType.VirtualOrganization)) { // 涓氬姟鍒嗙粍鍜岃櫄鎷熺粍缁� 鍏朵粬瀛楁娌″繀瑕佽瘑鍒簡锛岄粯璁ゅ湪绾垮嵆鍙� - deviceChannel.setStatus(1); + deviceChannel.setStatus(true); deviceChannel.setParental(1); deviceChannel.setCreateTime(DateUtil.getNow()); deviceChannel.setUpdateTime(DateUtil.getNow()); @@ -322,13 +322,13 @@ String status = statusElement.getTextTrim().trim(); // ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR鐨勫吋瀹规�у鐞� 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")) { - deviceChannel.setStatus(0); + deviceChannel.setStatus(false); } }else { - deviceChannel.setStatus(1); + deviceChannel.setStatus(true); } // 璇嗗埆鑷甫鐨勭洰褰曟爣璇� String parental = XmlUtil.getText(itemDevice, "Parental"); diff --git a/src/main/java/com/genersoft/iot/vmp/service/IDeviceChannelService.java b/src/main/java/com/genersoft/iot/vmp/service/IDeviceChannelService.java index 66dbe07..cd402a1 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/IDeviceChannelService.java +++ b/src/main/java/com/genersoft/iot/vmp/service/IDeviceChannelService.java @@ -2,7 +2,7 @@ import com.genersoft.iot.vmp.gb28181.bean.Device; 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 java.util.List; @@ -38,7 +38,7 @@ * 鑾峰彇缁熻淇℃伅 * @return */ - ResourceBaceInfo getOverview(); + ResourceBaseInfo getOverview(); /** * 鏌ヨ鎵�鏈夋湭鍒嗛厤鐨勯�氶亾 diff --git a/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java b/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java index d977c47..e20c3bf 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java +++ b/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java @@ -5,7 +5,7 @@ import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo; import com.genersoft.iot.vmp.gb28181.bean.SyncStatus; 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; @@ -162,7 +162,7 @@ * 鑾峰彇缁熻淇℃伅 * @return */ - ResourceBaceInfo getOverview(); + ResourceBaseInfo getOverview(); /** * 鑾峰彇鎵�鏈夎澶� diff --git a/src/main/java/com/genersoft/iot/vmp/service/IStreamProxyService.java b/src/main/java/com/genersoft/iot/vmp/service/IStreamProxyService.java index de9613e..0e1c97b 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/IStreamProxyService.java +++ b/src/main/java/com/genersoft/iot/vmp/service/IStreamProxyService.java @@ -4,7 +4,7 @@ import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; 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; public interface IStreamProxyService { @@ -108,6 +108,6 @@ * 鑾峰彇缁熻淇℃伅 * @return */ - ResourceBaceInfo getOverview(); + ResourceBaseInfo getOverview(); } diff --git a/src/main/java/com/genersoft/iot/vmp/service/IStreamPushService.java b/src/main/java/com/genersoft/iot/vmp/service/IStreamPushService.java index cf6f0ed..8d92002 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/IStreamPushService.java +++ b/src/main/java/com/genersoft/iot/vmp/service/IStreamPushService.java @@ -5,7 +5,7 @@ import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; 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 java.util.List; @@ -113,5 +113,5 @@ * 鑾峰彇缁熻淇℃伅 * @return */ - ResourceBaceInfo getOverview(); + ResourceBaseInfo getOverview(); } diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java index 73adf2e..45405f7 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java @@ -11,7 +11,7 @@ import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; import com.genersoft.iot.vmp.storager.dao.DeviceMapper; 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 org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -175,8 +175,12 @@ } @Override - public ResourceBaceInfo getOverview() { - return channelMapper.getOverview(); + public ResourceBaseInfo getOverview() { + + int online = channelMapper.getOnlineCount(); + int total = channelMapper.getAllChannelCount(); + + return new ResourceBaseInfo(total, online); } diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java index 1f46cc6..8dbed11 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java @@ -20,7 +20,7 @@ import com.genersoft.iot.vmp.storager.dao.PlatformChannelMapper; import com.genersoft.iot.vmp.utils.DateUtil; 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.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -652,8 +652,10 @@ } @Override - public ResourceBaceInfo getOverview() { - return deviceMapper.getOverview(); + public ResourceBaseInfo getOverview() { + List<Device> onlineDevices = deviceMapper.getOnlineDevices(); + List<Device> all = deviceMapper.getAll(); + return new ResourceBaseInfo(all.size(), onlineDevices.size()); } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java index 37e3b9e..0cde5fe 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java @@ -110,7 +110,7 @@ deviceChannel.setLatitude(gbStream.getLatitude()); deviceChannel.setDeviceId(platform.getDeviceGBId()); deviceChannel.setManufacture("wvp-pro"); - deviceChannel.setStatus(gbStream.isStatus()?1:0); + deviceChannel.setStatus(gbStream.isStatus()); deviceChannel.setRegisterWay(1); deviceChannel.setCivilCode(platform.getAdministrativeDivision()); @@ -218,7 +218,7 @@ }else { status = gbStreamMapper.selectStatusForPush(gbStream.getApp(), gbStream.getStream()); } - deviceChannel.setStatus((status != null && status )?1:0); + deviceChannel.setStatus(status != null && status); deviceChannel.setRegisterWay(1); deviceChannel.setCivilCode(platform.getAdministrativeDivision()); diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java index c0d0765..230ce27 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java @@ -685,7 +685,7 @@ // 缂撳瓨涓嶅瓨鍦紝浠庢暟鎹簱鏌ヨ锛屽鏋滄暟鎹簱涓嶅瓨鍦ㄥ垯鏄敊璇殑 mediaServerItem = getOneFromDatabase(mediaServerId); if (mediaServerItem == null) { - logger.warn("[鏇存柊ZLM 淇濇椿淇℃伅]澶辫触锛屾湭鎵惧埌娴佸獟浣撲俊鎭�"); + logger.warn("[鏇存柊ZLM 淇濇椿淇℃伅] 娴佸獟浣搟}灏氭湭鍔犲叆浣跨敤,璇锋鏌ヨ妭鐐逛腑鏄惁鍚湁姝ゆ祦濯掍綋 ", mediaServerId); return; } // zlm杩炴帴閲嶈瘯 diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java index bb99651..3037e3f 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java @@ -23,7 +23,7 @@ import com.genersoft.iot.vmp.storager.dao.StreamProxyMapper; import com.genersoft.iot.vmp.utils.DateUtil; 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 org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -438,7 +438,11 @@ } @Override - public ResourceBaceInfo getOverview() { - return streamProxyMapper.getOverview(); + public ResourceBaseInfo getOverview() { + + int total = streamProxyMapper.getAllCount(); + int online = streamProxyMapper.getOnline(); + + return new ResourceBaseInfo(total, online); } } diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java index 6540e3e..0a03c66 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java @@ -20,7 +20,7 @@ import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.dao.*; 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.PageInfo; import org.slf4j.Logger; @@ -531,7 +531,10 @@ } @Override - public ResourceBaceInfo getOverview() { - return streamPushMapper.getOverview(userSetting.isUsePushingAsStatus()); + public ResourceBaseInfo getOverview() { + int total = streamPushMapper.getAllCount(); + int online = streamPushMapper.getAllOnline(userSetting.isUsePushingAsStatus()); + + return new ResourceBaseInfo(total, online); } } diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java index 1b21995..a127159 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java @@ -9,7 +9,6 @@ import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; import org.springframework.util.ObjectUtils; -import org.springframework.util.StringUtils; import java.util.*; @@ -33,38 +32,43 @@ /** * 鐢ㄤ簬瀛樺偍涓嶅姞杩囨护鐨勬墍鏈夋暟鎹� */ - private List<StreamPushItem> streamPushItems = new ArrayList<>(); + private final List<StreamPushItem> streamPushItems = new ArrayList<>(); /** * 鐢ㄤ簬瀛樺偍鏇村叿APP+Stream杩囨护鍚庣殑鏁版嵁锛屽彲浠ョ洿鎺ュ瓨鍏tream_push琛ㄤ笌gb_stream琛� */ - private Map<String,StreamPushItem> streamPushItemForSave = new HashMap<>(); + private final Map<String,StreamPushItem> streamPushItemForSave = new HashMap<>(); /** * 鐢ㄤ簬瀛樺偍鎸夌収APP+Stream涓篕EY锛� 骞冲彴ID+鐩綍Id 涓簐alue鐨勬暟鎹紝鐢ㄤ簬瀛樺偍鍒癵b_stream琛ㄥ悗鑾峰彇app+Stream瀵瑰簲鐨勫钩鍙颁笌鐩綍淇℃伅锛岀劧鍚庡瓨鍏ュ叧鑱旇〃 */ - private Map<String, List<String[]>> streamPushItemsForPlatform = new HashMap<>(); + private final Map<String, List<String[]>> streamPushItemsForPlatform = new HashMap<>(); /** * 鐢ㄤ簬鍒ゆ柇鏂囦欢鏄惁瀛樺湪閲嶅鐨刟pp+Stream+骞冲彴ID */ - private Set<String> streamPushStreamSet = new HashSet<>(); + private final Set<String> streamPushStreamSet = new HashSet<>(); /** * 鐢ㄤ簬瀛樺偍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(); /** * 璁板綍閿欒鐨凙PP+Stream */ - private List<String> errorStreamList = new ArrayList<>(); + private final List<String> errorStreamList = new ArrayList<>(); /** * 璁板綍閿欒鐨勫浗鏍嘔D */ - private List<String> errorGBList = new ArrayList<>(); + private final List<String> errorInfoList = new ArrayList<>(); /** * 璇诲彇鏁伴噺璁℃暟鍣� @@ -75,6 +79,13 @@ this.pushService = pushService; this.defaultMediaServerId = defaultMediaServerId; this.errorDataHandler = errorDataHandler; + // 鑾峰彇鏁版嵁搴撳凡鏈夌殑鏁版嵁锛屽凡缁忓瓨鍦ㄧ殑鍒欏拷鐣� + List<String> allAppAndStreams = pushService.getAllAppAndStream(); + if (allAppAndStreams.size() > 0) { + for (String allAppAndStream : allAppAndStreams) { + pushMapInDb.put(allAppAndStream, allAppAndStream); + } + } } public interface ErrorDataHandler{ @@ -88,26 +99,30 @@ || ObjectUtils.isEmpty(streamPushExcelDto.getGbId())) { return; } + Integer rowIndex = analysisContext.readRowHolder().getRowIndex(); if (gBMap.get(streamPushExcelDto.getApp() + streamPushExcelDto.getStream()) == null) { try { gBMap.put(streamPushExcelDto.getApp() + streamPushExcelDto.getStream(), streamPushExcelDto.getGbId()); }catch (IllegalArgumentException e) { - errorGBList.add(streamPushExcelDto.getGbId() + "(涓嶅悓鐨刟pp+stream浣跨敤浜嗙浉鍚岀殑鍥芥爣ID)"); + errorInfoList.add("琛岋細" + rowIndex + ", " + streamPushExcelDto.getGbId() + " 鍥芥爣ID閲嶅浣跨敤"); return; } }else { if (!gBMap.get(streamPushExcelDto.getApp() + streamPushExcelDto.getStream()).equals(streamPushExcelDto.getGbId())) { - errorGBList.add(streamPushExcelDto.getGbId() + "(鍚屼竴缁刟pp+stream浣跨敤浜嗕笉鍚岀殑鍥芥爣ID)"); + errorInfoList.add("琛岋細" + rowIndex + ", " + streamPushExcelDto.getGbId() + " 鍚屾牱鐨勫簲鐢ㄥ悕鍜屾祦ID浣跨敤浜嗕笉鍚岀殑鍥芥爣ID"); return; } } if (streamPushStreamSet.contains(streamPushExcelDto.getApp() + streamPushExcelDto.getStream() + streamPushExcelDto.getPlatformId())) { - errorStreamList.add(streamPushExcelDto.getApp() + "/" + streamPushExcelDto.getStream()+ "/" + - streamPushExcelDto.getPlatformId() + "(鍚屼竴缁刟pp+stream娣诲姞鍦ㄤ簡鍚屼竴涓钩鍙颁笅)"); + errorStreamList.add("琛岋細" + rowIndex + ", " + streamPushExcelDto.getApp() + "/" + streamPushExcelDto.getStream()+ " 骞冲彴淇℃伅閲嶅"); return; }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()); } @@ -165,7 +180,7 @@ gBMap.clear(); streamPushStreamSet.clear(); streamPushItemsForPlatform.clear(); - errorDataHandler.handle(errorStreamList, errorGBList); + errorDataHandler.handle(errorStreamList, errorInfoList); } private void saveData(){ diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java index 7940011..5628be9 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java @@ -3,7 +3,6 @@ import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; 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.web.gb28181.dto.DeviceChannelExtend; import org.apache.ibatis.annotations.*; @@ -74,8 +73,8 @@ "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='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 == false' > AND dc.status=0</if>" + + " <if test='online == true' > AND dc.status= true</if>" + + " <if test='online == false' > AND dc.status= false</if>" + " <if test='hasSubChannel == true' > 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=')'>" + @@ -97,8 +96,8 @@ " <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='parentChannelId != null'> AND dc.parent_id=#{parentChannelId} </if> " + - " <if test='online == true' > AND dc.status=1</if>" + - " <if test='online == false' > AND dc.status=0</if>" + + " <if test='online == true' > AND dc.status=true</if>" + + " <if test='online == false' > AND dc.status=false</if>" + " <if test='hasSubChannel == true' > 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=')'>" + @@ -121,8 +120,8 @@ " <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='parentChannelId != null'> AND dc.parent_id=#{parentChannelId} </if> " + - " <if test='online == true' > AND dc.status=1</if>" + - " <if test='online == false' > AND dc.status=0</if>" + + " <if test='online == true' > AND dc.status=true</if>" + + " <if test='online == false' > AND dc.status=false</if>" + " <if test='hasSubChannel == true' > 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=')'>" + @@ -165,8 +164,8 @@ " LEFT JOIN wvp_platform_gb_channel pgc on pgc.device_channel_id = dc.id " + " 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='online == true' > AND dc.status=1</if> " + - " <if test='online == false' > AND dc.status=0</if> " + + " <if test='online == true' > AND dc.status=true</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 == 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> " + @@ -191,10 +190,10 @@ @Select("SELECT * FROM wvp_device_channel WHERE channel_id=#{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); - @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); @Insert("<script> " + @@ -271,7 +270,7 @@ "</script>") 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); @Update({"<script>" + @@ -283,7 +282,7 @@ "<if test='item.manufacture != null'>, manufacture=#{item.manufacture}</if>" + "<if test='item.model != null'>, model=#{item.model}</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.subCount != null'>, sub_count=#{item.subCount}</if>" + "<if test='item.address != null'>, address=#{item.address}</if>" + @@ -317,7 +316,7 @@ 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); @Delete(value = {" <script>" + @@ -406,9 +405,6 @@ List<DeviceChannel> queryAllChannels(String deviceId); - @Select("select count(1) as total, sum(status) as online from wvp_device_channel") - ResourceBaceInfo getOverview(); - @Select("select channelId" + ", device_id" + ", latitude" + @@ -420,7 +416,7 @@ "from wvp_device_channel where device_id = #{deviceId} " + "and latitude != 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); @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 @@ @Update({"<script>" + "<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>" + "</script>"}) int batchOnline(List<DeviceChannel> channels); @Update({"<script>" + "<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>" + "</script>"}) 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(); } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java index ebf2933..7546545 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java @@ -1,7 +1,6 @@ package com.genersoft.iot.vmp.storager.dao; import com.genersoft.iot.vmp.gb28181.bean.Device; -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; import org.apache.ibatis.annotations.*; import org.springframework.stereotype.Repository; @@ -162,8 +161,10 @@ "tree_type,"+ "online,"+ "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>"+ + " order by create_time desc "+ " </script>" ) List<Device> getDevices(Boolean online); @@ -287,9 +288,6 @@ "#{mediaServerId}" + ")") void addCustomDevice(Device device); - - @Select("select count(1) as total, sum(online) as online FROM wvp_device") - ResourceBaceInfo getOverview(); @Select("select * FROM wvp_device") List<Device> getAll(); diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java index 5f8702c..e313ace 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java @@ -117,7 +117,7 @@ void batchDelForGbStream(List<GbStream> gbStreams); @Insert("<script> " + - "INSERT IGNORE into wvp_gb_stream " + + "INSERT into wvp_gb_stream " + "(app, stream, gb_id, name, " + "longitude, latitude, stream_type,media_server_id,create_time)" + "values " + @@ -127,7 +127,7 @@ "#{item.mediaServerId}, #{item.createTime}) "+ "</foreach> " + "</script>") - @Options(useGeneratedKeys = true, keyProperty = "gbStreamId", keyColumn = "gbStreamId") + @Options(useGeneratedKeys = true, keyProperty = "gbStreamId", keyColumn = "gb_stream_id") void batchAdd(List<StreamPushItem> subList); @Update({"<script>" + diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamProxyMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamProxyMapper.java index ec6d870..3a1a69e 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamProxyMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamProxyMapper.java @@ -1,7 +1,7 @@ package com.genersoft.iot.vmp.storager.dao; 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.springframework.stereotype.Repository; @@ -78,5 +78,12 @@ List<StreamProxyItem> selectAutoRemoveItemByMediaServerId(String mediaServerId); @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(); } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java index fefdab3..63fea06 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java @@ -3,7 +3,6 @@ import com.genersoft.iot.vmp.gb28181.bean.GbStream; import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis; -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; import org.apache.ibatis.annotations.*; import org.springframework.stereotype.Repository; @@ -89,7 +88,7 @@ StreamPushItem selectOne(String app, String stream); @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) " + "VALUES <foreach collection='streamPushItems' item='item' index='index' separator=','>" + "( #{item.app}, #{item.stream}, #{item.totalReaderCount}, #{item.originType}, " + @@ -171,9 +170,20 @@ @Select("SELECT CONCAT(app,stream) from wvp_gb_stream") List<String> getAllAppAndStream(); + @Select("select count(1) from wvp_stream_push ") + int getAllCount(); + @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 == false'> select count(1) as total, sum(status) 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)from wvp_stream_push where status = true </if>" + " </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); } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java index cee613d..f73339d 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java @@ -123,6 +123,9 @@ TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); // 鏁版嵁鍘婚噸 List<DeviceChannel> channels = new ArrayList<>(); + + List<DeviceChannel> updateChannels = new ArrayList<>(); + List<DeviceChannel> addChannels = new ArrayList<>(); StringBuilder stringBuilder = new StringBuilder(); Map<String, Integer> subContMap = new HashMap<>(); if (deviceChannelList.size() > 0) { @@ -131,18 +134,22 @@ for (DeviceChannel deviceChannel : deviceChannelList) { if (!gbIdSet.contains(deviceChannel.getChannelId())) { gbIdSet.add(deviceChannel.getChannelId()); + deviceChannel.setUpdateTime(DateUtil.getNow()); if (allChannelMap.containsKey(deviceChannel.getChannelId())) { deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId()); 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()); if (!CollectionUtils.isEmpty(strings)){ 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); if (!ObjectUtils.isEmpty(deviceChannel.getParentId())) { @@ -175,21 +182,36 @@ } try { int cleanChannelsResult = deviceChannelMapper.cleanChannelsNotInList(deviceId, channels); + int limitCount = 300; boolean result = cleanChannelsResult < 0; - if (!result && channels.size() > 0) { - if (channels.size() > limitCount) { - for (int i = 0; i < channels.size(); i += limitCount) { + if (!result && addChannels.size() > 0) { + if (addChannels.size() > limitCount) { + for (int i = 0; i < addChannels.size(); i += limitCount) { int toIndex = i + limitCount; - if (i + limitCount > channels.size()) { - toIndex = channels.size(); + if (i + limitCount > addChannels.size()) { + toIndex = addChannels.size(); } - result = result || deviceChannelMapper.batchAddOrUpdate(channels.subList(i, toIndex)) < 0; + result = result || deviceChannelMapper.batchAdd(addChannels.subList(i, toIndex)) < 0; } }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) { //浜嬪姟鍥炴粴 dataSourceTransactionManager.rollback(transactionStatus); @@ -919,7 +941,7 @@ deviceChannel.setLatitude(0.0); deviceChannel.setDeviceId(platform.getDeviceGBId()); deviceChannel.setManufacture("wvp-pro"); - deviceChannel.setStatus(1); + deviceChannel.setStatus(true); deviceChannel.setParental(1); deviceChannel.setRegisterWay(1); diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceBaceInfo.java b/src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceBaseInfo.java similarity index 65% rename from src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceBaceInfo.java rename to src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceBaseInfo.java index b50d97a..dab9b0a 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceBaceInfo.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceBaseInfo.java @@ -1,9 +1,17 @@ package com.genersoft.iot.vmp.vmanager.bean; -public class ResourceBaceInfo { +public class ResourceBaseInfo { private int total; private int online; + public ResourceBaseInfo() { + } + + public ResourceBaseInfo(int total, int online) { + this.total = total; + this.online = online; + } + public int getTotal() { return total; } diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceInfo.java b/src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceInfo.java index b8d7009..3b0ee0d 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceInfo.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/bean/ResourceInfo.java @@ -2,40 +2,40 @@ public class ResourceInfo { - private ResourceBaceInfo device; - private ResourceBaceInfo channel; - private ResourceBaceInfo push; - private ResourceBaceInfo proxy; + private ResourceBaseInfo device; + private ResourceBaseInfo channel; + private ResourceBaseInfo push; + private ResourceBaseInfo proxy; - public ResourceBaceInfo getDevice() { + public ResourceBaseInfo getDevice() { return device; } - public void setDevice(ResourceBaceInfo device) { + public void setDevice(ResourceBaseInfo device) { this.device = device; } - public ResourceBaceInfo getChannel() { + public ResourceBaseInfo getChannel() { return channel; } - public void setChannel(ResourceBaceInfo channel) { + public void setChannel(ResourceBaseInfo channel) { this.channel = channel; } - public ResourceBaceInfo getPush() { + public ResourceBaseInfo getPush() { return push; } - public void setPush(ResourceBaceInfo push) { + public void setPush(ResourceBaseInfo push) { this.push = push; } - public ResourceBaceInfo getProxy() { + public ResourceBaseInfo getProxy() { return proxy; } - public void setProxy(ResourceBaceInfo proxy) { + public void setProxy(ResourceBaseInfo proxy) { this.proxy = proxy; } } diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java index 88126ac..bef7ffb 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java @@ -15,7 +15,7 @@ import com.genersoft.iot.vmp.service.bean.MediaServerLoad; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; 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.SystemConfigInfo; import io.swagger.v3.oas.annotations.Operation; @@ -251,13 +251,13 @@ @Operation(summary = "鑾峰彇璐熻浇淇℃伅") public ResourceInfo getResourceInfo() { ResourceInfo result = new ResourceInfo(); - ResourceBaceInfo deviceInfo = deviceService.getOverview(); + ResourceBaseInfo deviceInfo = deviceService.getOverview(); result.setDevice(deviceInfo); - ResourceBaceInfo channelInfo = channelService.getOverview(); + ResourceBaseInfo channelInfo = channelService.getOverview(); result.setChannel(channelInfo); - ResourceBaceInfo pushInfo = pushService.getOverview(); + ResourceBaseInfo pushInfo = pushService.getOverview(); result.setPush(pushInfo); - ResourceBaceInfo proxyInfo = proxyService.getOverview(); + ResourceBaseInfo proxyInfo = proxyService.getOverview(); result.setProxy(proxyInfo); return result; diff --git a/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java b/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java index 90dd686..6688503 100644 --- a/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java +++ b/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java @@ -113,7 +113,7 @@ result.put("error","channel[ " + code + " ]鏈壘鍒�"); resultDeferredResult.setResult(result); return resultDeferredResult; - }else if (deviceChannel.getStatus() == 0) { + }else if (!deviceChannel.isStatus()) { JSONObject result = new JSONObject(); result.put("error","channel[ " + code + " ]offline"); resultDeferredResult.setResult(result); -- Gitblit v1.8.0