old mode 100644
new mode 100755
 |  |  | 
 |  |  | import com.genersoft.iot.vmp.conf.UserSetting; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.bean.*; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.session.SSRCFactory; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMServerFactory; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; | 
 |  |  | import com.genersoft.iot.vmp.service.IMediaServerService; | 
 |  |  | import com.genersoft.iot.vmp.service.IPlatformService; | 
 |  |  | 
 |  |  |     private IRedisCatchStorage redisCatchStorage; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SSRCFactory ssrcFactory; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private IMediaServerService mediaServerService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  | 
 |  |  |     private DynamicTask dynamicTask; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ZLMRTPServerFactory zlmrtpServerFactory; | 
 |  |  |     private ZLMServerFactory zlmServerFactory; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SubscribeHolder subscribeHolder; | 
 |  |  | 
 |  |  |             // 行政区划默认去编号的前6位 | 
 |  |  |             parentPlatform.setAdministrativeDivision(parentPlatform.getServerGBId().substring(0,6)); | 
 |  |  |         } | 
 |  |  |         parentPlatform.setTreeType("CivilCode"); | 
 |  |  |         parentPlatform.setCatalogId(parentPlatform.getDeviceGBId()); | 
 |  |  |         int result = platformMapper.addParentPlatform(parentPlatform); | 
 |  |  |         // 添加缓存 | 
 |  |  | 
 |  |  |     @Override | 
 |  |  |     public boolean update(ParentPlatform parentPlatform) { | 
 |  |  |         logger.info("[国标级联]更新平台 {}", parentPlatform.getDeviceGBId()); | 
 |  |  |         // TODO 后续版本去除 | 
 |  |  |         parentPlatform.setTreeType(""); | 
 |  |  |         parentPlatform.setCharacterSet(parentPlatform.getCharacterSet().toUpperCase()); | 
 |  |  |         ParentPlatform parentPlatformOld = platformMapper.getParentPlatById(parentPlatform.getId()); | 
 |  |  |         ParentPlatformCatch parentPlatformCatchOld = redisCatchStorage.queryPlatformCatchInfo(parentPlatformOld.getServerGBId()); | 
 |  |  | 
 |  |  |                                         // 设置平台离线,并重新注册 | 
 |  |  |                                         logger.info("[国标级联] 三次心跳超时, 平台{}({})离线", parentPlatform.getName(), parentPlatform.getServerGBId()); | 
 |  |  |                                         offline(parentPlatform, false); | 
 |  |  |  | 
 |  |  |                                     } | 
 |  |  |  | 
 |  |  |                                 }else { | 
 |  |  | 
 |  |  |                                     platformCatch.setKeepAliveReply(0); | 
 |  |  |                                     redisCatchStorage.updatePlatformCatchInfo(platformCatch); | 
 |  |  |                                 } | 
 |  |  |                                 logger.info("[发送心跳] 国标级联 发送心跳, code: {}, msg: {}", eventResult.statusCode, eventResult.msg); | 
 |  |  |                             }); | 
 |  |  |                         } catch (SipException | InvalidArgumentException | ParseException e) { | 
 |  |  |                             logger.error("[命令发送失败] 国标级联 发送心跳: {}", e.getMessage()); | 
 |  |  | 
 |  |  |                         eventResult.statusCode, eventResult.msg); | 
 |  |  |                 offline(parentPlatform, false); | 
 |  |  |             }, null); | 
 |  |  |         } catch (InvalidArgumentException | ParseException | SipException e) { | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             logger.error("[命令发送失败] 国标级联定时注册: {}", e.getMessage()); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  | 
 |  |  |         List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServer(platformId); | 
 |  |  |         if (sendRtpItems != null && sendRtpItems.size() > 0) { | 
 |  |  |             for (SendRtpItem sendRtpItem : sendRtpItems) { | 
 |  |  |                 ssrcFactory.releaseSsrc(sendRtpItem.getMediaServerId(), sendRtpItem.getSsrc()); | 
 |  |  |                 redisCatchStorage.deleteSendRTPServer(platformId, sendRtpItem.getChannelId(), null, null); | 
 |  |  |                 MediaServerItem mediaInfo = mediaServerService.getOne(sendRtpItem.getMediaServerId()); | 
 |  |  |                 Map<String, Object> param = new HashMap<>(3); | 
 |  |  |                 param.put("vhost", "__defaultVhost__"); | 
 |  |  |                 param.put("app", sendRtpItem.getApp()); | 
 |  |  |                 param.put("stream", sendRtpItem.getStreamId()); | 
 |  |  |                 zlmrtpServerFactory.stopSendRtpStream(mediaInfo, param); | 
 |  |  |                 zlmServerFactory.stopSendRtpStream(mediaInfo, param); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } |