old mode 100644
new mode 100755
| | |
| | | package com.genersoft.iot.vmp.service.impl; |
| | | |
| | | import com.genersoft.iot.vmp.common.StreamInfo; |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.genersoft.iot.vmp.common.InviteInfo; |
| | | import com.genersoft.iot.vmp.common.InviteSessionType; |
| | | import com.genersoft.iot.vmp.gb28181.bean.Device; |
| | | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; |
| | | import com.genersoft.iot.vmp.gb28181.utils.Coordtransform; |
| | | import com.genersoft.iot.vmp.service.IDeviceChannelService; |
| | | import com.genersoft.iot.vmp.service.IInviteStreamService; |
| | | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; |
| | | import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; |
| | | import com.genersoft.iot.vmp.storager.dao.DeviceMapper; |
| | | import com.genersoft.iot.vmp.utils.DateUtil; |
| | | import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; |
| | | import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo; |
| | | import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.ObjectUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | |
| | | * @author lin |
| | | */ |
| | | @Service |
| | | @DS("master") |
| | | public class DeviceChannelServiceImpl implements IDeviceChannelService { |
| | | |
| | | private final static Logger logger = LoggerFactory.getLogger(DeviceChannelServiceImpl.class); |
| | | |
| | | @Autowired |
| | | private IRedisCatchStorage redisCatchStorage; |
| | | |
| | | @Autowired |
| | | private IInviteStreamService inviteStreamService; |
| | | |
| | | @Autowired |
| | | private DeviceChannelMapper channelMapper; |
| | |
| | | if (device == null) { |
| | | device = deviceMapper.getDeviceByDeviceId(deviceChannel.getDeviceId()); |
| | | } |
| | | |
| | | |
| | | |
| | | if ("WGS84".equals(device.getGeoCoordSys())) { |
| | | deviceChannel.setLongitudeWgs84(deviceChannel.getLongitude()); |
| | |
| | | public void updateChannel(String deviceId, DeviceChannel channel) { |
| | | String channelId = channel.getChannelId(); |
| | | channel.setDeviceId(deviceId); |
| | | StreamInfo streamInfo = redisCatchStorage.queryPlayByDevice(deviceId, channelId); |
| | | if (streamInfo != null) { |
| | | channel.setStreamId(streamInfo.getStream()); |
| | | // StreamInfo streamInfo = redisCatchStorage.queryPlayByDevice(deviceId, channelId); |
| | | InviteInfo inviteInfo = inviteStreamService.getInviteInfoByDeviceAndChannel(InviteSessionType.PLAY, deviceId, channelId); |
| | | if (inviteInfo != null && inviteInfo.getStreamInfo() != null) { |
| | | channel.setStreamId(inviteInfo.getStreamInfo().getStream()); |
| | | } |
| | | String now = DateUtil.getNow(); |
| | | channel.setUpdateTime(now); |
| | |
| | | if (channelList.size() == 0) { |
| | | for (DeviceChannel channel : channels) { |
| | | channel.setDeviceId(deviceId); |
| | | StreamInfo streamInfo = redisCatchStorage.queryPlayByDevice(deviceId, channel.getChannelId()); |
| | | if (streamInfo != null) { |
| | | channel.setStreamId(streamInfo.getStream()); |
| | | InviteInfo inviteInfo = inviteStreamService.getInviteInfoByDeviceAndChannel(InviteSessionType.PLAY, deviceId, channel.getChannelId()); |
| | | if (inviteInfo != null && inviteInfo.getStreamInfo() != null) { |
| | | channel.setStreamId(inviteInfo.getStreamInfo().getStream()); |
| | | } |
| | | String now = DateUtil.getNow(); |
| | | channel.setUpdateTime(now); |
| | |
| | | } |
| | | for (DeviceChannel channel : channels) { |
| | | channel.setDeviceId(deviceId); |
| | | StreamInfo streamInfo = redisCatchStorage.queryPlayByDevice(deviceId, channel.getChannelId()); |
| | | if (streamInfo != null) { |
| | | channel.setStreamId(streamInfo.getStream()); |
| | | InviteInfo inviteInfo = inviteStreamService.getInviteInfoByDeviceAndChannel(InviteSessionType.PLAY, deviceId, channel.getChannelId()); |
| | | if (inviteInfo != null && inviteInfo.getStreamInfo() != null) { |
| | | channel.setStreamId(inviteInfo.getStreamInfo().getStream()); |
| | | } |
| | | String now = DateUtil.getNow(); |
| | | channel.setUpdateTime(now); |
| | |
| | | } |
| | | } |
| | | } |
| | | int limitCount = 300; |
| | | int limitCount = 50; |
| | | if (addChannels.size() > 0) { |
| | | if (addChannels.size() > limitCount) { |
| | | for (int i = 0; i < addChannels.size(); i += limitCount) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public ResourceBaceInfo getOverview() { |
| | | return channelMapper.getOverview(); |
| | | public ResourceBaseInfo getOverview() { |
| | | |
| | | int online = channelMapper.getOnlineCount(); |
| | | int total = channelMapper.getAllChannelCount(); |
| | | |
| | | return new ResourceBaseInfo(total, online); |
| | | } |
| | | |
| | | |
| | |
| | | deviceChannel.setUpdateTime(now); |
| | | result.add(updateGps(deviceChannel, device)); |
| | | }); |
| | | int limitCount = 300; |
| | | int limitCount = 50; |
| | | if (result.size() > limitCount) { |
| | | for (int i = 0; i < result.size(); i += limitCount) { |
| | | int toIndex = i + limitCount; |
| | |
| | | |
| | | @Override |
| | | public void batchUpdateChannel(List<DeviceChannel> channels) { |
| | | String now = DateUtil.getNow(); |
| | | for (DeviceChannel channel : channels) { |
| | | channel.setUpdateTime(now); |
| | | } |
| | | channelMapper.batchUpdate(channels); |
| | | for (DeviceChannel channel : channels) { |
| | | if (channel.getParentId() != null) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void updateChannelStreamIdentification(DeviceChannel channel) { |
| | | assert !ObjectUtils.isEmpty(channel.getDeviceId()); |
| | | assert !ObjectUtils.isEmpty(channel.getStreamIdentification()); |
| | | if (ObjectUtils.isEmpty(channel.getStreamIdentification())) { |
| | | logger.info("[重置通道码流类型] 设备: {}, 码流: {}", channel.getDeviceId(), channel.getStreamIdentification()); |
| | | }else { |
| | | logger.info("[更新通道码流类型] 设备: {}, 通道:{}, 码流: {}", channel.getDeviceId(), channel.getChannelId(), |
| | | channel.getStreamIdentification()); |
| | | } |
| | | channelMapper.updateChannelStreamIdentification(channel); |
| | | } |
| | | } |