From abc65c6317db3d57c501615125b5a4e17b0448c9 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 25 一月 2022 17:14:10 +0800
Subject: [PATCH] 优化目录移除时默认目录的选择

---
 src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java               |    2 ++
 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java |   29 +++++++++++++++++------------
 src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java           |    3 +++
 web_src/src/components/dialog/chooseChannelForCatalog.vue                             |    5 +++--
 src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java       |    5 +++++
 5 files changed, 30 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
index e4bda3f..038fe2b 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
@@ -470,4 +470,6 @@
 	void delCatalogByPlatformId(String serverGBId);
 
 	void delRelationByPlatformId(String serverGBId);
+
+    PlatformCatalog queryDefaultCatalogInPlatform(String platformId);
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java
index 59ecdbc..95015bd 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java
@@ -41,4 +41,7 @@
 
     @Select("SELECT *, (SELECT COUNT(1) from platform_catalog where parentId = pc.id) as childrenCount  FROM platform_catalog pc WHERE pc.platformId=#{platformId}")
     List<PlatformCatalog> selectByPlatForm(String platformId);
+
+    @Select("SELECT pc.* FROM  platform_catalog pc WHERE  pc.id = (SELECT pp.catalogId from parent_platform pp WHERE pp.serverGBId=#{platformId})")
+    PlatformCatalog selectDefaultByPlatFormId(String platformId);
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
index 98f3594..816a749 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
@@ -1058,4 +1058,9 @@
 		platformGbStreamMapper.delByPlatformId(serverGBId);
 		platformChannelMapper.delByPlatformId(serverGBId);
 	}
+
+	@Override
+	public PlatformCatalog queryDefaultCatalogInPlatform(String platformId) {
+		return catalogMapper.selectDefaultByPlatFormId(platformId);
+	}
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
index 1111ff7..532d928 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
@@ -465,25 +465,30 @@
     })
     @DeleteMapping("/catalog/del")
     @ResponseBody
-    public ResponseEntity<WVPResult<List<PlatformCatalog>>> delCatalog(String id){
+    public ResponseEntity<WVPResult<String>> delCatalog(String id, String platformId){
 
         if (logger.isDebugEnabled()) {
             logger.debug("鍒犻櫎鐩綍,{}", id);
         }
-        // 濡傛灉鍒犻櫎鐨勬槸榛樿鐩綍鍒欐牴鐩綍璁剧疆涓洪粯璁ょ洰褰�
-        PlatformCatalog catalog = storager.getCatalog(id);
-        if (catalog != null) {
-            ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(catalog.getPlatformId());
-            if (parentPlatform != null) {
-                if (id.equals(parentPlatform.getCatalogId())) {
-                    storager.setDefaultCatalog(parentPlatform.getServerGBId(), parentPlatform.getServerGBId());
-                }
-            }
+        WVPResult<String> result = new WVPResult<>();
+
+        if (StringUtils.isEmpty(id) || StringUtils.isEmpty(platformId)) {
+            result.setCode(-1);
+            result.setMsg("param error");
+            return new ResponseEntity<>(result, HttpStatus.BAD_REQUEST);
         }
+        result.setCode(0);
 
         int delResult = storager.delCatalog(id);
-        WVPResult<List<PlatformCatalog>> result = new WVPResult<>();
-        result.setCode(0);
+        // 濡傛灉鍒犻櫎鐨勬槸榛樿鐩綍鍒欐牴鐩綍璁剧疆涓洪粯璁ょ洰褰�
+        PlatformCatalog parentPlatform = storager.queryDefaultCatalogInPlatform(platformId);
+
+        // 榛樿鑺傜偣琚Щ闄�
+        if (parentPlatform == null) {
+            storager.setDefaultCatalog(platformId, platformId);
+            result.setData(platformId);
+        }
+
 
         if (delResult > 0) {
             result.setMsg("success");
diff --git a/web_src/src/components/dialog/chooseChannelForCatalog.vue b/web_src/src/components/dialog/chooseChannelForCatalog.vue
index 5133caa..2d87bdd 100644
--- a/web_src/src/components/dialog/chooseChannelForCatalog.vue
+++ b/web_src/src/components/dialog/chooseChannelForCatalog.vue
@@ -132,6 +132,7 @@
             url:`/api/platform/catalog/del`,
             params: {
               id: id,
+              platformId: this.platformId,
             }
           })
             .then((res) => {
@@ -139,8 +140,8 @@
                 console.log("绉婚櫎鎴愬姛")
                 node.parent.loaded = false
                 node.parent.expand();
-                if(this.defaultCatalogId === id) {
-                  this.defaultCatalogId = this.platformId;
+                if (res.data.data) {
+                  this.defaultCatalogId = res.data.data;
                 }
               }
             })

--
Gitblit v1.8.0