|  |  | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.TransactionDefinition; | 
 |  |  | import org.springframework.transaction.TransactionStatus; | 
 |  |  | import org.springframework.util.StringUtils; | 
 |  |  |  | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.List; | 
 |  |  | 
 |  |  |     private EventPublisher eventPublisher; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public PageInfo<GbStream> getAll(Integer page, Integer count, String platFormId) { | 
 |  |  |     public PageInfo<GbStream> getAll(Integer page, Integer count, String platFormId, String catalogId, String query, Boolean pushing, String mediaServerId) { | 
 |  |  |         PageHelper.startPage(page, count); | 
 |  |  |         List<GbStream> all = gbStreamMapper.selectAll(platFormId); | 
 |  |  |         List<GbStream> all = gbStreamMapper.selectAll(platFormId, catalogId, query, pushing, mediaServerId); | 
 |  |  |         return new PageInfo<>(all); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |         boolean result = false; | 
 |  |  |         TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); | 
 |  |  |         ParentPlatform parentPlatform = platformMapper.getParentPlatByServerGBId(platformId); | 
 |  |  |         if (catalogId == null) { | 
 |  |  |             catalogId = parentPlatform.getCatalogId(); | 
 |  |  |         } | 
 |  |  |         try { | 
 |  |  |             List<DeviceChannel> deviceChannelList = new ArrayList<>(); | 
 |  |  |             for (GbStream gbStream : gbStreams) { | 
 |  |  | 
 |  |  |                 gbStream.setPlatformId(platformId); | 
 |  |  |                 // TODO 修改为批量提交 | 
 |  |  |                 platformGbStreamMapper.add(gbStream); | 
 |  |  |                 DeviceChannel deviceChannelListByStream = getDeviceChannelListByStream(gbStream, catalogId, parentPlatform.getDeviceGBId()); | 
 |  |  |                 DeviceChannel deviceChannelListByStream = getDeviceChannelListByStream(gbStream, catalogId, parentPlatform); | 
 |  |  |                 deviceChannelList.add(deviceChannelListByStream); | 
 |  |  |             } | 
 |  |  |             dataSourceTransactionManager.commit(transactionStatus);     //手动提交 | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public DeviceChannel getDeviceChannelListByStream(GbStream gbStream, String catalogId, String deviceGBId) { | 
 |  |  |     public DeviceChannel getDeviceChannelListByStream(GbStream gbStream, String catalogId, ParentPlatform platform) { | 
 |  |  |         DeviceChannel deviceChannel = new DeviceChannel(); | 
 |  |  |         deviceChannel.setChannelId(gbStream.getGbId()); | 
 |  |  |         deviceChannel.setName(gbStream.getName()); | 
 |  |  |         deviceChannel.setLongitude(gbStream.getLongitude()); | 
 |  |  |         deviceChannel.setLatitude(gbStream.getLatitude()); | 
 |  |  |         deviceChannel.setDeviceId(deviceGBId); | 
 |  |  |         deviceChannel.setDeviceId(platform.getDeviceGBId()); | 
 |  |  |         deviceChannel.setManufacture("wvp-pro"); | 
 |  |  |         deviceChannel.setStatus(gbStream.isStatus()?1:0); | 
 |  |  | //        deviceChannel.setStatus(gbStream.isStatus()?1:0); | 
 |  |  |         deviceChannel.setStatus(1); | 
 |  |  |         deviceChannel.setParentId(catalogId ==null?gbStream.getCatalogId():catalogId); | 
 |  |  |         deviceChannel.setRegisterWay(1); | 
 |  |  |         deviceChannel.setCivilCode(sipConfig.getDomain()); | 
 |  |  |         if (catalogId.length() > 0 && catalogId.length() <= 10) { | 
 |  |  |             // 父节点是行政区划,则设置CivilCode使用此行政区划 | 
 |  |  |             deviceChannel.setCivilCode(catalogId); | 
 |  |  |         }else { | 
 |  |  |             deviceChannel.setCivilCode(platform.getAdministrativeDivision()); | 
 |  |  |         } | 
 |  |  |         deviceChannel.setModel("live"); | 
 |  |  |         deviceChannel.setOwner("wvp-pro"); | 
 |  |  |         deviceChannel.setParental(0); | 
 |  |  | 
 |  |  |         TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); | 
 |  |  |         try { | 
 |  |  |             List<DeviceChannel> deviceChannelList = new ArrayList<>(); | 
 |  |  |             platformGbStreamMapper.delByAppAndStreamsByPlatformId(gbStreams, platformId); | 
 |  |  |             for (GbStream gbStream : gbStreams) { | 
 |  |  |                 platformGbStreamMapper.delByAppAndStreamAndPlatform(gbStream.getApp(), gbStream.getStream(), platformId); | 
 |  |  |                 DeviceChannel deviceChannel = new DeviceChannel(); | 
 |  |  |                 deviceChannel.setChannelId(gbStream.getGbId()); | 
 |  |  |                 deviceChannelList.add(deviceChannel); | 
 |  |  |                 eventPublisher.catalogEventPublish(platformId, deviceChannel, CatalogEvent.DEL); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.DEL); | 
 |  |  |             dataSourceTransactionManager.commit(transactionStatus);     //手动提交 | 
 |  |  |             result = true; | 
 |  |  |         }catch (Exception e) { | 
 |  |  | 
 |  |  |                 gbStreams.add(streamProxyItem); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         sendCatalogMsgs(gbStreams, type); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void sendCatalogMsgs(List<GbStream> gbStreams, String type) { | 
 |  |  |         if (gbStreams.size() > 0) { | 
 |  |  |             for (GbStream gs : gbStreams) { | 
 |  |  |                 if (StringUtils.isEmpty(gs.getGbId())){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 List<ParentPlatform> parentPlatforms = platformGbStreamMapper.selectByAppAndStream(gs.getApp(), gs.getStream()); | 
 |  |  |                 if (parentPlatforms.size() > 0) { | 
 |  |  |                     for (ParentPlatform parentPlatform : parentPlatforms) { | 
 |  |  |                         eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), gs, type); | 
 |  |  |                         if (parentPlatform != null) { | 
 |  |  |                             eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), gs, type); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } |