From ecd14d6757eb12e66d7668eff509c10875abf855 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 22 八月 2022 15:03:18 +0800
Subject: [PATCH] Merge pull request #578 from urmyfaith/patch-1

---
 src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java |  163 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 101 insertions(+), 62 deletions(-)

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 c27fb0e..95995b8 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
@@ -4,18 +4,21 @@
 import com.alibaba.fastjson.JSONObject;
 import com.genersoft.iot.vmp.VManageBootstrap;
 import com.genersoft.iot.vmp.common.VersionPo;
+import com.genersoft.iot.vmp.conf.DynamicTask;
 import com.genersoft.iot.vmp.conf.SipConfig;
-import com.genersoft.iot.vmp.conf.UserSetup;
+import com.genersoft.iot.vmp.conf.UserSetting;
 import com.genersoft.iot.vmp.conf.VersionInfo;
+import com.genersoft.iot.vmp.media.zlm.ZLMHttpHookSubscribe;
+import com.genersoft.iot.vmp.media.zlm.dto.IHookSubscribe;
 import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
 import com.genersoft.iot.vmp.service.IMediaServerService;
 import com.genersoft.iot.vmp.utils.SpringBeanFactory;
 import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
 import gov.nist.javax.sip.SipStackImpl;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.ConfigurableApplicationContext;
@@ -27,37 +30,41 @@
 import javax.sip.SipProvider;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 
 @SuppressWarnings("rawtypes")
-@Api(tags = "鏈嶅姟鎺у埗")
+@Tag(name = "鏈嶅姟鎺у埗")
 @CrossOrigin
 @RestController
 @RequestMapping("/api/server")
 public class ServerController {
 
     @Autowired
-    private ConfigurableApplicationContext context;
+    private ZLMHttpHookSubscribe zlmHttpHookSubscribe;
 
     @Autowired
     private IMediaServerService mediaServerService;
 
     @Autowired
-    VersionInfo versionInfo;
+    private VersionInfo versionInfo;
 
     @Autowired
-    SipConfig sipConfig;
+    private SipConfig sipConfig;
 
     @Autowired
-    UserSetup userSetup;
+    private UserSetting userSetting;
+
+    @Autowired
+    private DynamicTask dynamicTask;
 
     @Value("${server.port}")
     private int serverPort;
 
 
-    @ApiOperation("娴佸獟浣撴湇鍔″垪琛�")
     @GetMapping(value = "/media_server/list")
     @ResponseBody
-    public WVPResult<List<MediaServerItem>> getMediaServerList(boolean detail){
+    @Operation(summary = "娴佸獟浣撴湇鍔″垪琛�")
+    public WVPResult<List<MediaServerItem>> getMediaServerList() {
         WVPResult<List<MediaServerItem>> result = new WVPResult<>();
         result.setCode(0);
         result.setMsg("success");
@@ -65,10 +72,10 @@
         return result;
     }
 
-    @ApiOperation("鍦ㄧ嚎娴佸獟浣撴湇鍔″垪琛�")
     @GetMapping(value = "/media_server/online/list")
     @ResponseBody
-    public WVPResult<List<MediaServerItem>> getOnlineMediaServerList(){
+    @Operation(summary = "鍦ㄧ嚎娴佸獟浣撴湇鍔″垪琛�")
+    public WVPResult<List<MediaServerItem>> getOnlineMediaServerList() {
         WVPResult<List<MediaServerItem>> result = new WVPResult<>();
         result.setCode(0);
         result.setMsg("success");
@@ -76,10 +83,11 @@
         return result;
     }
 
-    @ApiOperation("鑾峰彇娴佸獟浣撴湇鍔�")
     @GetMapping(value = "/media_server/one/{id}")
     @ResponseBody
-    public WVPResult<MediaServerItem> getMediaServer(@PathVariable String id){
+    @Operation(summary = "鍋滄瑙嗛鍥炴斁")
+    @Parameter(name = "id", description = "娴佸獟浣撴湇鍔D", required = true)
+    public WVPResult<MediaServerItem> getMediaServer(@PathVariable String id) {
         WVPResult<MediaServerItem> result = new WVPResult<>();
         result.setCode(0);
         result.setMsg("success");
@@ -87,57 +95,49 @@
         return result;
     }
 
-    @ApiOperation("娴嬭瘯娴佸獟浣撴湇鍔�")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name="ip", value = "娴佸獟浣撴湇鍔P", dataTypeClass = String.class),
-            @ApiImplicitParam(name="port", value = "娴佸獟浣撴湇鍔TT绔彛", dataTypeClass = Integer.class),
-            @ApiImplicitParam(name="secret", value = "娴佸獟浣撴湇鍔ecret", dataTypeClass = String.class),
-    })
+    @Operation(summary = "娴嬭瘯娴佸獟浣撴湇鍔�")
+    @Parameter(name = "ip", description = "娴佸獟浣撴湇鍔P", required = true)
+    @Parameter(name = "port", description = "娴佸獟浣撴湇鍔TT绔彛", required = true)
+    @Parameter(name = "secret", description = "娴佸獟浣撴湇鍔ecret", required = true)
     @GetMapping(value = "/media_server/check")
     @ResponseBody
-    public WVPResult<MediaServerItem> checkMediaServer(@RequestParam String ip, @RequestParam int port, @RequestParam String secret){
+    public WVPResult<MediaServerItem> checkMediaServer(@RequestParam String ip, @RequestParam int port, @RequestParam String secret) {
         return mediaServerService.checkMediaServer(ip, port, secret);
     }
 
-    @ApiOperation("娴嬭瘯娴佸獟浣撳綍鍍忕鐞嗘湇鍔�")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name="ip", value = "娴佸獟浣撴湇鍔P", dataTypeClass = String.class),
-            @ApiImplicitParam(name="port", value = "娴佸獟浣撴湇鍔TT绔彛", dataTypeClass = Integer.class),
-            @ApiImplicitParam(name="secret", value = "娴佸獟浣撴湇鍔ecret", dataTypeClass = String.class),
-    })
+    @Operation(summary = "娴嬭瘯娴佸獟浣撳綍鍍忕鐞嗘湇鍔�")
+    @Parameter(name = "ip", description = "娴佸獟浣撴湇鍔P", required = true)
+    @Parameter(name = "port", description = "娴佸獟浣撴湇鍔TT绔彛", required = true)
     @GetMapping(value = "/media_server/record/check")
     @ResponseBody
