| | |
| | | transform.setName(thirdPartyGB.getName()); |
| | | } |
| | | } |
| | | storager.updateMedia(transform); |
| | | if (!StringUtils.isEmpty(transform.getGbId())) { |
| | | // 如果这个国标ID已经给了其他推流且流已离线,则移除其他推流 |
| | | List<GbStream> gbStreams = gbStreamMapper.selectByGBId(transform.getGbId()); |
| | | if (gbStreams.size() > 0) { |
| | | for (GbStream gbStream : gbStreams) { |
| | | // 出现使用相同国标Id的视频流时,使用新流替换旧流, |
| | | gbStreamMapper.del(gbStream.getApp(), gbStream.getStream()); |
| | | if (!gbStream.isStatus()) { |
| | | streamPushMapper.del(gbStream.getApp(), gbStream.getStream()); |
| | | if (queryKey != null && gbStream.getApp().equals(mediaItem.getApp())) { |
| | | Matcher matcherForStream = pattern.matcher(gbStream.getStream()); |
| | | String queryKeyForStream = null; |
| | | if (matcherForStream.find()) { //此处find()每次被调用后,会偏移到下一个匹配 |
| | | queryKeyForStream = matcherForStream.group(); |
| | | } |
| | | if (queryKeyForStream == null || !queryKeyForStream.equals(queryKey)) { |
| | | // 此时不是同一个流 |
| | | gbStreamMapper.del(gbStream.getApp(), gbStream.getStream()); |
| | | if (!gbStream.isStatus()) { |
| | | streamPushMapper.del(gbStream.getApp(), gbStream.getStream()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (gbStreamMapper.selectOne(transform.getApp(), transform.getStream()) != null) { |
| | | // StreamProxyItem streamProxyItem = gbStreamMapper.selectOne(transform.getApp(), transform.getStream()); |
| | | List<GbStream> gbStreamList = gbStreamMapper.selectByGBId(transform.getGbId()); |
| | | if (gbStreamList != null && gbStreamList.size() == 1) { |
| | | transform.setGbStreamId(gbStreamList.get(0).getGbStreamId()); |
| | | transform.setPlatformId(gbStreamList.get(0).getPlatformId()); |
| | | transform.setCatalogId(gbStreamList.get(0).getCatalogId()); |
| | | transform.setGbId(gbStreamList.get(0).getGbId()); |
| | | gbStreamMapper.update(transform); |
| | | streamPushMapper.del(gbStreamList.get(0).getApp(), gbStreamList.get(0).getStream()); |
| | | }else { |
| | | transform.setCreateStamp(System.currentTimeMillis()); |
| | | gbStreamMapper.add(transform); |
| | | } |
| | | } |
| | | storager.updateMedia(transform); |
| | | return transform; |
| | | } |
| | | |