|  |  | 
 |  |  | import com.genersoft.iot.vmp.common.StreamInfo; | 
 |  |  | import com.genersoft.iot.vmp.conf.UserSetup; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.bean.GbStream; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMHttpHookSubscribe; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.dto.MediaItem; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.dto.OriginType; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.dto.*; | 
 |  |  | import com.genersoft.iot.vmp.service.IMediaServerService; | 
 |  |  | import com.genersoft.iot.vmp.service.IStreamPushService; | 
 |  |  | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | 
 |  |  | import com.genersoft.iot.vmp.storager.dao.GbStreamMapper; | 
 |  |  | import com.genersoft.iot.vmp.storager.dao.ParentPlatformMapper; | 
 |  |  | import com.genersoft.iot.vmp.storager.dao.PlatformGbStreamMapper; | 
 |  |  | import com.genersoft.iot.vmp.storager.dao.StreamPushMapper; | 
 |  |  | import com.github.pagehelper.PageHelper; | 
 |  |  | import com.github.pagehelper.PageInfo; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.util.StringUtils; | 
 |  |  |  | 
 |  |  | import java.util.*; | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private StreamPushMapper streamPushMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ParentPlatformMapper parentPlatformMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private PlatformGbStreamMapper platformGbStreamMapper; | 
 |  |  | 
 |  |  |                     result.put(key, streamPushItem); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return new ArrayList<>(result.values()); | 
 |  |  | 
 |  |  |         stream.setStreamType("push"); | 
 |  |  |         stream.setStatus(true); | 
 |  |  |         int add = gbStreamMapper.add(stream); | 
 |  |  |         // 查找开启了全部直播流共享的上级平台 | 
 |  |  |         List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream(); | 
 |  |  |         if (parentPlatforms.size() > 0) { | 
 |  |  |             for (ParentPlatform parentPlatform : parentPlatforms) { | 
 |  |  |                 stream.setPlatformId(parentPlatform.getServerGBId()); | 
 |  |  |                 String streamId = stream.getStream(); | 
 |  |  |                 StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(stream.getApp(), streamId, parentPlatform.getServerGBId()); | 
 |  |  |                 if (streamProxyItems == null) { | 
 |  |  |                     platformGbStreamMapper.add(stream); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return add > 0; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |     public void clean() { | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public boolean saveToRandomGB() { | 
 |  |  |         List<StreamPushItem> streamPushItems = streamPushMapper.selectAll(); | 
 |  |  |         long gbId = 100001; | 
 |  |  |         for (StreamPushItem streamPushItem : streamPushItems) { | 
 |  |  |             streamPushItem.setStreamType("push"); | 
 |  |  |             streamPushItem.setStatus(true); | 
 |  |  |             streamPushItem.setGbId("34020000004111" + gbId); | 
 |  |  |             gbId ++; | 
 |  |  |         } | 
 |  |  |         int  limitCount = 30; | 
 |  |  |  | 
 |  |  |         if (streamPushItems.size() > limitCount) { | 
 |  |  |             for (int i = 0; i < streamPushItems.size(); i += limitCount) { | 
 |  |  |                 int toIndex = i + limitCount; | 
 |  |  |                 if (i + limitCount > streamPushItems.size()) { | 
 |  |  |                     toIndex = streamPushItems.size(); | 
 |  |  |                 } | 
 |  |  |                 gbStreamMapper.batchAdd(streamPushItems.subList(i, toIndex)); | 
 |  |  |             } | 
 |  |  |         }else { | 
 |  |  |             gbStreamMapper.batchAdd(streamPushItems); | 
 |  |  |         } | 
 |  |  |         return true; | 
 |  |  |     } | 
 |  |  | } |