From 28b5cc39d0a2d9939f70b4c980a31d9b27fc1e4c Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 19 七月 2022 14:27:30 +0800 Subject: [PATCH] 修复更新推流状态sql错误 --- src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java | 96 ++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 81 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java index c58bd60..300f952 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java @@ -3,13 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelReader; import com.alibaba.excel.read.metadata.ReadSheet; +import com.genersoft.iot.vmp.common.StreamInfo; +import com.genersoft.iot.vmp.conf.security.SecurityUtils; +import com.genersoft.iot.vmp.conf.security.dto.LoginUser; import com.genersoft.iot.vmp.gb28181.bean.GbStream; import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; +import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo; import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; import com.genersoft.iot.vmp.service.IMediaServerService; +import com.genersoft.iot.vmp.service.IMediaService; import com.genersoft.iot.vmp.service.IStreamPushService; import com.genersoft.iot.vmp.service.impl.StreamPushUploadFileHandler; +import com.genersoft.iot.vmp.vmanager.bean.BatchGBStreamParam; import com.genersoft.iot.vmp.vmanager.bean.StreamPushExcelDto; import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import com.github.pagehelper.PageInfo; @@ -24,10 +30,12 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; @@ -52,21 +60,32 @@ @Autowired private DeferredResultHolder resultHolder; + @Autowired + private IMediaService mediaService; + @ApiOperation("鎺ㄦ祦鍒楄〃鏌ヨ") @ApiImplicitParams({ @ApiImplicitParam(name="page", value = "褰撳墠椤�", required = true, dataTypeClass = Integer.class), @ApiImplicitParam(name="count", value = "姣忛〉鏌ヨ鏁伴噺", required = true, dataTypeClass = Integer.class), @ApiImplicitParam(name="query", value = "鏌ヨ鍐呭", dataTypeClass = String.class), - @ApiImplicitParam(name="online", value = "鏄惁鍦ㄧ嚎", dataTypeClass = Boolean.class), + @ApiImplicitParam(name="pushing", value = "鏄惁姝e湪鎺ㄦ祦", dataTypeClass = Boolean.class), + @ApiImplicitParam(name="mediaServerId", value = "娴佸獟浣揑D", dataTypeClass = String.class), }) @GetMapping(value = "/list") @ResponseBody public PageInfo<StreamPushItem> list(@RequestParam(required = false)Integer page, @RequestParam(required = false)Integer count, @RequestParam(required = false)String query, - @RequestParam(required = false)Boolean online ){ + @RequestParam(required = false)Boolean pushing, + @RequestParam(required = false)String mediaServerId ){ - PageInfo<StreamPushItem> pushList = streamPushService.getPushList(page, count); + if (StringUtils.isEmpty(query)) { + query = null; + } + if (StringUtils.isEmpty(mediaServerId)) { + mediaServerId = null; + } + PageInfo<StreamPushItem> pushList = streamPushService.getPushList(page, count, query, pushing, mediaServerId); return pushList; } @@ -107,13 +126,32 @@ }) @PostMapping(value = "/stop") @ResponseBody - public Object removeFormGB(@RequestParam(required = true)String app, @RequestParam(required = true)String streamId){ + public Object stop(String app, String streamId){ if (streamPushService.stop(app, streamId)){ return "success"; }else { return "fail"; } } + + @ApiOperation("涓澶氫釜鎺ㄦ祦") + @ApiImplicitParams({ + @ApiImplicitParam(name = "app", value = "搴旂敤鍚�", required = true, dataTypeClass = String.class), + @ApiImplicitParam(name = "streamId", value = "娴両D", required = true, dataTypeClass = String.class), + }) + @DeleteMapping(value = "/batchStop") + @ResponseBody + public Object batchStop(@RequestBody BatchGBStreamParam batchGBStreamParam){ + if (batchGBStreamParam.getGbStreams().size() == 0) { + return "fail"; + } + if (streamPushService.batchStop(batchGBStreamParam.getGbStreams())){ + return "success"; + }else { + return "fail"; + } + } + @PostMapping(value = "upload") @ResponseBody public DeferredResult<ResponseEntity<WVPResult<Object>>> uploadChannelFile(@RequestParam(value = "file") MultipartFile file){ @@ -123,7 +161,7 @@ // 褰曞儚鏌ヨ浠hannelId浣滀负deviceId鏌ヨ String key = DeferredResultHolder.UPLOAD_FILE_CHANNEL; String uuid = UUID.randomUUID().toString(); - logger.warn("閫氶亾瀵煎叆鏂囦欢绫诲瀷: {}",file.getContentType() ); + logger.info("閫氶亾瀵煎叆鏂囦欢绫诲瀷: {}",file.getContentType() ); if (file.isEmpty()) { logger.warn("閫氶亾瀵煎叆鏂囦欢涓虹┖"); WVPResult<Object> wvpResult = new WVPResult<>(); @@ -139,16 +177,6 @@ result.setResult(ResponseEntity.status(HttpStatus.BAD_REQUEST).body(wvpResult)); return result; } -// if (!file.getContentType().endsWith(".xls") -// && !file.getContentType().endsWith(".csv") -// && !file.getContentType().endsWith(".xlsx") ) { -// logger.warn("閫氶亾瀵煎叆鏂囦欢绫诲瀷閿欒: {}",file.getContentType() ); -// WVPResult<Object> wvpResult = new WVPResult<>(); -// wvpResult.setCode(-1); -// wvpResult.setMsg("鏂囦欢绫诲瀷閿欒锛岃浣跨敤"); -// result.setResult(ResponseEntity.status(HttpStatus.BAD_REQUEST).body(wvpResult)); -// return result; -// } // 鍚屾椂鍙鐞嗕竴涓枃浠� if (resultHolder.exist(key, null)) { logger.warn("宸叉湁瀵煎叆浠诲姟姝e湪鎵ц"); @@ -218,5 +246,43 @@ return result; } + /** + * 鑾峰彇鎺ㄦ祦鎾斁鍦板潃 + * @param app 搴旂敤鍚� + * @param stream 娴乮d + * @return + */ + @ApiOperation("鑾峰彇鎺ㄦ祦鎾斁鍦板潃") + @ApiImplicitParams({ + @ApiImplicitParam(name = "app", value = "搴旂敤鍚�", dataTypeClass = String.class), + @ApiImplicitParam(name = "stream", value = "娴乮d", dataTypeClass = String.class), + @ApiImplicitParam(name = "mediaServerId", value = "濯掍綋鏈嶅姟鍣╥d", dataTypeClass = String.class, required = false), + }) + @GetMapping(value = "/getPlayUrl") + @ResponseBody + public WVPResult<StreamInfo> getPlayUrl(HttpServletRequest request, @RequestParam String app, + @RequestParam String stream, + @RequestParam(required = false) String mediaServerId){ + boolean authority = false; + // 鏄惁鐧婚檰鐢ㄦ埛, 鐧婚檰鐢ㄦ埛杩斿洖瀹屾暣淇℃伅 + LoginUser userInfo = SecurityUtils.getUserInfo(); + if (userInfo!= null) { + authority = true; + } + + StreamInfo streamInfo = mediaService.getStreamInfoByAppAndStreamWithCheck(app, stream, mediaServerId, authority); + + WVPResult<StreamInfo> result = new WVPResult<>(); + if (streamInfo != null){ + result.setCode(0); + result.setMsg("scccess"); + result.setData(streamInfo); + }else { + result.setCode(-1); + result.setMsg("fail"); + } + return result; + } + } -- Gitblit v1.8.0