old mode 100644
new mode 100755
 |  |  | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         String key = VideoManagerConstants.INVITE_PREFIX + | 
 |  |  |                 "_" + inviteInfoForUpdate.getType() + | 
 |  |  |                 "_" + inviteInfoForUpdate.getDeviceId() + | 
 |  |  |                 "_" + inviteInfoForUpdate.getChannelId() + | 
 |  |  |                 "_" + inviteInfoForUpdate.getStream(); | 
 |  |  |                 ":" + inviteInfoForUpdate.getType() + | 
 |  |  |                 ":" + inviteInfoForUpdate.getDeviceId() + | 
 |  |  |                 ":" + inviteInfoForUpdate.getChannelId() + | 
 |  |  |                 ":" + inviteInfoForUpdate.getStream()+ | 
 |  |  |                 ":" + inviteInfoForUpdate.getSsrcInfo().getSsrc(); | 
 |  |  |         redisTemplate.opsForValue().set(key, inviteInfoForUpdate); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |         } | 
 |  |  |         removeInviteInfo(inviteInfoInDb); | 
 |  |  |         String key = VideoManagerConstants.INVITE_PREFIX + | 
 |  |  |                 "_" + inviteInfo.getType() + | 
 |  |  |                 "_" + inviteInfo.getDeviceId() + | 
 |  |  |                 "_" + inviteInfo.getChannelId() + | 
 |  |  |                 "_" + stream; | 
 |  |  |                 ":" + inviteInfo.getType() + | 
 |  |  |                 ":" + inviteInfo.getDeviceId() + | 
 |  |  |                 ":" + inviteInfo.getChannelId() + | 
 |  |  |                 ":" + stream + | 
 |  |  |                 ":" + inviteInfo.getSsrcInfo().getSsrc(); | 
 |  |  |         inviteInfoInDb.setStream(stream); | 
 |  |  |         if (inviteInfoInDb.getSsrcInfo() != null) { | 
 |  |  |             inviteInfoInDb.getSsrcInfo().setStream(stream); | 
 |  |  | 
 |  |  |     @Override | 
 |  |  |     public InviteInfo getInviteInfo(InviteSessionType type, String deviceId, String channelId, String stream) { | 
 |  |  |         String key = VideoManagerConstants.INVITE_PREFIX + | 
 |  |  |                 "_" + (type != null ? type : "*") + | 
 |  |  |                 "_" + (deviceId != null ? deviceId : "*") + | 
 |  |  |                 "_" + (channelId != null ? channelId : "*") + | 
 |  |  |                 "_" + (stream != null ? stream : "*"); | 
 |  |  |                 ":" + (type != null ? type : "*") + | 
 |  |  |                 ":" + (deviceId != null ? deviceId : "*") + | 
 |  |  |                 ":" + (channelId != null ? channelId : "*") + | 
 |  |  |                 ":" + (stream != null ? stream : "*") | 
 |  |  |                 + ":*"; | 
 |  |  |         List<Object> scanResult = RedisUtil.scan(redisTemplate, key); | 
 |  |  |         if (scanResult.size() != 1) { | 
 |  |  |             return null; | 
 |  |  | 
 |  |  |     @Override | 
 |  |  |     public void removeInviteInfo(InviteSessionType type, String deviceId, String channelId, String stream) { | 
 |  |  |         String scanKey = VideoManagerConstants.INVITE_PREFIX + | 
 |  |  |                 "_" + (type != null ? type : "*") + | 
 |  |  |                 "_" + (deviceId != null ? deviceId : "*") + | 
 |  |  |                 "_" + (channelId != null ? channelId : "*") + | 
 |  |  |                 "_" + (stream != null ? stream : "*"); | 
 |  |  |                 ":" + (type != null ? type : "*") + | 
 |  |  |                 ":" + (deviceId != null ? deviceId : "*") + | 
 |  |  |                 ":" + (channelId != null ? channelId : "*") + | 
 |  |  |                 ":" + (stream != null ? stream : "*") + | 
 |  |  |                 ":*"; | 
 |  |  |         List<Object> scanResult = RedisUtil.scan(redisTemplate, scanKey); | 
 |  |  |         if (scanResult.size() > 0) { | 
 |  |  |             for (Object keyObj : scanResult) { | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private String buildKey(InviteSessionType type, String deviceId, String channelId, String stream) { | 
 |  |  |         String key = type + "_" +  deviceId + "_" + channelId; | 
 |  |  |         String key = type + ":" +  deviceId + ":" + channelId; | 
 |  |  |         // 如果ssrc未null那么可以实现一个通道只能一次操作,ssrc不为null则可以支持一个通道多次invite | 
 |  |  |         if (stream != null) { | 
 |  |  |             key += ("_" + stream); | 
 |  |  |             key += (":" + stream); | 
 |  |  |         } | 
 |  |  |         return key; | 
 |  |  |     } | 
 |  |  | 
 |  |  |     @Override | 
 |  |  |     public int getStreamInfoCount(String mediaServerId) { | 
 |  |  |         int count = 0; | 
 |  |  |         String key = VideoManagerConstants.INVITE_PREFIX + "_*_*_*_*"; | 
 |  |  |         String key = VideoManagerConstants.INVITE_PREFIX + ":*:*:*:*:*"; | 
 |  |  |         List<Object> scanResult = RedisUtil.scan(redisTemplate, key); | 
 |  |  |         if (scanResult.size() == 0) { | 
 |  |  |             return 0; | 
 |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     private String buildSubStreamKey(InviteSessionType type, String deviceId, String channelId, String stream) { | 
 |  |  |         String key = type + "_" + "_" +  deviceId + "_" + channelId; | 
 |  |  |         String key = type + ":" + ":" +  deviceId + ":" + channelId; | 
 |  |  |         // 如果ssrc为null那么可以实现一个通道只能一次操作,ssrc不为null则可以支持一个通道多次invite | 
 |  |  |         if (stream != null) { | 
 |  |  |             key += ("_" + stream); | 
 |  |  |             key += (":" + stream); | 
 |  |  |         } | 
 |  |  |         return key; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public InviteInfo getInviteInfoBySSRC(String ssrc) { | 
 |  |  |         String key = VideoManagerConstants.INVITE_PREFIX + ":*:*:*:*:" + ssrc; | 
 |  |  |         List<Object> scanResult = RedisUtil.scan(redisTemplate, key); | 
 |  |  |         if (scanResult.size() != 1) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return (InviteInfo) redisTemplate.opsForValue().get(scanResult.get(0)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public InviteInfo updateInviteInfoForSSRC(InviteInfo inviteInfo, String ssrc) { | 
 |  |  |         InviteInfo inviteInfoInDb = getInviteInfo(inviteInfo.getType(), inviteInfo.getDeviceId(), inviteInfo.getChannelId(), inviteInfo.getStream()); | 
 |  |  |         if (inviteInfoInDb == null) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |         removeInviteInfo(inviteInfoInDb); | 
 |  |  |         String key = VideoManagerConstants.INVITE_PREFIX + | 
 |  |  |                 ":" + inviteInfo.getType() + | 
 |  |  |                 ":" + inviteInfo.getDeviceId() + | 
 |  |  |                 ":" + inviteInfo.getChannelId() + | 
 |  |  |                 ":" + inviteInfo.getStream() + | 
 |  |  |                 ":" + inviteInfo.getSsrcInfo().getSsrc(); | 
 |  |  |         if (inviteInfoInDb.getSsrcInfo() != null) { | 
 |  |  |             inviteInfoInDb.getSsrcInfo().setSsrc(ssrc); | 
 |  |  |         } | 
 |  |  |         redisTemplate.opsForValue().set(key, inviteInfoInDb); | 
 |  |  |         return inviteInfoInDb; | 
 |  |  |     } | 
 |  |  | } |