old mode 100644
new mode 100755
| | |
| | | package com.genersoft.iot.vmp.service.impl; |
| | | |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.genersoft.iot.vmp.gb28181.bean.*; |
| | | import com.genersoft.iot.vmp.gb28181.event.EventPublisher; |
| | | import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; |
| | | import com.genersoft.iot.vmp.service.IGbStreamService; |
| | | import com.genersoft.iot.vmp.storager.dao.GbStreamMapper; |
| | | import com.genersoft.iot.vmp.storager.dao.ParentPlatformMapper; |
| | | import com.genersoft.iot.vmp.storager.dao.PlatformCatalogMapper; |
| | | import com.genersoft.iot.vmp.storager.dao.PlatformGbStreamMapper; |
| | | import com.genersoft.iot.vmp.service.IGbStreamService; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import org.slf4j.Logger; |
| | |
| | | import org.springframework.transaction.TransactionDefinition; |
| | | import org.springframework.transaction.TransactionStatus; |
| | | import org.springframework.util.ObjectUtils; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Service |
| | | @DS("master") |
| | | public class GbStreamServiceImpl implements IGbStreamService { |
| | | |
| | | private final static Logger logger = LoggerFactory.getLogger(GbStreamServiceImpl.class); |
| | |
| | | |
| | | @Autowired |
| | | private PlatformGbStreamMapper platformGbStreamMapper; |
| | | |
| | | @Autowired |
| | | private SubscribeHolder subscribeHolder; |
| | | |
| | | @Autowired |
| | | private ParentPlatformMapper platformMapper; |
| | |
| | | } |
| | | try { |
| | | List<DeviceChannel> deviceChannelList = new ArrayList<>(); |
| | | for (GbStream gbStream : gbStreams) { |
| | | for (int i = 0; i < gbStreams.size(); i++) { |
| | | GbStream gbStream = gbStreams.get(i); |
| | | gbStream.setCatalogId(catalogId); |
| | | gbStream.setPlatformId(platformId); |
| | | // TODO 修改为批量提交 |
| | | platformGbStreamMapper.add(gbStream); |
| | | logger.info("[关联通道]直播流通道 平台:{}, 共需关联通道数:{}, 已关联:{}", platformId, gbStreams.size(), i + 1); |
| | | DeviceChannel deviceChannelListByStream = getDeviceChannelListByStreamWithStatus(gbStream, catalogId, parentPlatform); |
| | | deviceChannelList.add(deviceChannelListByStream); |
| | | } |
| | | dataSourceTransactionManager.commit(transactionStatus); //手动提交 |
| | | eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.ADD); |
| | | if (subscribeHolder.getCatalogSubscribe(platformId) != null) { |
| | | eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.ADD); |
| | | } |
| | | |
| | | result = true; |
| | | }catch (Exception e) { |
| | | logger.error("批量保存流与平台的关系时错误", e); |
| | |
| | | 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()); |
| | | |
| | | if (platform.getTreeType().equals(TreeType.CIVIL_CODE)){ |
| | | deviceChannel.setCivilCode(catalogId); |
| | | }else if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)){ |
| | | PlatformCatalog catalog = catalogMapper.select(catalogId); |
| | | if (catalog == null) { |
| | | deviceChannel.setParentId(platform.getDeviceGBId()); |
| | | deviceChannel.setBusinessGroupId(null); |
| | | }else { |
| | | deviceChannel.setParentId(catalog.getId()); |
| | | deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId()); |
| | | } |
| | | |
| | | PlatformCatalog catalog = catalogMapper.selectByPlatFormAndCatalogId(platform.getServerGBId(), catalogId); |
| | | if (catalog != null) { |
| | | deviceChannel.setCivilCode(catalog.getCivilCode()); |
| | | deviceChannel.setParentId(catalog.getParentId()); |
| | | deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId()); |
| | | }else { |
| | | deviceChannel.setCivilCode(platform.getAdministrativeDivision()); |
| | | deviceChannel.setParentId(platform.getDeviceGBId()); |
| | | } |
| | | |
| | | deviceChannel.setModel("live"); |
| | |
| | | |
| | | @Override |
| | | public void sendCatalogMsg(GbStream gbStream, String type) { |
| | | if (gbStream == null || type == null) { |
| | | logger.warn("[发送目录订阅]类型:流信息或类型为NULL"); |
| | | return; |
| | | } |
| | | List<GbStream> gbStreams = new ArrayList<>(); |
| | | if (gbStream.getGbId() != null) { |
| | | gbStreams.add(gbStream); |
| | |
| | | }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()); |
| | | |
| | | if (platform.getTreeType().equals(TreeType.CIVIL_CODE)){ |
| | | deviceChannel.setCivilCode(catalogId); |
| | | }else if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)){ |
| | | PlatformCatalog catalog = catalogMapper.select(catalogId); |
| | | if (catalog == null) { |
| | | deviceChannel.setParentId(platform.getDeviceGBId()); |
| | | deviceChannel.setBusinessGroupId(null); |
| | | }else { |
| | | deviceChannel.setParentId(catalog.getId()); |
| | | deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId()); |
| | | } |
| | | |
| | | PlatformCatalog catalog = catalogMapper.selectByPlatFormAndCatalogId(platform.getServerGBId(), catalogId); |
| | | if (catalog != null) { |
| | | deviceChannel.setCivilCode(catalog.getCivilCode()); |
| | | deviceChannel.setParentId(catalog.getParentId()); |
| | | deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId()); |
| | | }else { |
| | | deviceChannel.setCivilCode(platform.getAdministrativeDivision()); |
| | | deviceChannel.setParentId(platform.getDeviceGBId()); |
| | | } |
| | | |
| | | deviceChannel.setModel("live"); |
| | |
| | | deviceChannel.setSecrecy("0"); |
| | | return deviceChannel; |
| | | } |
| | | |
| | | @Override |
| | | public List<GbStream> getAllGBChannels(String platformId) { |
| | | |
| | | return gbStreamMapper.selectAll(platformId, null, null, null); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void delAllPlatformInfo(String platformId, String catalogId) { |
| | | if (platformId == null) { |
| | | return ; |
| | | } |
| | | ParentPlatform platform = platformMapper.getParentPlatByServerGBId(platformId); |
| | | if (platform == null) { |
| | | return ; |
| | | } |
| | | if (ObjectUtils.isEmpty(catalogId)) { |
| | | catalogId = null; |
| | | } |
| | | List<GbStream> gbStreams = platformGbStreamMapper.queryChannelInParentPlatformAndCatalog(platformId, catalogId); |
| | | List<DeviceChannel> deviceChannelList = new ArrayList<>(); |
| | | for (GbStream gbStream : gbStreams) { |
| | | DeviceChannel deviceChannel = new DeviceChannel(); |
| | | deviceChannel.setChannelId(gbStream.getGbId()); |
| | | deviceChannelList.add(deviceChannel); |
| | | } |
| | | eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.DEL); |
| | | platformGbStreamMapper.delByPlatformAndCatalogId(platformId, catalogId); |
| | | } |
| | | |
| | | @Override |
| | | public List<GbStream> getGbChannelWithGbid(String gbId) { |
| | | return gbStreamMapper.selectByGBId(gbId); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, GbStream> getAllGBId() { |
| | | return gbStreamMapper.getAllGBId(); |
| | | } |
| | | } |