Commit cde7f6460a563a4e9b2624b395d9bdfe6f90e14c
Committed by
GitHub
Merge pull request #999 from a24211317/wvp-28181-2.0
解决两个国标平台相互级联时,上级不能获取目录的问题
Showing
1 changed file
with
13 additions
and
0 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageHandlerAbstract.java
| @@ -3,6 +3,8 @@ package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message; | @@ -3,6 +3,8 @@ package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message; | ||
| 3 | import com.genersoft.iot.vmp.gb28181.bean.Device; | 3 | import com.genersoft.iot.vmp.gb28181.bean.Device; |
| 4 | import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; | 4 | import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; |
| 5 | import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; | 5 | import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; |
| 6 | +import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.query.cmd.CatalogQueryMessageHandler; | ||
| 7 | +import com.genersoft.iot.vmp.storager.IVideoManagerStorage; | ||
| 6 | import org.dom4j.Element; | 8 | import org.dom4j.Element; |
| 7 | import org.springframework.beans.factory.annotation.Autowired; | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| 8 | 10 | ||
| @@ -16,6 +18,9 @@ public abstract class MessageHandlerAbstract extends SIPRequestProcessorParent i | @@ -16,6 +18,9 @@ public abstract class MessageHandlerAbstract extends SIPRequestProcessorParent i | ||
| 16 | 18 | ||
| 17 | public Map<String, IMessageHandler> messageHandlerMap = new ConcurrentHashMap<>(); | 19 | public Map<String, IMessageHandler> messageHandlerMap = new ConcurrentHashMap<>(); |
| 18 | 20 | ||
| 21 | + @Autowired | ||
| 22 | + private IVideoManagerStorage storage; | ||
| 23 | + | ||
| 19 | public void addHandler(String cmdType, IMessageHandler messageHandler) { | 24 | public void addHandler(String cmdType, IMessageHandler messageHandler) { |
| 20 | messageHandlerMap.put(cmdType, messageHandler); | 25 | messageHandlerMap.put(cmdType, messageHandler); |
| 21 | } | 26 | } |
| @@ -24,7 +29,15 @@ public abstract class MessageHandlerAbstract extends SIPRequestProcessorParent i | @@ -24,7 +29,15 @@ public abstract class MessageHandlerAbstract extends SIPRequestProcessorParent i | ||
| 24 | public void handForDevice(RequestEvent evt, Device device, Element element) { | 29 | public void handForDevice(RequestEvent evt, Device device, Element element) { |
| 25 | String cmd = getText(element, "CmdType"); | 30 | String cmd = getText(element, "CmdType"); |
| 26 | IMessageHandler messageHandler = messageHandlerMap.get(cmd); | 31 | IMessageHandler messageHandler = messageHandlerMap.get(cmd); |
| 32 | + | ||
| 27 | if (messageHandler != null) { | 33 | if (messageHandler != null) { |
| 34 | + //两个国标平台互相级联时由于上一步判断导致本该在平台处理的消息 放到了设备的处理逻辑 | ||
| 35 | + //所以对目录查询单独做了校验 | ||
| 36 | + if(messageHandler instanceof CatalogQueryMessageHandler){ | ||
| 37 | + ParentPlatform parentPlatform = storage.queryParentPlatByServerGBId(device.getDeviceId()); | ||
| 38 | + messageHandler.handForPlatform(evt, parentPlatform, element); | ||
| 39 | + return; | ||
| 40 | + } | ||
| 28 | messageHandler.handForDevice(evt, device, element); | 41 | messageHandler.handForDevice(evt, device, element); |
| 29 | } | 42 | } |
| 30 | } | 43 | } |