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