Commit b5fb82934e01f78921e465ba0ac88b4daa97327d

Authored by 648540858
1 parent bd5b9ca1

修复发送目录信息是状态错误

src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java
@@ -132,7 +132,7 @@ public class CatalogEventLister implements ApplicationListener<CatalogEvent> { @@ -132,7 +132,7 @@ public class CatalogEventLister implements ApplicationListener<CatalogEvent> {
132 if (event.getGbStreams() != null && event.getGbStreams().size() > 0){ 132 if (event.getGbStreams() != null && event.getGbStreams().size() > 0){
133 for (GbStream gbStream : event.getGbStreams()) { 133 for (GbStream gbStream : event.getGbStreams()) {
134 deviceChannelList.add( 134 deviceChannelList.add(
135 - gbStreamService.getDeviceChannelListByStream(gbStream, gbStream.getCatalogId(), parentPlatform)); 135 + gbStreamService.getDeviceChannelListByStreamWithStatus(gbStream, gbStream.getCatalogId(), parentPlatform));
136 } 136 }
137 } 137 }
138 if (deviceChannelList.size() > 0) { 138 if (deviceChannelList.size() > 0) {
@@ -154,7 +154,7 @@ public class CatalogEventLister implements ApplicationListener<CatalogEvent> { @@ -154,7 +154,7 @@ public class CatalogEventLister implements ApplicationListener<CatalogEvent> {
154 deviceChannelList.add(deviceChannel); 154 deviceChannelList.add(deviceChannel);
155 GbStream gbStream = storager.queryStreamInParentPlatform(platform.getServerGBId(), gbId); 155 GbStream gbStream = storager.queryStreamInParentPlatform(platform.getServerGBId(), gbId);
156 if(gbStream != null){ 156 if(gbStream != null){
157 - DeviceChannel deviceChannelByStream = gbStreamService.getDeviceChannelListByStream(gbStream, gbStream.getCatalogId(), platform); 157 + DeviceChannel deviceChannelByStream = gbStreamService.getDeviceChannelListByStreamWithStatus(gbStream, gbStream.getCatalogId(), platform);
158 deviceChannelList.add(deviceChannelByStream); 158 deviceChannelList.add(deviceChannelByStream);
159 } 159 }
160 sipCommanderFroPlatform.sendNotifyForCatalogAddOrUpdate(event.getType(), platform, deviceChannelList, subscribeInfo, null); 160 sipCommanderFroPlatform.sendNotifyForCatalogAddOrUpdate(event.getType(), platform, deviceChannelList, subscribeInfo, null);
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -1219,9 +1219,9 @@ public class SIPCommander implements ISIPCommander { @@ -1219,9 +1219,9 @@ public class SIPCommander implements ISIPCommander {
1219 String charset = device.getCharset(); 1219 String charset = device.getCharset();
1220 catalogXml.append("<?xml version=\"1.0\" encoding=\"" + charset + "\"?>\r\n"); 1220 catalogXml.append("<?xml version=\"1.0\" encoding=\"" + charset + "\"?>\r\n");
1221 catalogXml.append("<Query>\r\n"); 1221 catalogXml.append("<Query>\r\n");
1222 - catalogXml.append("<CmdType>Catalog</CmdType>\r\n");  
1223 - catalogXml.append("<SN>" + sn + "</SN>\r\n");  
1224 - catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); 1222 + catalogXml.append(" <CmdType>Catalog</CmdType>\r\n");
  1223 + catalogXml.append(" <SN>" + sn + "</SN>\r\n");
  1224 + catalogXml.append(" <DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
1225 catalogXml.append("</Query>\r\n"); 1225 catalogXml.append("</Query>\r\n");
1226 1226
1227 String tm = Long.toString(System.currentTimeMillis()); 1227 String tm = Long.toString(System.currentTimeMillis());
@@ -1229,7 +1229,7 @@ public class SIPCommander implements ISIPCommander { @@ -1229,7 +1229,7 @@ public class SIPCommander implements ISIPCommander {
1229 CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() 1229 CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
1230 : udpSipProvider.getNewCallId(); 1230 : udpSipProvider.getNewCallId();
1231 1231
1232 - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK-ViaCatalog-" + tm, "FromCat" + tm, null, callIdHeader); 1232 + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK" + tm, tm, null, callIdHeader);
1233 1233
1234 transmitRequest(device, request, errorEvent); 1234 transmitRequest(device, request, errorEvent);
1235 } catch (SipException | ParseException | InvalidArgumentException e) { 1235 } catch (SipException | ParseException | InvalidArgumentException e) {
src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java
@@ -53,4 +53,6 @@ public interface IGbStreamService { @@ -53,4 +53,6 @@ public interface IGbStreamService {
53 * @return 53 * @return
54 */ 54 */
55 int updateGbIdOrName(List<StreamPushItem> streamPushItemForUpdate); 55 int updateGbIdOrName(List<StreamPushItem> streamPushItemForUpdate);
  56 +
  57 + DeviceChannel getDeviceChannelListByStreamWithStatus(GbStream gbStream, String catalogId, ParentPlatform platform);
56 } 58 }
src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
@@ -79,7 +79,7 @@ public class GbStreamServiceImpl implements IGbStreamService { @@ -79,7 +79,7 @@ public class GbStreamServiceImpl implements IGbStreamService {
79 gbStream.setPlatformId(platformId); 79 gbStream.setPlatformId(platformId);
80 // TODO 修改为批量提交 80 // TODO 修改为批量提交
81 platformGbStreamMapper.add(gbStream); 81 platformGbStreamMapper.add(gbStream);
82 - DeviceChannel deviceChannelListByStream = getDeviceChannelListByStream(gbStream, catalogId, parentPlatform); 82 + DeviceChannel deviceChannelListByStream = getDeviceChannelListByStreamWithStatus(gbStream, catalogId, parentPlatform);
83 deviceChannelList.add(deviceChannelListByStream); 83 deviceChannelList.add(deviceChannelListByStream);
84 } 84 }
85 dataSourceTransactionManager.commit(transactionStatus); //手动提交 85 dataSourceTransactionManager.commit(transactionStatus); //手动提交
@@ -188,4 +188,46 @@ public class GbStreamServiceImpl implements IGbStreamService { @@ -188,4 +188,46 @@ public class GbStreamServiceImpl implements IGbStreamService {
188 public int updateGbIdOrName(List<StreamPushItem> streamPushItemForUpdate) { 188 public int updateGbIdOrName(List<StreamPushItem> streamPushItemForUpdate) {
189 return gbStreamMapper.updateGbIdOrName(streamPushItemForUpdate); 189 return gbStreamMapper.updateGbIdOrName(streamPushItemForUpdate);
190 } 190 }
  191 +
  192 + @Override
  193 + public DeviceChannel getDeviceChannelListByStreamWithStatus(GbStream gbStream, String catalogId, ParentPlatform platform) {
  194 + DeviceChannel deviceChannel = new DeviceChannel();
  195 + deviceChannel.setChannelId(gbStream.getGbId());
  196 + deviceChannel.setName(gbStream.getName());
  197 + deviceChannel.setLongitude(gbStream.getLongitude());
  198 + deviceChannel.setLatitude(gbStream.getLatitude());
  199 + deviceChannel.setDeviceId(platform.getDeviceGBId());
  200 + deviceChannel.setManufacture("wvp-pro");
  201 + // todo 目前是每一条查询一次,需要优化
  202 + Boolean status = null;
  203 + if ("proxy".equals(gbStream.getStreamType())) {
  204 + status = gbStreamMapper.selectStatusForProxy(gbStream.getApp(), gbStream.getStream());
  205 + }else {
  206 + status = gbStreamMapper.selectStatusForPush(gbStream.getApp(), gbStream.getStream());
  207 + }
  208 + deviceChannel.setStatus((status != null && status )?1:0);
  209 +
  210 + deviceChannel.setRegisterWay(1);
  211 + deviceChannel.setCivilCode(platform.getAdministrativeDivision());
  212 +
  213 + if (platform.getTreeType().equals(TreeType.CIVIL_CODE)){
  214 + deviceChannel.setCivilCode(catalogId);
  215 + }else if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)){
  216 + PlatformCatalog catalog = catalogMapper.select(catalogId);
  217 + if (catalog == null) {
  218 + deviceChannel.setParentId(platform.getDeviceGBId());
  219 + deviceChannel.setBusinessGroupId(null);
  220 + }else {
  221 + deviceChannel.setParentId(catalog.getId());
  222 + deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
  223 + }
  224 +
  225 + }
  226 +
  227 + deviceChannel.setModel("live");
  228 + deviceChannel.setOwner("wvp-pro");
  229 + deviceChannel.setParental(0);
  230 + deviceChannel.setSecrecy("0");
  231 + return deviceChannel;
  232 + }
191 } 233 }
src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
@@ -158,4 +158,10 @@ public interface GbStreamMapper { @@ -158,4 +158,10 @@ public interface GbStreamMapper {
158 "</foreach>"+ 158 "</foreach>"+
159 "</script>") 159 "</script>")
160 int updateGbIdOrName(List<StreamPushItem> streamPushItemForUpdate); 160 int updateGbIdOrName(List<StreamPushItem> streamPushItemForUpdate);
  161 +
  162 + @Select("SELECT status FROM stream_proxy WHERE app=#{app} AND stream=#{stream}")
  163 + Boolean selectStatusForProxy(String app, String stream);
  164 +
  165 + @Select("SELECT status FROM stream_push WHERE app=#{app} AND stream=#{stream}")
  166 + Boolean selectStatusForPush(String app, String stream);
161 } 167 }