-    public WVPResult<String> checkMediaRecordServer(@RequestParam String ip, @RequestParam int port){
+    public WVPResult<String> checkMediaRecordServer(@RequestParam String ip, @RequestParam int port) {
         boolean checkResult = mediaServerService.checkMediaRecordServer(ip, port);
         WVPResult<String> result = new WVPResult<>();
         if (checkResult) {
             result.setCode(0);
             result.setMsg("success");
 
-        }else {
+        } else {
             result.setCode(-1);
             result.setMsg("杩炴帴澶辫触");
         }
         return result;
     }
 
-    @ApiOperation("淇濆瓨娴佸獟浣撴湇鍔�")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name="mediaServerItem", value = "娴佸獟浣撲俊鎭�", dataTypeClass = MediaServerItem.class)
-    })
+    @Operation(summary = "淇濆瓨娴佸獟浣撴湇鍔�")
+    @Parameter(name = "mediaServerItem", description = "娴佸獟浣撲俊鎭�", required = true)
     @PostMapping(value = "/media_server/save")
     @ResponseBody
-    public WVPResult<String> saveMediaServer(@RequestBody  MediaServerItem mediaServerItem){
+    public WVPResult<String> saveMediaServer(@RequestBody MediaServerItem mediaServerItem) {
         MediaServerItem mediaServerItemInDatabase = mediaServerService.getOne(mediaServerItem.getId());
 
         if (mediaServerItemInDatabase != null) {
-            if (StringUtils.isEmpty(mediaServerItemInDatabase.getSendRtpPortRange())
-                    && StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){
+            if (StringUtils.isEmpty(mediaServerItemInDatabase.getSendRtpPortRange()) && StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())) {
                 mediaServerItem.setSendRtpPortRange("30000,30500");
             }
-           mediaServerService.update(mediaServerItem);
-        }else {
-            if (StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){
+            mediaServerService.update(mediaServerItem);
+        } else {
+            if (StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())) {
                 mediaServerItem.setSendRtpPortRange("30000,30500");
             }
             return mediaServerService.add(mediaServerItem);
@@ -149,16 +149,15 @@
         return result;
     }
 
-    @ApiOperation("绉婚櫎娴佸獟浣撴湇鍔�")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name="id", value = "娴佸獟浣揑D", dataTypeClass = String.class)
-    })
+    @Operation(summary = "绉婚櫎娴佸獟浣撴湇鍔�")
+    @Parameter(name = "id", description = "娴佸獟浣揑D", required = true)
     @DeleteMapping(value = "/media_server/delete")
     @ResponseBody
