From a030d00c8819612de2c280b75abdc90573eb52ce Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 12 五月 2022 10:48:50 +0800
Subject: [PATCH] 修复代码
---
src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java | 6 ++
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java | 58 +++++++++++++++++++
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java | 16 -----
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 37 ------------
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java | 46 +--------------
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java | 2
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java | 7 ++
7 files changed, 75 insertions(+), 97 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java
index 639d4d9..eb2c7b8 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java
@@ -10,6 +10,7 @@
import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler;
import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.ResponseMessageHandler;
+import com.genersoft.iot.vmp.service.IDeviceService;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import org.dom4j.DocumentException;
@@ -56,6 +57,9 @@
@Autowired
private EventPublisher publisher;
+ @Autowired
+ private IDeviceService deviceService;
+
@Override
public void afterPropertiesSet() throws Exception {
responseMessageHandler.addHandler(cmdType, this);
@@ -82,7 +86,8 @@
if (StringUtils.isEmpty(device.getStreamMode())) {
device.setStreamMode("UDP");
}
- storager.updateDevice(device);
+ deviceService.updateDevice(device);
+// storager.updateDevice(device);
RequestMessage msg = new RequestMessage();
msg.setKey(key);
diff --git a/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java b/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java
index a7c52ba..72af803 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java
@@ -104,4 +104,10 @@
* @return 璁惧淇℃伅
*/
Device getDeviceByHostAndPort(String host, int port);
+
+ /**
+ * 鏇存柊璁惧
+ * @param device 璁惧淇℃伅
+ */
+ void updateDevice(Device device);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
index b6edf9a..2bf1b27 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
@@ -21,6 +21,7 @@
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
import javax.sip.DialogState;
import javax.sip.TimeoutEvent;
@@ -248,4 +249,61 @@
public Device getDeviceByHostAndPort(String host, int 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);
+ }
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java
index a29b7ae..d94669b 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorage.java
@@ -25,22 +25,6 @@
* @return true:瀛樺湪 false锛氫笉瀛樺湪
*/
public boolean exists(String deviceId);
-
- /**
- * 瑙嗛璁惧鍒涘缓
- *
- * @param device 璁惧瀵硅薄
- * @return true锛氬垱寤烘垚鍔� false锛氬垱寤哄け璐�
- */
- public boolean create(Device device);
-
- /**
- * 瑙嗛璁惧鏇存柊
- *
- * @param device 璁惧瀵硅薄
- * @return true锛氬垱寤烘垚鍔� false锛氬垱寤哄け璐�
- */
- public boolean updateDevice(Device device);
/**
* 娣诲姞璁惧閫氶亾
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
index b72671a..eea07e9 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -102,43 +102,6 @@
return deviceMapper.getDeviceByDeviceId(deviceId) != null;
}
- /**
- * 瑙嗛璁惧鍒涘缓
- *
- * @param device 璁惧瀵硅薄
- * @return true锛氬垱寤烘垚鍔� false锛氬垱寤哄け璐�
- */
- @Override
- public synchronized boolean create(Device device) {
- redisCatchStorage.updateDevice(device);
- return deviceMapper.add(device) > 0;
- }
-
-
-
- /**
- * 瑙嗛璁惧鏇存柊
- *
- * @param device 璁惧瀵硅薄
- * @return true锛氭洿鏂版垚鍔� false锛氭洿鏂板け璐�
- */
- @Override
- public synchronized boolean updateDevice(Device device) {
- String now = DateUtil.getNow();
- device.setUpdateTime(now);
- Device deviceByDeviceId = deviceMapper.getDeviceByDeviceId(device.getDeviceId());
- device.setCharset(device.getCharset().toUpperCase());
- if (deviceByDeviceId == null) {
- device.setCreateTime(now);
- redisCatchStorage.updateDevice(device);
- return deviceMapper.add(device) > 0;
- }else {
- redisCatchStorage.updateDevice(device);
-
- return deviceMapper.update(device) > 0;
- }
- }
-
@Override
public synchronized void updateChannel(String deviceId, DeviceChannel channel) {
String channelId = channel.getChannelId();
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java
index 7d11b15..fa12f5d 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java
@@ -169,7 +169,7 @@
Device device = storager.queryVideoDevice(deviceId);
device.setSubscribeCycleForMobilePosition(Integer.parseInt(expires));
device.setMobilePositionSubmissionInterval(Integer.parseInt(interval));
- storager.updateDevice(device);
+ deviceService.updateDevice(device);
String result = msg;
if (deviceService.removeMobilePositionSubscribe(device)) {
result += "锛屾垚鍔�";
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
index d6e614d..3e53848 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
@@ -288,7 +288,8 @@
public ResponseEntity<PageInfo> updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){
Device device = storager.queryVideoDevice(deviceId);
device.setStreamMode(streamMode);
- storager.updateDevice(device);
+// storager.updateDevice(device);
+ deviceService.updateDevice(device);
return new ResponseEntity<>(null,HttpStatus.OK);
}
@@ -305,51 +306,12 @@
public ResponseEntity<WVPResult<String>> updateDevice(Device device){
if (device != null && device.getDeviceId() != null) {
- Device deviceInStore = storager.queryVideoDevice(device.getDeviceId());
- 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());
- // 寮�鍚闃�
- deviceService.addCatalogSubscribe(deviceInStore);
- }
- }else if (device.getSubscribeCycleForCatalog() == 0) {
- if (deviceInStore.getSubscribeCycleForCatalog() != 0) {
- deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog());
- // 鍙栨秷璁㈤槄
- deviceService.removeCatalogSubscribe(deviceInStore);
- }
- }
-
- // 绉诲姩浣嶇疆璁㈤槄鐩稿叧鐨勪俊鎭�
- if (device.getSubscribeCycleForMobilePosition() > 0) {
- if (deviceInStore.getSubscribeCycleForMobilePosition() == 0 || deviceInStore.getSubscribeCycleForMobilePosition() != device.getSubscribeCycleForMobilePosition()) {
- deviceInStore.setMobilePositionSubmissionInterval(device.getMobilePositionSubmissionInterval());
- deviceInStore.setSubscribeCycleForMobilePosition(device.getSubscribeCycleForMobilePosition());
- // 寮�鍚闃�
- deviceService.addMobilePositionSubscribe(deviceInStore);
- }
- }else if (device.getSubscribeCycleForMobilePosition() == 0) {
- if (deviceInStore.getSubscribeCycleForMobilePosition() != 0) {
- // 鍙栨秷璁㈤槄
- deviceService.removeMobilePositionSubscribe(deviceInStore);
- }
- }
// TODO 鎶ヨ璁㈤槄鐩稿叧鐨勪俊鎭�
- storager.updateDevice(device);
- cmder.deviceInfoQuery(device);
+ deviceService.updateDevice(device);
+// cmder.deviceInfoQuery(device);
}
WVPResult<String> result = new WVPResult<>();
result.setCode(0);
--
Gitblit v1.8.0