Browse Source

优化目录移除时默认目录的选择

648540858 3 years ago
parent
commit
abc65c6317

+ 2 - 0
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java

@@ -470,4 +470,6 @@ public interface IVideoManagerStorager {
 	void delCatalogByPlatformId(String serverGBId);
 
 	void delRelationByPlatformId(String serverGBId);
+
+    PlatformCatalog queryDefaultCatalogInPlatform(String platformId);
 }

+ 3 - 0
src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformCatalogMapper.java

@@ -41,4 +41,7 @@ public interface PlatformCatalogMapper {
 
     @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);
 }

+ 5 - 0
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java

@@ -1058,4 +1058,9 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager {
 		platformGbStreamMapper.delByPlatformId(serverGBId);
 		platformChannelMapper.delByPlatformId(serverGBId);
 	}
+
+	@Override
+	public PlatformCatalog queryDefaultCatalogInPlatform(String platformId) {
+		return catalogMapper.selectDefaultByPlatFormId(platformId);
+	}
 }

+ 17 - 12
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java

@@ -465,25 +465,30 @@ public class PlatformController {
     })
     @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");

+ 3 - 2
web_src/src/components/dialog/chooseChannelForCatalog.vue

@@ -132,6 +132,7 @@ export default {
             url:`/api/platform/catalog/del`,
             params: {
               id: id,
+              platformId: this.platformId,
             }
           })
             .then((res) => {
@@ -139,8 +140,8 @@ export default {
                 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;
                 }
               }
             })