-    public WVPResult<String> deleteMediaServer(@RequestParam  String id){
+    public WVPResult<String> deleteMediaServer(@RequestParam String id) {
         if (mediaServerService.getOne(id) != null) {
             mediaServerService.delete(id);
-        }else {
+            mediaServerService.deleteDb(id);
+        } else {
             WVPResult<String> result = new WVPResult<>();
             result.setCode(-1);
             result.setMsg("鏈壘鍒版鑺傜偣");
@@ -171,18 +170,17 @@
     }
 
 
-
-    @ApiOperation("閲嶅惎鏈嶅姟")
+    @Operation(summary = "閲嶅惎鏈嶅姟")
     @GetMapping(value = "/restart")
     @ResponseBody
-    public Object restart(){
+    public Object restart() {
         Thread restartThread = new Thread(new Runnable() {
             @Override
             public void run() {
                 try {
                     Thread.sleep(3000);
                     SipProvider up = (SipProvider) SpringBeanFactory.getBean("udpSipProvider");
-                    SipStackImpl stack = (SipStackImpl)up.getSipStack();
+                    SipStackImpl stack = (SipStackImpl) up.getSipStack();
                     stack.stop();
                     Iterator listener = stack.getListeningPoints();
                     while (listener.hasNext()) {
@@ -205,10 +203,10 @@
         return "success";
     }
 
-    @ApiOperation("鐗堟湰淇℃伅")
+    @Operation(summary = "鑾峰彇鐗堟湰淇℃伅")
     @GetMapping(value = "/version")
     @ResponseBody
-    public WVPResult<VersionPo> getVersion(){
+    public WVPResult<VersionPo> getVersion() {
         WVPResult<VersionPo> result = new WVPResult<>();
         result.setCode(0);
         result.setMsg("success");
@@ -216,13 +214,11 @@
         return result;
     }
 
-    @ApiOperation("閰嶇疆淇℃伅")
     @GetMapping(value = "/config")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name="type", value = "閰嶇疆绫诲瀷锛坰ip, base锛�", dataTypeClass = String.class),
-    })
+    @Operation(summary = "鑾峰彇閰嶇疆淇℃伅")
+    @Parameter(name = "type", description = "閰嶇疆绫诲瀷锛坰ip, base锛�", required = true)
     @ResponseBody
-    public WVPResult<JSONObject> getVersion(String type){
+    public WVPResult<JSONObject> getVersion(String type) {
         WVPResult<JSONObject> result = new WVPResult<>();
         result.setCode(0);
         result.setMsg("success");
@@ -231,14 +227,14 @@
         jsonObject.put("server.port", serverPort);
         if (StringUtils.isEmpty(type)) {
             jsonObject.put("sip", JSON.toJSON(sipConfig));
-            jsonObject.put("base", JSON.toJSON(userSetup));
-        }else {
-            switch (type){
+            jsonObject.put("base", JSON.toJSON(userSetting));
+        } else {
+            switch (type) {
                 case "sip":
                     jsonObject.put("sip", sipConfig);
                     break;
                 case "base":
-                    jsonObject.put("base", userSetup);
+                    jsonObject.put("base", userSetting);
                     break;
                 default:
                     break;
@@ -247,4 +243,47 @@
         result.setData(jsonObject);
         return result;
     }
+
+    @GetMapping(value = "/hooks")
+    @ResponseBody
+    @Operation(summary = "鑾峰彇褰撳墠鎵�鏈塰ook")
+    public WVPResult<List<IHookSubscribe>> getHooks() {
+        WVPResult<List<IHookSubscribe>> result = new WVPResult<>();
+        result.setCode(0);
+        result.setMsg("success");
+        List<IHookSubscribe> all = zlmHttpHookSubscribe.getAll();
+        result.setData(all);
+        return result;
+    }
+
+//     //@ApiOperation("褰撳墠杩涜涓殑鍔ㄦ�佷换鍔�")
+//    @GetMapping(value = "/dynamicTask")
+//    @ResponseBody
+//    public WVPResult<JSONObject> getDynamicTask(){
+//        WVPResult<JSONObject> result = new WVPResult<>();
+//        result.setCode(0);
+//        result.setMsg("success");
+//
+//        JSONObject jsonObject = new JSONObject();
+//
+//        Set<String> allKeys = dynamicTask.getAllKeys();
+//        jsonObject.put("server.port", serverPort);
+//        if (StringUtils.isEmpty(type)) {
+//            jsonObject.put("sip", JSON.toJSON(sipConfig));
+//            jsonObject.put("base", JSON.toJSON(userSetting));
+//        }else {
+//            switch (type){
+//                case "sip":
+//                    jsonObject.put("sip", sipConfig);
+//                    break;
+//                case "base":
+//                    jsonObject.put("base", userSetting);
+//                    break;
+//                default:
+//                    break;
+//            }
+//        }
+//        result.setData(jsonObject);
+//        return result;
+//    }
 }

--
Gitblit v1.8.0