|
@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Qualifier; |
|
|
import org.springframework.beans.factory.annotation.Qualifier; |
|
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
|
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
|
|
|
|
import javax.sip.DialogState; |
|
|
import javax.sip.DialogState; |
|
|
import javax.sip.TimeoutEvent; |
|
|
import javax.sip.TimeoutEvent; |
|
@ -248,4 +249,61 @@ public class DeviceServiceImpl implements IDeviceService { |
|
|
public Device getDeviceByHostAndPort(String host, int port) { |
|
|
public Device getDeviceByHostAndPort(String host, int port) { |
|
|
return deviceMapper.getDeviceByHostAndPort(host, port); |
|
|
return deviceMapper.getDeviceByHostAndPort(host, port); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void updateDevice(Device device) { |
|
|
|
|
|
|
|
|
|
|
|
Device deviceInStore = deviceMapper.getDeviceByDeviceId(device.getDeviceId()); |
|
|
|
|
|
if (deviceInStore == null) { |
|
|
|
|
|
logger.warn("更新设备时未找到设备信息"); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
if (!StringUtils.isEmpty(device.getName())) { |
|
|
|
|
|
deviceInStore.setName(device.getName()); |
|
|
|
|
|
} |
|
|
|
|
|
if (!StringUtils.isEmpty(device.getCharset())) { |
|
|
|
|
|
deviceInStore.setCharset(device.getCharset()); |
|
|
|
|
|
} |
|
|
|
|
|
if (!StringUtils.isEmpty(device.getMediaServerId())) { |
|
|
|
|
|
deviceInStore.setMediaServerId(device.getMediaServerId()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 目录订阅相关的信息
|
|
|
|
|
|
if (device.getSubscribeCycleForCatalog() > 0) { |
|
|
|
|
|
if (deviceInStore.getSubscribeCycleForCatalog() == 0 || deviceInStore.getSubscribeCycleForCatalog() != device.getSubscribeCycleForCatalog()) { |
|
|
|
|
|
deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog()); |
|
|
|
|
|
// 开启订阅
|
|
|
|
|
|
addCatalogSubscribe(deviceInStore); |
|
|
|
|
|
} |
|
|
|
|
|
}else if (device.getSubscribeCycleForCatalog() == 0) { |
|
|
|
|
|
if (deviceInStore.getSubscribeCycleForCatalog() != 0) { |
|
|
|
|
|
deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog()); |
|
|
|
|
|
// 取消订阅
|
|
|
|
|
|
removeCatalogSubscribe(deviceInStore); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 移动位置订阅相关的信息
|
|
|
|
|
|
if (device.getSubscribeCycleForMobilePosition() > 0) { |
|
|
|
|
|
if (deviceInStore.getSubscribeCycleForMobilePosition() == 0 || deviceInStore.getSubscribeCycleForMobilePosition() != device.getSubscribeCycleForMobilePosition()) { |
|
|
|
|
|
deviceInStore.setMobilePositionSubmissionInterval(device.getMobilePositionSubmissionInterval()); |
|
|
|
|
|
deviceInStore.setSubscribeCycleForMobilePosition(device.getSubscribeCycleForMobilePosition()); |
|
|
|
|
|
// 开启订阅
|
|
|
|
|
|
addMobilePositionSubscribe(deviceInStore); |
|
|
|
|
|
} |
|
|
|
|
|
}else if (device.getSubscribeCycleForMobilePosition() == 0) { |
|
|
|
|
|
if (deviceInStore.getSubscribeCycleForMobilePosition() != 0) { |
|
|
|
|
|
// 取消订阅
|
|
|
|
|
|
removeMobilePositionSubscribe(deviceInStore); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
String now = DateUtil.getNow(); |
|
|
|
|
|
device.setUpdateTime(now); |
|
|
|
|
|
device.setCharset(device.getCharset().toUpperCase()); |
|
|
|
|
|
device.setUpdateTime(DateUtil.getNow()); |
|
|
|
|
|
if (deviceMapper.update(device) > 0) { |
|
|
|
|
|
redisCatchStorage.updateDevice(device); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|