diff --git a/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java b/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java index 990f003b..4a92e093 100644 --- a/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java +++ b/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java @@ -3,7 +3,6 @@ package com.genersoft.iot.vmp; import java.util.logging.LogManager; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication diff --git a/src/main/java/com/genersoft/iot/vmp/common/VideoManagerConstants.java b/src/main/java/com/genersoft/iot/vmp/common/VideoManagerConstants.java index f80fd0ea..846d3d01 100644 --- a/src/main/java/com/genersoft/iot/vmp/common/VideoManagerConstants.java +++ b/src/main/java/com/genersoft/iot/vmp/common/VideoManagerConstants.java @@ -1,7 +1,7 @@ package com.genersoft.iot.vmp.common; /** - * @Description:TODO(这里用一句话描述这个类的作用) + * @Description: 定义常量 * @author: swwheihei * @date: 2019年5月30日 下午3:04:04 * diff --git a/src/main/java/com/genersoft/iot/vmp/conf/VManagerConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/VManagerConfig.java index 4c71b5c9..ff9d6439 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/VManagerConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/VManagerConfig.java @@ -4,7 +4,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; /** - * @Description:TODO(这里用一句话描述这个类的作用) + * @Description: 获取数据库配置 * @author: swwheihei * @date: 2020年5月6日 下午2:46:00 */ diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java index 25a35a47..c5dc1e5c 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java @@ -149,8 +149,6 @@ public class SipLayer implements SipListener { } } } - // } else if (status == Response.TRYING) { - // trying不会回复 } else if ((status >= 100) && (status < 200)) { // 增加其它无需回复的响应,如101、180等 } else { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java b/src/main/java/com/genersoft/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java index 53282e20..4605ede8 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java @@ -91,8 +91,10 @@ public class DigestServerAuthenticationHelper { long time = date.getTime(); Random rand = new Random(); long pad = rand.nextLong(); - String nonceString = (new Long(time)).toString() - + (new Long(pad)).toString(); + // String nonceString = (new Long(time)).toString() + // + (new Long(pad)).toString(); + String nonceString = Long.valueOf(time).toString() + + Long.valueOf(pad).toString(); byte mdbytes[] = messageDigest.digest(nonceString.getBytes()); // Convert the mdbytes array into a hex string. return toHexString(mdbytes); @@ -191,7 +193,7 @@ public class DigestServerAuthenticationHelper { // 客户端随机数,这是一个不透明的字符串值,由客户端提供,并且客户端和服务器都会使用,以避免用明文文本。 // 这使得双方都可以查验对方的身份,并对消息的完整性提供一些保护 - String cNonce = authHeader.getCNonce(); + //String cNonce = authHeader.getCNonce(); // nonce计数器,是一个16进制的数值,表示同一nonce下客户端发送出请求的数量 int nc = authHeader.getNonceCount(); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java index 45a61123..4ec182af 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java @@ -1,7 +1,7 @@ package com.genersoft.iot.vmp.gb28181.bean; -import gov.nist.javax.sip.header.SIPDate; +//import gov.nist.javax.sip.header.SIPDate; import java.util.List; diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/WvpSipDate.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/WvpSipDate.java index 42ad6edd..f2a256b9 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/WvpSipDate.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/WvpSipDate.java @@ -10,6 +10,11 @@ import java.util.*; */ public class WvpSipDate extends SIPDate { + /** + * + */ + private static final long serialVersionUID = 1L; + private Calendar javaCal; public WvpSipDate(long timeMillis) { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java index 176a435e..e00a59fc 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java @@ -1,22 +1,14 @@ package com.genersoft.iot.vmp.gb28181.event; -import com.alibaba.fastjson.JSONObject; -import com.genersoft.iot.vmp.media.zlm.ZLMHttpHookSubscribe; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import javax.sip.ResponseEvent; -import javax.sip.message.Request; -import java.util.EventObject; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @Component public class SipSubscribe { - private final static Logger logger = LoggerFactory.getLogger(SipSubscribe.class); - private Map errorSubscribes = new ConcurrentHashMap<>(); private Map okSubscribes = new ConcurrentHashMap<>(); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEvent.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEvent.java index fecc8b1b..9f91bed9 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEvent.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEvent.java @@ -10,6 +10,11 @@ import org.springframework.context.ApplicationEvent; */ public class AlarmEvent extends ApplicationEvent { + /** + * + */ + private static final long serialVersionUID = 1L; + public AlarmEvent(Object source) { super(source); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/OfflineEvent.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/OfflineEvent.java index 55531060..aa45efe6 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/OfflineEvent.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/OfflineEvent.java @@ -3,18 +3,17 @@ package com.genersoft.iot.vmp.gb28181.event.offline; import org.springframework.context.ApplicationEvent; /** - * @Description:TODO(这里用一句话描述这个类的作用) + * @Description: 离线事件类 * @author: swwheihei * @date: 2020年5月6日 上午11:33:13 */ public class OfflineEvent extends ApplicationEvent { - /** - * @Title: OutlineEvent - * @Description: TODO(这里用一句话描述这个方法的作用) - * @param: @param source - * @throws - */ + /** + * + */ + private static final long serialVersionUID = 1L; + public OfflineEvent(Object source) { super(source); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/online/OnlineEvent.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/online/OnlineEvent.java index 86eddc16..e077cb98 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/online/OnlineEvent.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/online/OnlineEvent.java @@ -3,18 +3,17 @@ package com.genersoft.iot.vmp.gb28181.event.online; import org.springframework.context.ApplicationEvent; /** - * @Description:TODO(这里用一句话描述这个类的作用) + * @Description: 在线事件类 * @author: swwheihei * @date: 2020年5月6日 上午11:32:56 */ public class OnlineEvent extends ApplicationEvent { - /** - * @Title: OnlineEvent - * @Description: TODO(这里用一句话描述这个方法的作用) - * @param: @param source - * @throws - */ + /** + * + */ + private static final long serialVersionUID = 1L; + public OnlineEvent(Object source) { super(source); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java index b8638659..77e6bd95 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java @@ -8,10 +8,9 @@ import javax.sip.message.Request; import javax.sip.message.Response; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +// import org.slf4j.Logger; +// import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; import com.genersoft.iot.vmp.conf.SipConfig; @@ -40,14 +39,14 @@ import com.genersoft.iot.vmp.utils.SpringBeanFactory; import com.genersoft.iot.vmp.utils.redis.RedisUtil; /** - * @Description:TODO(这里用一句话描述这个类的作用) + * @Description: SIP信令处理分配 * @author: swwheihei * @date: 2020年5月3日 下午4:24:37 */ @Component public class SIPProcessorFactory { - private final static Logger logger = LoggerFactory.getLogger(SIPProcessorFactory.class); + // private final static Logger logger = LoggerFactory.getLogger(SIPProcessorFactory.class); @Autowired private SipConfig sipConfig; diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/CheckForAllRecordsThread.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/CheckForAllRecordsThread.java new file mode 100644 index 00000000..770edf06 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/CheckForAllRecordsThread.java @@ -0,0 +1,78 @@ +package com.genersoft.iot.vmp.gb28181.transmit.callback; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import com.genersoft.iot.vmp.gb28181.bean.RecordInfo; +import com.genersoft.iot.vmp.gb28181.bean.RecordItem; +import com.genersoft.iot.vmp.gb28181.transmit.request.impl.MessageRequestProcessor; +import com.genersoft.iot.vmp.utils.redis.RedisUtil; + +import org.slf4j.Logger; + +@SuppressWarnings("unchecked") +public class CheckForAllRecordsThread extends Thread { + + private String key; + + private RecordInfo recordInfo; + + private RedisUtil redis; + + private Logger logger; + + private DeferredResultHolder deferredResultHolder; + + public CheckForAllRecordsThread(String key, RecordInfo recordInfo) { + this.key = key; + this.recordInfo = recordInfo; + } + + public void run() { + + String cacheKey = this.key; + + for (long stop = System.nanoTime() + TimeUnit.SECONDS.toNanos(10); stop > System.nanoTime();) { + List cacheKeys = redis.scan(cacheKey + "_*"); + List totalRecordList = new ArrayList(); + for (int i = 0; i < cacheKeys.size(); i++) { + totalRecordList.addAll((List) redis.get(cacheKeys.get(i).toString())); + } + if (totalRecordList.size() < this.recordInfo.getSumNum()) { + logger.info("已获取" + totalRecordList.size() + "项录像数据,共" + this.recordInfo.getSumNum() + "项"); + } else { + logger.info("录像数据已全部获取,共" + this.recordInfo.getSumNum() + "项"); + this.recordInfo.setRecordList(totalRecordList); + for (int i = 0; i < cacheKeys.size(); i++) { + redis.del(cacheKeys.get(i).toString()); + } + break; + } + } + // 自然顺序排序, 元素进行升序排列 + this.recordInfo.getRecordList().sort(Comparator.naturalOrder()); + RequestMessage msg = new RequestMessage(); + String deviceId = recordInfo.getDeviceId(); + msg.setDeviceId(deviceId); + msg.setType(DeferredResultHolder.CALLBACK_CMD_RECORDINFO); + msg.setData(recordInfo); + deferredResultHolder.invokeResult(msg); + logger.info("处理完成,返回结果"); + MessageRequestProcessor.threadNameList.remove(cacheKey); + } + + public void setRedis(RedisUtil redis) { + this.redis = redis; + } + + public void setDeferredResultHolder(DeferredResultHolder deferredResultHolder) { + this.deferredResultHolder = deferredResultHolder; + } + + public void setLogger(Logger logger) { + this.logger = logger; + } + +} diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java index edf86797..6fcc2e02 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java @@ -1,6 +1,5 @@ package com.genersoft.iot.vmp.gb28181.transmit.callback; -import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -10,10 +9,11 @@ import org.springframework.stereotype.Component; import org.springframework.web.context.request.async.DeferredResult; /** - * @Description:TODO(这里用一句话描述这个类的作用) + * @Description: 异步请求处理 * @author: swwheihei * @date: 2020年5月8日 下午7:59:05 */ +@SuppressWarnings(value = {"rawtypes", "unchecked"}) @Component public class DeferredResultHolder { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/RequestMessage.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/RequestMessage.java index fcf7e7aa..223092fb 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/RequestMessage.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/RequestMessage.java @@ -1,7 +1,7 @@ package com.genersoft.iot.vmp.gb28181.transmit.callback; /** - * @Description:TODO(这里用一句话描述这个类的作用) + * @Description: 请求信息定义 * @author: swwheihei * @date: 2020年5月8日 下午1:09:18 */ diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java index 30fbfe94..6fa4eca9 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java @@ -1,6 +1,5 @@ package com.genersoft.iot.vmp.gb28181.transmit.cmd; -import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; import com.genersoft.iot.vmp.media.zlm.ZLMHttpHookSubscribe; diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java index c89af839..11e3e16e 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java @@ -18,7 +18,6 @@ import org.springframework.stereotype.Component; import com.genersoft.iot.vmp.conf.SipConfig; import com.genersoft.iot.vmp.gb28181.bean.Device; -import com.genersoft.iot.vmp.gb28181.bean.Host; /** * @Description:摄像头命令request创造器 TODO 冗余代码太多待优化 diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java index c174455f..6bab8090 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java @@ -1,21 +1,18 @@ package com.genersoft.iot.vmp.gb28181.transmit.cmd.impl; import java.text.ParseException; -import java.util.UUID; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.sip.*; import javax.sip.address.SipURI; import javax.sip.header.CallIdHeader; -import javax.sip.header.Header; import javax.sip.header.ViaHeader; import javax.sip.message.Request; import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.conf.MediaServerConfig; -import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; import com.genersoft.iot.vmp.media.zlm.ZLMHttpHookSubscribe; import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java index c865ad39..e7fbfe0d 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java @@ -23,6 +23,7 @@ import com.genersoft.iot.vmp.gb28181.bean.RecordInfo; import com.genersoft.iot.vmp.gb28181.bean.RecordItem; import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector; import com.genersoft.iot.vmp.gb28181.event.EventPublisher; +import com.genersoft.iot.vmp.gb28181.transmit.callback.CheckForAllRecordsThread; import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; @@ -43,14 +44,17 @@ import org.dom4j.io.SAXReader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; + /** * @Description:MESSAGE请求处理器 * @author: swwheihei * @date: 2020年5月3日 下午5:32:41 */ - +@SuppressWarnings(value={"unchecked", "rawtypes"}) public class MessageRequestProcessor extends SIPRequestAbstractProcessor { + public static volatile List threadNameList = new ArrayList(); + private UserSetup userSetup = (UserSetup) SpringBeanFactory.getBean("userSetup"); private final static Logger logger = LoggerFactory.getLogger(MessageRequestProcessor.class); @@ -240,10 +244,10 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { try { Element rootElement = getRootElement(evt); String deviceId = XmlUtil.getText(rootElement, "DeviceID"); - String result = XmlUtil.getText(rootElement, "Result"); + //String result = XmlUtil.getText(rootElement, "Result"); // 回复200 OK responseAck(evt); - if (!XmlUtil.isEmpty(result)) { + if (rootElement.getName().equals("Response")) {//} !XmlUtil.isEmpty(result)) { // 此处是对本平台发出DeviceControl指令的应答 JSONObject json = new JSONObject(); XmlUtil.node2Json(rootElement, json); @@ -272,11 +276,10 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { try { Element rootElement = getRootElement(evt); String deviceId = XmlUtil.getText(rootElement, "DeviceID"); - String result = XmlUtil.getText(rootElement, "Result"); // 回复200 OK responseAck(evt); - //if (!XmlUtil.isEmpty(result)) { - // 此处是对本平台发出DeviceControl指令的应答 + if (rootElement.getName().equals("Response")) { + // 此处是对本平台发出DeviceControl指令的应答 JSONObject json = new JSONObject(); XmlUtil.node2Json(rootElement, json); if (logger.isDebugEnabled()) { @@ -287,9 +290,9 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { msg.setType(DeferredResultHolder.CALLBACK_CMD_DEVICECONFIG); msg.setData(json); deferredResultHolder.invokeResult(msg); - // } else { - // // 此处是上级发出的DeviceConfig指令 - //} + } else { + // 此处是上级发出的DeviceConfig指令 + } } catch (ParseException | SipException | InvalidArgumentException | DocumentException e) { e.printStackTrace(); } @@ -304,11 +307,10 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { try { Element rootElement = getRootElement(evt); String deviceId = XmlUtil.getText(rootElement, "DeviceID"); - String result = XmlUtil.getText(rootElement, "Result"); // 回复200 OK responseAck(evt); - //if (!XmlUtil.isEmpty(result)) { - // 此处是对本平台发出DeviceControl指令的应答 + if (rootElement.getName().equals("Response")) { + // 此处是对本平台发出DeviceControl指令的应答 JSONObject json = new JSONObject(); XmlUtil.node2Json(rootElement, json); if (logger.isDebugEnabled()) { @@ -319,9 +321,9 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { msg.setType(DeferredResultHolder.CALLBACK_CMD_CONFIGDOWNLOAD); msg.setData(json); deferredResultHolder.invokeResult(msg); - // } else { - // // 此处是上级发出的DeviceConfig指令 - //} + } else { + // 此处是上级发出的DeviceConfig指令 + } } catch (ParseException | SipException | InvalidArgumentException | DocumentException e) { e.printStackTrace(); } @@ -336,7 +338,6 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { try { Element rootElement = getRootElement(evt); String deviceId = XmlUtil.getText(rootElement, "DeviceID"); - String result = XmlUtil.getText(rootElement, "Result"); // 回复200 OK responseAck(evt); if (rootElement.getName().equals("Response")) {// !XmlUtil.isEmpty(result)) { @@ -648,8 +649,11 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { Element recordListElement = rootElement.element("RecordList"); if (recordListElement == null || recordInfo.getSumNum() == 0) { logger.info("无录像数据"); - // responseAck(evt); - // return; + RequestMessage msg = new RequestMessage(); + msg.setDeviceId(deviceId); + msg.setType(DeferredResultHolder.CALLBACK_CMD_RECORDINFO); + msg.setData(recordInfo); + deferredResultHolder.invokeResult(msg); } else { Iterator recordListIterator = recordListElement.elementIterator(); List recordList = new ArrayList(); @@ -679,44 +683,63 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { record.setRecorderId(XmlUtil.getText(itemRecord, "RecorderID")); recordList.add(record); } - // recordList.sort(Comparator.naturalOrder()); recordInfo.setRecordList(recordList); } - // 存在录像且如果当前录像明细个数小于总条数,说明拆包返回,需要组装,暂不返回 - if (recordInfo.getSumNum() > 0 && recordList.size() > 0 && recordList.size() < recordInfo.getSumNum()) { - // 为防止连续请求该设备的录像数据,返回数据错乱,特增加sn进行区分 - String cacheKey = CACHE_RECORDINFO_KEY + deviceId + sn; - - redis.set(cacheKey + "_" + uuid, recordList, 90); - List cacheKeys = redis.scan(cacheKey + "_*"); - List totalRecordList = new ArrayList(); - for (int i = 0; i < cacheKeys.size(); i++) { - totalRecordList.addAll((List) redis.get(cacheKeys.get(i).toString())); + // 改用单独线程统计已获取录像文件数量,避免多包并行分别统计不完整的问题 + String cacheKey = CACHE_RECORDINFO_KEY + deviceId + sn; + redis.set(cacheKey + "_" + uuid, recordList, 90); + if (!threadNameList.contains(cacheKey)) { + threadNameList.add(cacheKey); + CheckForAllRecordsThread chk = new CheckForAllRecordsThread(cacheKey, recordInfo); + chk.setName(cacheKey); + chk.setDeferredResultHolder(deferredResultHolder); + chk.setRedis(redis); + chk.setLogger(logger); + chk.start(); + if (logger.isDebugEnabled()) { + logger.debug("Start Thread " + cacheKey + "."); } - if (totalRecordList.size() < recordInfo.getSumNum()) { - logger.info("已获取" + totalRecordList.size() + "项录像数据,共" + recordInfo.getSumNum() + "项"); - return; - } - logger.info("录像数据已全部获取,共" + recordInfo.getSumNum() + "项"); - recordInfo.setRecordList(totalRecordList); - for (int i = 0; i < cacheKeys.size(); i++) { - redis.del(cacheKeys.get(i).toString()); + } else { + if (logger.isDebugEnabled()) { + logger.debug("Thread " + cacheKey + " already started."); } } - // 自然顺序排序, 元素进行升序排列 - recordInfo.getRecordList().sort(Comparator.naturalOrder()); + + // 存在录像且如果当前录像明细个数小于总条数,说明拆包返回,需要组装,暂不返回 + // if (recordInfo.getSumNum() > 0 && recordList.size() > 0 && recordList.size() < recordInfo.getSumNum()) { + // // 为防止连续请求该设备的录像数据,返回数据错乱,特增加sn进行区分 + // String cacheKey = CACHE_RECORDINFO_KEY + deviceId + sn; + + // redis.set(cacheKey + "_" + uuid, recordList, 90); + // List cacheKeys = redis.scan(cacheKey + "_*"); + // List totalRecordList = new ArrayList(); + // for (int i = 0; i < cacheKeys.size(); i++) { + // totalRecordList.addAll((List) redis.get(cacheKeys.get(i).toString())); + // } + // if (totalRecordList.size() < recordInfo.getSumNum()) { + // logger.info("已获取" + totalRecordList.size() + "项录像数据,共" + recordInfo.getSumNum() + "项"); + // return; + // } + // logger.info("录像数据已全部获取,共" + recordInfo.getSumNum() + "项"); + // recordInfo.setRecordList(totalRecordList); + // for (int i = 0; i < cacheKeys.size(); i++) { + // redis.del(cacheKeys.get(i).toString()); + // } + // } + // // 自然顺序排序, 元素进行升序排列 + // recordInfo.getRecordList().sort(Comparator.naturalOrder()); } // 走到这里,有以下可能:1、没有录像信息,第一次收到recordinfo的消息即返回响应数据,无redis操作 // 2、有录像数据,且第一次即收到完整数据,返回响应数据,无redis操作 // 3、有录像数据,在超时时间内收到多次包组装后数量足够,返回数据 - RequestMessage msg = new RequestMessage(); - msg.setDeviceId(deviceId); - msg.setType(DeferredResultHolder.CALLBACK_CMD_RECORDINFO); - msg.setData(recordInfo); - deferredResultHolder.invokeResult(msg); - logger.info("处理完成,返回结果"); + // RequestMessage msg = new RequestMessage(); + // msg.setDeviceId(deviceId); + // msg.setType(DeferredResultHolder.CALLBACK_CMD_RECORDINFO); + // msg.setData(recordInfo); + // deferredResultHolder.invokeResult(msg); + // logger.info("处理完成,返回结果"); } catch (DocumentException | SipException | InvalidArgumentException | ParseException e) { e.printStackTrace(); } @@ -799,4 +822,4 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { public void setRedisCatchStorage(IRedisCatchStorage redisCatchStorage) { this.redisCatchStorage = redisCatchStorage; } -} +} \ No newline at end of file diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/NotifyRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/NotifyRequestProcessor.java index 8c7d969c..897b6ab8 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/NotifyRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/NotifyRequestProcessor.java @@ -50,26 +50,20 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { private final static Logger logger = LoggerFactory.getLogger(MessageRequestProcessor.class); - private SIPCommander cmder; - private IVideoManagerStorager storager; private IRedisCatchStorage redisCatchStorage; private EventPublisher publisher; - private RedisUtil redis; - - private DeferredResultHolder deferredResultHolder; - private DeviceOffLineDetector offLineDetector; private static final String NOTIFY_CATALOG = "Catalog"; private static final String NOTIFY_ALARM = "Alarm"; private static final String NOTIFY_MOBILE_POSITION = "MobilePosition"; - @Override - public void process(RequestEvent evt) { + @Override + public void process(RequestEvent evt) { try { Element rootElement = getRootElement(evt); String cmd = XmlUtil.getText(rootElement, "CmdType"); @@ -87,18 +81,19 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { logger.info("接收到消息:" + cmd); response200Ok(evt); } - } catch (DocumentException | SipException |InvalidArgumentException | ParseException e) { + } catch (DocumentException | SipException | InvalidArgumentException | ParseException e) { e.printStackTrace(); } - } + } /** * 处理MobilePosition移动位置Notify + * * @param evt */ private void processNotifyMobilePosition(RequestEvent evt) { try { - //回复 200 OK + // 回复 200 OK Element rootElement = getRootElement(evt); MobilePosition mobilePosition = new MobilePosition(); Element deviceIdElement = rootElement.element("DeviceID"); @@ -112,8 +107,8 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { mobilePosition.setDeviceId(XmlUtil.getText(rootElement, "DeviceID")); mobilePosition.setTime(XmlUtil.getText(rootElement, "Time")); mobilePosition.setLongitude(Double.parseDouble(XmlUtil.getText(rootElement, "Longitude"))); - mobilePosition.setLatitude(Double.parseDouble(XmlUtil.getText(rootElement, "Latitude"))); - if (NumericUtil.isDouble(XmlUtil.getText(rootElement, "Speed"))) { + mobilePosition.setLatitude(Double.parseDouble(XmlUtil.getText(rootElement, "Latitude"))); + if (NumericUtil.isDouble(XmlUtil.getText(rootElement, "Speed"))) { mobilePosition.setSpeed(Double.parseDouble(XmlUtil.getText(rootElement, "Speed"))); } else { mobilePosition.setSpeed(0.0); @@ -147,6 +142,7 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { /*** * 处理alarm设备报警Notify + * * @param evt */ private void processNotifyAlarm(RequestEvent evt) { @@ -180,7 +176,7 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { deviceAlarm.setLatitude(0.00); } - if ( deviceAlarm.getAlarmMethod().equals("4")) { + if (deviceAlarm.getAlarmMethod().equals("4")) { MobilePosition mobilePosition = new MobilePosition(); mobilePosition.setDeviceId(deviceAlarm.getDeviceId()); mobilePosition.setTime(deviceAlarm.getAlarmTime()); @@ -245,7 +241,7 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { DeviceChannel deviceChannel = new DeviceChannel(); deviceChannel.setName(channelName); deviceChannel.setChannelId(channelDeviceId); - // ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR的兼容性处理 + // ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR的兼容性处理 if (status.equals("ON") || status.equals("On") || status.equals("ONLINE")) { deviceChannel.setStatus(1); } @@ -259,29 +255,34 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { deviceChannel.setCivilCode(XmlUtil.getText(itemDevice, "CivilCode")); deviceChannel.setBlock(XmlUtil.getText(itemDevice, "Block")); deviceChannel.setAddress(XmlUtil.getText(itemDevice, "Address")); - if (XmlUtil.getText(itemDevice, "Parental") == null || XmlUtil.getText(itemDevice, "Parental") == "") { + if (XmlUtil.getText(itemDevice, "Parental") == null + || XmlUtil.getText(itemDevice, "Parental") == "") { deviceChannel.setParental(0); } else { deviceChannel.setParental(Integer.parseInt(XmlUtil.getText(itemDevice, "Parental"))); - } + } deviceChannel.setParentId(XmlUtil.getText(itemDevice, "ParentID")); - if (XmlUtil.getText(itemDevice, "SafetyWay") == null || XmlUtil.getText(itemDevice, "SafetyWay")== "") { + if (XmlUtil.getText(itemDevice, "SafetyWay") == null + || XmlUtil.getText(itemDevice, "SafetyWay") == "") { deviceChannel.setSafetyWay(0); } else { deviceChannel.setSafetyWay(Integer.parseInt(XmlUtil.getText(itemDevice, "SafetyWay"))); } - if (XmlUtil.getText(itemDevice, "RegisterWay") == null || XmlUtil.getText(itemDevice, "RegisterWay") =="") { + if (XmlUtil.getText(itemDevice, "RegisterWay") == null + || XmlUtil.getText(itemDevice, "RegisterWay") == "") { deviceChannel.setRegisterWay(1); } else { deviceChannel.setRegisterWay(Integer.parseInt(XmlUtil.getText(itemDevice, "RegisterWay"))); } deviceChannel.setCertNum(XmlUtil.getText(itemDevice, "CertNum")); - if (XmlUtil.getText(itemDevice, "Certifiable") == null || XmlUtil.getText(itemDevice, "Certifiable") == "") { + if (XmlUtil.getText(itemDevice, "Certifiable") == null + || XmlUtil.getText(itemDevice, "Certifiable") == "") { deviceChannel.setCertifiable(0); } else { deviceChannel.setCertifiable(Integer.parseInt(XmlUtil.getText(itemDevice, "Certifiable"))); } - if (XmlUtil.getText(itemDevice, "ErrCode") == null || XmlUtil.getText(itemDevice, "ErrCode") == "") { + if (XmlUtil.getText(itemDevice, "ErrCode") == null + || XmlUtil.getText(itemDevice, "ErrCode") == "") { deviceChannel.setErrCode(0); } else { deviceChannel.setErrCode(Integer.parseInt(XmlUtil.getText(itemDevice, "ErrCode"))); @@ -289,7 +290,7 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { deviceChannel.setEndTime(XmlUtil.getText(itemDevice, "EndTime")); deviceChannel.setSecrecy(XmlUtil.getText(itemDevice, "Secrecy")); deviceChannel.setIpAddress(XmlUtil.getText(itemDevice, "IPAddress")); - if (XmlUtil.getText(itemDevice, "Port") == null || XmlUtil.getText(itemDevice, "Port") =="") { + if (XmlUtil.getText(itemDevice, "Port") == null || XmlUtil.getText(itemDevice, "Port") == "") { deviceChannel.setPort(0); } else { deviceChannel.setPort(Integer.parseInt(XmlUtil.getText(itemDevice, "Port"))); @@ -305,7 +306,8 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { } else { deviceChannel.setLatitude(0.00); } - if (XmlUtil.getText(itemDevice, "PTZType") == null || XmlUtil.getText(itemDevice, "PTZType") == "") { + if (XmlUtil.getText(itemDevice, "PTZType") == null + || XmlUtil.getText(itemDevice, "PTZType") == "") { deviceChannel.setPTZType(0); } else { deviceChannel.setPTZType(Integer.parseInt(XmlUtil.getText(itemDevice, "PTZType"))); @@ -330,9 +332,9 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { } } - - /*** + /*** * 回复200 OK + * * @param evt * @throws SipException * @throws InvalidArgumentException @@ -343,7 +345,7 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { getServerTransaction(evt).sendResponse(response); } - private Element getRootElement(RequestEvent evt) throws DocumentException { + private Element getRootElement(RequestEvent evt) throws DocumentException { Request request = evt.getRequest(); SAXReader reader = new SAXReader(); reader.setEncoding("gbk"); @@ -352,7 +354,6 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { } public void setCmder(SIPCommander cmder) { - this.cmder = cmder; } public void setStorager(IVideoManagerStorager storager) { @@ -364,11 +365,9 @@ public class NotifyRequestProcessor extends SIPRequestAbstractProcessor { } public void setRedis(RedisUtil redis) { - this.redis = redis; } public void setDeferredResultHolder(DeferredResultHolder deferredResultHolder) { - this.deferredResultHolder = deferredResultHolder; } public void setOffLineDetector(DeviceOffLineDetector offLineDetector) { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java index 18b5de19..22d54a71 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java @@ -145,7 +145,7 @@ public class RegisterRequestProcessor extends SIPRequestAbstractProcessor { // 下发catelog查询目录 if (registerFlag == 1 && device != null) { logger.info("注册成功! deviceId:" + device.getDeviceId()); - boolean exists = storager.exists(device.getDeviceId()); + // boolean exists = storager.exists(device.getDeviceId()); device.setRegisterTimeMillis(System.currentTimeMillis()); storager.updateDevice(device); publisher.onlineEventPublish(device.getDeviceId(), VideoManagerConstants.EVENT_ONLINE_REGISTER); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java index 93f533f9..d67267af 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java @@ -12,14 +12,12 @@ import javax.sip.header.ViaHeader; import javax.sip.message.Request; import javax.sip.message.Response; -import gov.nist.javax.sip.header.CSeq; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +// import org.slf4j.Logger; +// import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import com.genersoft.iot.vmp.conf.SipConfig; import com.genersoft.iot.vmp.gb28181.SipLayer; -import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorFactory; import com.genersoft.iot.vmp.gb28181.transmit.response.ISIPResponseProcessor; @@ -31,7 +29,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.response.ISIPResponseProcessor; @Component public class InviteResponseProcessor implements ISIPResponseProcessor { - private final static Logger logger = LoggerFactory.getLogger(InviteResponseProcessor.class); + // private final static Logger logger = LoggerFactory.getLogger(InviteResponseProcessor.class); /** * 处理invite响应 diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/NumericUtil.java b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/NumericUtil.java index f9fbfb18..4a399b89 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/NumericUtil.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/NumericUtil.java @@ -15,10 +15,10 @@ public class NumericUtil { public static boolean isDouble(String str) { try { Double num2 = Double.valueOf(str); - System.out.println(num2 + " Is an Integer!"); + System.out.println(num2 + " is a valid numeric string!"); return true; } catch (Exception e) { - System.out.println(str + " Is not an Integer!"); + System.out.println(str + " is an invalid numeric string!"); return false; } } @@ -31,10 +31,10 @@ public class NumericUtil { public static boolean isInteger(String str) { try { int num2 = Integer.valueOf(str); - System.out.println(num2 + " Is Number!"); + System.out.println(num2 + " is an integer!"); return true; } catch (Exception e) { - System.out.println(str + " Is not Number!"); + System.out.println(str + " is not an integer!"); return false; } } diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHTTPProxyController.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHTTPProxyController.java index 9daef230..d5c218cd 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHTTPProxyController.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHTTPProxyController.java @@ -1,34 +1,28 @@ package com.genersoft.iot.vmp.media.zlm; -import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.conf.MediaServerConfig; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; -import com.genersoft.iot.vmp.storager.IVideoManagerStorager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +// import com.genersoft.iot.vmp.storager.IVideoManagerStorager; +// import org.slf4j.Logger; +// import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpRequest; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.Enumeration; @RestController @RequestMapping("/zlm") public class ZLMHTTPProxyController { - private final static Logger logger = LoggerFactory.getLogger(ZLMHTTPProxyController.class); + // private final static Logger logger = LoggerFactory.getLogger(ZLMHTTPProxyController.class); - @Autowired - private IVideoManagerStorager storager; + // @Autowired + // private IVideoManagerStorager storager; @Autowired private IRedisCatchStorage redisCatchStorage; diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java index 66ee1b04..ba1a6f15 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java @@ -1,19 +1,13 @@ package com.genersoft.iot.vmp.media.zlm; -import java.math.BigInteger; -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.List; import java.util.UUID; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.conf.MediaServerConfig; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; -import com.genersoft.iot.vmp.utils.IpUtil; import com.genersoft.iot.vmp.vmanager.service.IPlayService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -57,8 +51,8 @@ public class ZLMHttpHookListener { @Autowired private IRedisCatchStorage redisCatchStorage; - @Autowired - private ZLMRESTfulUtils zlmresTfulUtils; + // @Autowired + // private ZLMRESTfulUtils zlmresTfulUtils; @Autowired private ZLMHttpHookSubscribe subscribe; @@ -86,9 +80,6 @@ public class ZLMHttpHookListener { if (logger.isDebugEnabled()) { logger.debug("ZLM HOOK on_flow_report API调用,参数:" + json.toString()); } - // TODO Auto-generated method stub - - JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("msg", "success"); @@ -106,8 +97,6 @@ public class ZLMHttpHookListener { if (logger.isDebugEnabled()) { logger.debug("ZLM HOOK on_http_access API 调用,参数:" + json.toString()); } - // TODO Auto-generated method stub - JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("err", ""); @@ -127,8 +116,6 @@ public class ZLMHttpHookListener { if (logger.isDebugEnabled()) { logger.debug("ZLM HOOK on_play API调用,参数:" + json.toString()); } - // TODO Auto-generated method stub - JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("msg", "success"); @@ -146,15 +133,12 @@ public class ZLMHttpHookListener { if (logger.isDebugEnabled()) { logger.debug("ZLM HOOK on_publish API调用,参数:" + json.toString()); } - String app = json.getString("app"); - String streamId = json.getString("id"); + // String app = json.getString("app"); + // String streamId = json.getString("id"); ZLMHttpHookSubscribe.Event subscribe = this.subscribe.getSubscribe(ZLMHttpHookSubscribe.HookType.on_publish, json); if (subscribe != null) subscribe.response(json); - - // TODO Auto-generated method stub - JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("msg", "success"); @@ -175,8 +159,6 @@ public class ZLMHttpHookListener { if (logger.isDebugEnabled()) { logger.debug("ZLM HOOK on_record_mp4 API调用,参数:" + json.toString()); } - // TODO Auto-generated method stub - JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("msg", "success"); @@ -194,8 +176,6 @@ public class ZLMHttpHookListener { if (logger.isDebugEnabled()) { logger.debug("ZLM HOOK on_rtsp_realm API调用,参数:" + json.toString()); } - // TODO Auto-generated method stub - JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("realm", ""); @@ -214,8 +194,6 @@ public class ZLMHttpHookListener { if (logger.isDebugEnabled()) { logger.debug("ZLM HOOK on_rtsp_auth API调用,参数:" + json.toString()); } - // TODO Auto-generated method stub - JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("encrypted", false); @@ -234,8 +212,6 @@ public class ZLMHttpHookListener { if (logger.isDebugEnabled()) { logger.debug("ZLM HOOK on_shell_login API调用,参数:" + json.toString()); } - // TODO Auto-generated method stub - JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("msg", "success"); @@ -267,8 +243,6 @@ public class ZLMHttpHookListener { redisCatchStorage.stopPlayback(streamInfo); } } - - JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("msg", "success"); @@ -316,8 +290,6 @@ public class ZLMHttpHookListener { if (logger.isDebugEnabled()) { logger.debug("ZLM HOOK on_stream_not_found API调用,参数:" + json.toString()); } - // TODO Auto-generated method stub - if (autoApplyPlay) { String app = json.getString("app"); String streamId = json.getString("stream"); @@ -367,8 +339,6 @@ public class ZLMHttpHookListener { mediaServerConfig.setWanIp(StringUtils.isEmpty(mediaWanIp)? mediaIp: mediaWanIp); mediaServerConfig.setLocalIP(mediaIp); redisCatchStorage.updateMediaInfo(mediaServerConfig); - // TODO Auto-generated method stub - JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("msg", "success"); diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookSubscribe.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookSubscribe.java index 0c00b821..995f9166 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookSubscribe.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookSubscribe.java @@ -1,24 +1,8 @@ package com.genersoft.iot.vmp.media.zlm; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.genersoft.iot.vmp.common.StreamInfo; -import com.genersoft.iot.vmp.conf.MediaServerConfig; -import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; -import com.genersoft.iot.vmp.storager.IVideoManagerStorager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; -import org.springframework.util.ConcurrentReferenceHashMap; -import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; -import java.math.BigInteger; -import java.text.DecimalFormat; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -31,8 +15,6 @@ import java.util.concurrent.ConcurrentHashMap; @Component public class ZLMHttpHookSubscribe { - private final static Logger logger = LoggerFactory.getLogger(ZLMHttpHookSubscribe.class); - public enum HookType{ on_flow_report, on_http_access, @@ -72,8 +54,6 @@ public class ZLMHttpHookSubscribe { for (JSONObject key : eventMap.keySet()) { Boolean result = null; for (String s : key.keySet()) { - String string = hookResponse.getString(s); - String string1 = key.getString(s); if (result == null) { result = key.getString(s).equals(hookResponse.getString(s)); }else { diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java index ac1f51a4..58de847e 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java @@ -11,7 +11,6 @@ import org.springframework.stereotype.Component; import java.io.IOException; import java.net.ConnectException; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; @Component diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java index 282699f9..490bfd8e 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java @@ -5,8 +5,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.conf.MediaServerConfig; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; -import com.genersoft.iot.vmp.storager.IVideoManagerStorager; -import okhttp3.*; +//import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -16,9 +15,6 @@ import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; @@ -28,8 +24,8 @@ public class ZLMRunner implements CommandLineRunner { private final static Logger logger = LoggerFactory.getLogger(ZLMRunner.class); - @Autowired - private IVideoManagerStorager storager; + // @Autowired + // private IVideoManagerStorager storager; @Autowired private IRedisCatchStorage redisCatchStorage; diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java index c0eda001..37f3eb18 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java @@ -12,6 +12,7 @@ import com.github.pagehelper.PageInfo; * @author: swwheihei * @date: 2020年5月6日 下午2:14:31 */ +@SuppressWarnings("rawtypes") public interface IVideoManagerStorager { /** diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java index d4b6f449..958b38a1 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java @@ -11,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; @@ -144,9 +143,9 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage { @Override public StreamInfo queryPlaybackByDevice(String deviceId, String code) { - String format = String.format("%S_*_%s_%s", VideoManagerConstants.PLAY_BLACK_PREFIX, - deviceId, - code); + // String format = String.format("%S_*_%s_%s", VideoManagerConstants.PLAY_BLACK_PREFIX, + // deviceId, + // code); List playLeys = redis.scan(String.format("%S_*_%s_%s", VideoManagerConstants.PLAY_BLACK_PREFIX, deviceId, code)); diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java index cc8320cf..22292ef9 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java @@ -9,19 +9,18 @@ import com.genersoft.iot.vmp.storager.dao.DeviceMapper; import com.genersoft.iot.vmp.storager.dao.DeviceMobilePositionMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; -import org.springframework.util.StringUtils; /** * @Description:视频设备数据存储-jdbc实现 * @author: swwheihei * @date: 2020年5月6日 下午2:31:42 */ +@SuppressWarnings("rawtypes") @Component public class VideoManagerStoragerImpl implements IVideoManagerStorager { @@ -183,11 +182,11 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { @Override public synchronized boolean online(String deviceId) { Device device = deviceMapper.getDeviceByDeviceId(deviceId); - device.setOnline(1); - System.out.println("更新设备在线"); if (device == null) { return false; } + device.setOnline(1); + System.out.println("更新设备在线"); return deviceMapper.update(device) > 0; } @@ -211,7 +210,7 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { */ @Override public void cleanChannelsForDevice(String deviceId) { - int result = deviceChannelMapper.cleanChannelsByDeviceId(deviceId); + deviceChannelMapper.cleanChannelsByDeviceId(deviceId); } /** diff --git a/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java b/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java index e0f7e417..f83d5f3e 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java @@ -4,8 +4,6 @@ import java.util.*; import java.util.concurrent.TimeUnit; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.DataAccessException; -import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.core.*; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; @@ -16,6 +14,7 @@ import org.springframework.util.CollectionUtils; * @date: 2020年5月6日 下午8:27:29 */ @Component +@SuppressWarnings(value = {"rawtypes", "unchecked"}) public class RedisUtil { @Autowired diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceConfig.java b/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceConfig.java index 6c4f7a31..d046c0df 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceConfig.java @@ -20,7 +20,6 @@ import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceQuery.java b/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceQuery.java index 350adaa3..997a43b2 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceQuery.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceQuery.java @@ -17,11 +17,11 @@ import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector; import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; -import com.genersoft.iot.vmp.gb28181.utils.XmlUtil; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import javax.sip.message.Response; +@SuppressWarnings("rawtypes") @CrossOrigin @RestController @RequestMapping("/api") diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java index 3bd828a9..08e5cc43 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java @@ -1,20 +1,16 @@ package com.genersoft.iot.vmp.vmanager.play; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.conf.MediaServerConfig; -import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; -import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.vmanager.service.IPlayService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; @@ -31,7 +27,6 @@ import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import org.springframework.web.context.request.async.DeferredResult; import javax.sip.message.Response; -import java.text.DecimalFormat; import java.util.UUID; @CrossOrigin @@ -145,7 +140,7 @@ public class PlayController { storager.stopPlay(streamInfo.getDeviceID(), streamInfo.getChannelId()); RequestMessage msg = new RequestMessage(); msg.setId(DeferredResultHolder.CALLBACK_CMD_STOP + uuid); - Response response = event.getResponse(); + //Response response = event.getResponse(); msg.setData(String.format("success")); resultHolder.invokeResult(msg); } diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/playback/PlaybackController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/playback/PlaybackController.java index 9449d263..020a26c2 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/playback/PlaybackController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/playback/PlaybackController.java @@ -1,24 +1,19 @@ package com.genersoft.iot.vmp.vmanager.playback; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; -import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; +//import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.vmanager.service.IPlayService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -47,8 +42,8 @@ public class PlaybackController { @Autowired private IRedisCatchStorage redisCatchStorage; - @Autowired - private ZLMRESTfulUtils zlmresTfulUtils; + // @Autowired + // private ZLMRESTfulUtils zlmresTfulUtils; @Autowired private IPlayService playService; diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/service/IPlayService.java b/src/main/java/com/genersoft/iot/vmp/vmanager/service/IPlayService.java index a80ab5df..d81bdedd 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/service/IPlayService.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/service/IPlayService.java @@ -1,7 +1,6 @@ package com.genersoft.iot.vmp.vmanager.service; import com.alibaba.fastjson.JSONObject; -import com.genersoft.iot.vmp.common.StreamInfo; /** * 点播处理 diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/vmanager/service/impl/PlayServiceImpl.java index 70ca1f31..f0879761 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/service/impl/PlayServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/service/impl/PlayServiceImpl.java @@ -9,15 +9,12 @@ import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; -import com.genersoft.iot.vmp.vmanager.play.PlayController; import com.genersoft.iot.vmp.vmanager.service.IPlayService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.text.DecimalFormat; - @Service public class PlayServiceImpl implements IPlayService { diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java index 12ade38d..5ebfd2d3 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java @@ -1,8 +1,5 @@ package com.genersoft.iot.vmp.vmanager.user; -import com.genersoft.iot.vmp.vmanager.play.PlayController; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.CrossOrigin; @@ -14,9 +11,6 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/api") public class UserController { - private final static Logger logger = LoggerFactory.getLogger(UserController.class); - - @Value("${auth.username}") private String usernameConfig; diff --git a/src/main/java/com/genersoft/iot/vmp/web/ApiControlController.java b/src/main/java/com/genersoft/iot/vmp/web/ApiControlController.java index c9a68bfa..c55824a1 100644 --- a/src/main/java/com/genersoft/iot/vmp/web/ApiControlController.java +++ b/src/main/java/com/genersoft/iot/vmp/web/ApiControlController.java @@ -4,12 +4,9 @@ import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; -import com.genersoft.iot.vmp.vmanager.ptz.PtzController; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; /** diff --git a/src/main/java/com/genersoft/iot/vmp/web/ApiController.java b/src/main/java/com/genersoft/iot/vmp/web/ApiController.java index 002b2cc5..43ae7d97 100644 --- a/src/main/java/com/genersoft/iot/vmp/web/ApiController.java +++ b/src/main/java/com/genersoft/iot/vmp/web/ApiController.java @@ -5,11 +5,9 @@ import com.genersoft.iot.vmp.conf.SipConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; /** diff --git a/src/main/java/com/genersoft/iot/vmp/web/ApiDeviceController.java b/src/main/java/com/genersoft/iot/vmp/web/ApiDeviceController.java index 199a9e69..b58a3c5b 100644 --- a/src/main/java/com/genersoft/iot/vmp/web/ApiDeviceController.java +++ b/src/main/java/com/genersoft/iot/vmp/web/ApiDeviceController.java @@ -4,9 +4,9 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; -import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector; -import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; -import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; +// import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector; +// import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; +// import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import com.github.pagehelper.PageInfo; import org.slf4j.Logger; @@ -19,6 +19,7 @@ import java.util.List; /** * 兼容LiveGBS的API:设备信息 */ +@SuppressWarnings("unchecked") @CrossOrigin @RestController @RequestMapping(value = "/api/v1/device") @@ -29,14 +30,14 @@ public class ApiDeviceController { @Autowired private IVideoManagerStorager storager; - @Autowired - private SIPCommander cmder; + // @Autowired + // private SIPCommander cmder; - @Autowired - private DeferredResultHolder resultHolder; + // @Autowired + // private DeferredResultHolder resultHolder; - @Autowired - private DeviceOffLineDetector offLineDetector; + // @Autowired + // private DeviceOffLineDetector offLineDetector; /** * 分页获取设备列表 TODO 现在直接返回,尚未实现分页 diff --git a/src/main/java/com/genersoft/iot/vmp/web/ApiStreamController.java b/src/main/java/com/genersoft/iot/vmp/web/ApiStreamController.java index f31bd603..5a56bef7 100644 --- a/src/main/java/com/genersoft/iot/vmp/web/ApiStreamController.java +++ b/src/main/java/com/genersoft/iot/vmp/web/ApiStreamController.java @@ -1,21 +1,18 @@ package com.genersoft.iot.vmp.web; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; -import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; +// import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import com.genersoft.iot.vmp.vmanager.play.PlayController; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; @@ -23,6 +20,7 @@ import org.springframework.web.context.request.async.DeferredResult; /** * 兼容LiveGBS的API:实时直播 */ +@SuppressWarnings(value = {"rawtypes", "unchecked"}) @CrossOrigin @RestController @RequestMapping(value = "/api/v1/stream") @@ -40,8 +38,8 @@ public class ApiStreamController { private IRedisCatchStorage redisCatchStorage; - @Autowired - private ZLMRESTfulUtils zlmresTfulUtils; + // @Autowired + // private ZLMRESTfulUtils zlmresTfulUtils; @Autowired diff --git a/src/main/java/com/genersoft/iot/vmp/web/AuthController.java b/src/main/java/com/genersoft/iot/vmp/web/AuthController.java index 8fd66ca6..702387cb 100644 --- a/src/main/java/com/genersoft/iot/vmp/web/AuthController.java +++ b/src/main/java/com/genersoft/iot/vmp/web/AuthController.java @@ -1,9 +1,6 @@ package com.genersoft.iot.vmp.web; -import com.genersoft.iot.vmp.gb28181.bean.Device; import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*;