| | |
| | | import com.genersoft.iot.vmp.conf.VersionInfo; |
| | | import com.genersoft.iot.vmp.conf.exception.ControllerException; |
| | | import com.genersoft.iot.vmp.conf.security.JwtUtils; |
| | | import com.genersoft.iot.vmp.media.zlm.SendRtpPortManager; |
| | | 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.media.service.IMediaServerService; |
| | | import com.genersoft.iot.vmp.media.bean.MediaServer; |
| | | import com.genersoft.iot.vmp.service.*; |
| | | import com.genersoft.iot.vmp.service.bean.MediaServerLoad; |
| | | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; |
| | |
| | | @RequestMapping("/api/server") |
| | | public class ServerController { |
| | | |
| | | @Autowired |
| | | private ZlmHttpHookSubscribe zlmHttpHookSubscribe; |
| | | |
| | | @Autowired |
| | | private IMediaServerService mediaServerService; |
| | |
| | | @Autowired |
| | | private IRedisCatchStorage redisCatchStorage; |
| | | |
| | | @Autowired |
| | | private SendRtpPortManager sendRtpPortManager; |
| | | |
| | | |
| | | @GetMapping(value = "/media_server/list") |
| | | @ResponseBody |
| | | @Operation(summary = "流媒体服务列表", security = @SecurityRequirement(name = JwtUtils.HEADER)) |
| | | public List<MediaServerItem> getMediaServerList() { |
| | | public List<MediaServer> getMediaServerList() { |
| | | return mediaServerService.getAll(); |
| | | } |
| | | |
| | | @GetMapping(value = "/media_server/online/list") |
| | | @ResponseBody |
| | | @Operation(summary = "在线流媒体服务列表", security = @SecurityRequirement(name = JwtUtils.HEADER)) |
| | | public List<MediaServerItem> getOnlineMediaServerList() { |
| | | public List<MediaServer> getOnlineMediaServerList() { |
| | | return mediaServerService.getAllOnline(); |
| | | } |
| | | |
| | |
| | | @ResponseBody |
| | | @Operation(summary = "停止视频回放", security = @SecurityRequirement(name = JwtUtils.HEADER)) |
| | | @Parameter(name = "id", description = "流媒体服务ID", required = true) |
| | | public MediaServerItem getMediaServer(@PathVariable String id) { |
| | | public MediaServer getMediaServer(@PathVariable String id) { |
| | | return mediaServerService.getOne(id); |
| | | } |
| | | |
| | |
| | | @Parameter(name = "secret", description = "流媒体服务secret", required = true) |
| | | @GetMapping(value = "/media_server/check") |
| | | @ResponseBody |
| | | public MediaServerItem checkMediaServer(@RequestParam String ip, @RequestParam int port, @RequestParam String secret) { |
| | | return mediaServerService.checkMediaServer(ip, port, secret); |
| | | public MediaServer checkMediaServer(@RequestParam String ip, @RequestParam int port, @RequestParam String secret, @RequestParam String type) { |
| | | return mediaServerService.checkMediaServer(ip, port, secret, type); |
| | | } |
| | | |
| | | @Operation(summary = "测试流媒体录像管理服务", security = @SecurityRequirement(name = JwtUtils.HEADER)) |
| | |
| | | @Parameter(name = "mediaServerItem", description = "流媒体信息", required = true) |
| | | @PostMapping(value = "/media_server/save") |
| | | @ResponseBody |
| | | public void saveMediaServer(@RequestBody MediaServerItem mediaServerItem) { |
| | | MediaServerItem mediaServerItemInDatabase = mediaServerService.getOne(mediaServerItem.getId()); |
| | | public void saveMediaServer(@RequestBody MediaServer mediaServerItem) { |
| | | MediaServer mediaServerItemInDatabase = mediaServerService.getOneFromDatabase(mediaServerItem.getId()); |
| | | |
| | | if (mediaServerItemInDatabase != null) { |
| | | mediaServerService.update(mediaServerItem); |
| | |
| | | @DeleteMapping(value = "/media_server/delete") |
| | | @ResponseBody |
| | | public void deleteMediaServer(@RequestParam String id) { |
| | | if (mediaServerService.getOne(id) == null) { |
| | | throw new ControllerException(ErrorCode.ERROR100.getCode(), "未找到此节点"); |
| | | } |
| | | mediaServerService.delete(id); |
| | | mediaServerService.deleteDb(id); |
| | | } |
| | | |
| | | |
| | |
| | | return jsonObject; |
| | | } |
| | | |
| | | @GetMapping(value = "/hooks") |
| | | @ResponseBody |
| | | @Operation(summary = "获取当前所有hook") |
| | | public List<IHookSubscribe> getHooks() { |
| | | return zlmHttpHookSubscribe.getAll(); |
| | | } |
| | | |
| | | @GetMapping(value = "/system/info") |
| | | @ResponseBody |
| | | @Operation(summary = "获取系统信息") |
| | |
| | | @Operation(summary = "获取负载信息") |
| | | public List<MediaServerLoad> getMediaLoad() { |
| | | List<MediaServerLoad> result = new ArrayList<>(); |
| | | List<MediaServerItem> allOnline = mediaServerService.getAllOnline(); |
| | | List<MediaServer> allOnline = mediaServerService.getAllOnline(); |
| | | if (allOnline.size() == 0) { |
| | | return result; |
| | | }else { |
| | | for (MediaServerItem mediaServerItem : allOnline) { |
| | | for (MediaServer mediaServerItem : allOnline) { |
| | | result.add(mediaServerService.getLoad(mediaServerItem)); |
| | | } |
| | | } |