From d6544c0c711c3a81d675b5891462e07a645ddb3b Mon Sep 17 00:00:00 2001
From: 648540858 <18010473990@163.com>
Date: 星期六, 25 九月 2021 22:48:03 +0800
Subject: [PATCH] 添加媒体服务器节点管理ui-移除接口

---
 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java                 |    5 ++
 web_src/src/components/service/MediaServer.js                                |   14 +++++++
 web_src/src/components/MediaServerManger.vue                                 |   22 ++++++++++
 src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java |    8 ++++
 src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java         |    2 +
 src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java    |   23 +++++++++++
 6 files changed, 72 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
index 7faebfa..a7b39fa 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
@@ -81,6 +81,7 @@
             if (startGetMedia == null) startGetMedia = new HashMap<>();
             startGetMedia.put(mediaServerItem.getId(), true);
             new Thread(() -> {
+
                 ZLMServerConfig zlmServerConfig = getMediaServerConfig(mediaServerItem);
                 if (zlmServerConfig != null) {
                     zlmServerConfig.setIp(mediaServerItem.getIp());
@@ -88,6 +89,7 @@
                     startGetMedia.remove(mediaServerItem.getId());
                     mediaServerService.handLeZLMServerConfig(zlmServerConfig);
                 }
+
             }).start();
         }
         Timer timer = new Timer();
@@ -109,6 +111,9 @@
 
     public ZLMServerConfig getMediaServerConfig(MediaServerItem mediaServerItem) {
         if (startGetMedia == null) { return null;}
+        if (mediaServerService.getOne(mediaServerItem.getId()) == null) {
+            return null;
+        }
         if ( startGetMedia.get(mediaServerItem.getId()) == null || !startGetMedia.get(mediaServerItem.getId())) {
             return null;
         }
diff --git a/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java b/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java
index 81cf8f1..b222e70 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java
@@ -57,4 +57,6 @@
     WVPResult<MediaServerItem> checkMediaServer(String ip, int port, String secret);
 
     boolean checkMediaRecordServer(String ip, int port);
+
+    void delete(String id);
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
index 18c1b93..1e5b079 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
@@ -519,4 +519,12 @@
 
         return result;
     }
+
+    @Override
+    public void delete(String id) {
+        redisUtil.zRemove(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX, id);
+        String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + id;
+        redisUtil.del(key);
+        mediaServerMapper.delOne(id);
+    }
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java
index 881a20a..8445c7e 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java
@@ -129,7 +129,7 @@
     })
     @PostMapping(value = "/media_server/save")
     @ResponseBody
-    public WVPResult<String> checkMediaServer(@RequestBody  MediaServerItem mediaServerItem){
+    public WVPResult<String> saveMediaServer(@RequestBody  MediaServerItem mediaServerItem){
         if (mediaServerService.getOne(mediaServerItem.getId()) != null) {
            mediaServerService.update(mediaServerItem);
         }else {
@@ -141,6 +141,27 @@
         return result;
     }
 
+    @ApiOperation("绉婚櫎娴佸獟浣撴湇鍔�")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name="id", value = "娴佸獟浣揑D", dataTypeClass = String.class)
+    })
+    @DeleteMapping(value = "/media_server/delete")
+    @ResponseBody
+    public WVPResult<String> deleteMediaServer(@RequestParam  String id){
+        if (mediaServerService.getOne(id) != null) {
+            mediaServerService.delete(id);
+        }else {
+            WVPResult<String> result = new WVPResult<>();
+            result.setCode(-1);
+            result.setMsg("鏈壘鍒版鑺傜偣");
+            return result;
+        }
+        WVPResult<String> result = new WVPResult<>();
+        result.setCode(0);
+        result.setMsg("success");
+        return result;
+    }
+
 
 
     @ApiOperation("閲嶅惎鏈嶅姟")
diff --git a/web_src/src/components/MediaServerManger.vue b/web_src/src/components/MediaServerManger.vue
index 19674d1..969d739 100644
--- a/web_src/src/components/MediaServerManger.vue
+++ b/web_src/src/components/MediaServerManger.vue
@@ -18,9 +18,10 @@
               <div class="card-img-zlm"></div>
               <div style="padding: 14px;text-align: left">
                 <span style="font-size: 16px">{{item.id}}</span>
+                <el-button icon="el-icon-edit" style="padding: 0;float: right;" type="text" @click="edit(item)">缂栬緫</el-button>
+                <el-button icon="el-icon-delete" style="margin-right: 10px;padding: 0;float: right;" type="text" @click="del(item)">绉婚櫎</el-button>
                 <div style="margin-top: 13px; line-height: 12px; ">
                   <span style="font-size: 14px; color: #999; margin-top: 5px">鍒涘缓鏃堕棿锛�  {{item.createTime}}</span>
-                  <el-button icon="el-icon-edit" style="padding: 0;float: right;" type="text" @click="edit(item)">缂栬緫</el-button>
                 </div>
               </div>
               <i v-if="item.status" class="iconfont icon-online server-card-status-online" title="鍦ㄧ嚎"></i>
@@ -88,6 +89,25 @@
       edit: function (row){
         this.$refs.mediaServerEdit.openDialog(row, this.initData)
       },
+      del: function (row){
+        this.$confirm('纭鍒犻櫎姝よ妭鐐癸紵', '鎻愮ず', {
+          confirmButtonText: '纭畾',
+          cancelButtonText: '鍙栨秷',
+          type: 'warning'
+        }).then(() => {
+          this.mediaServerObj.delete(row.id, (data)=>{
+            if (data.code === 0) {
+              this.$message({
+                type: 'success',
+                message: '鍒犻櫎鎴愬姛!'
+              });
+            }
+          })
+
+        }).catch(() => {
+        });
+
+      },
       getNumberByWidth(){
         let candidateNums = [1, 2, 3, 4, 6, 8, 12, 24]
         let clientWidth = window.innerWidth - 30;
diff --git a/web_src/src/components/service/MediaServer.js b/web_src/src/components/service/MediaServer.js
index e9de603..36474ea 100644
--- a/web_src/src/components/service/MediaServer.js
+++ b/web_src/src/components/service/MediaServer.js
@@ -80,6 +80,20 @@
       console.log(error);
     });
   }
+
+  delete(id, callback) {
+    this.$axios({
+      method: 'delete',
+      url:`/api/server/media_server/delete`,
+      params: {
+        id: id
+      }
+    }).then(function (res) {
+      if (typeof (callback) == "function") callback(res.data)
+    }).catch(function (error) {
+      console.log(error);
+    });
+  }
 }
 
 export default MediaServer;

--
Gitblit v1.8.0