为推流列表增加批量移除功能
This commit is contained in:
@@ -43,4 +43,5 @@ public interface IGbStreamService {
|
||||
DeviceChannel getDeviceChannelListByStream(GbStream gbStream, String catalogId, String deviceGBId);
|
||||
|
||||
void sendCatalogMsg(GbStream gbStream, String type);
|
||||
void sendCatalogMsgs(List<GbStream> gbStreams, String type);
|
||||
}
|
||||
|
||||
@@ -66,4 +66,6 @@ public interface IStreamPushService {
|
||||
boolean saveToRandomGB();
|
||||
|
||||
void batchAdd(List<StreamPushItem> streamPushExcelDtoList);
|
||||
|
||||
boolean batchStop(List<GbStream> streamPushItems);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.TransactionDefinition;
|
||||
import org.springframework.transaction.TransactionStatus;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -144,8 +145,16 @@ public class GbStreamServiceImpl implements IGbStreamService {
|
||||
gbStreams.add(streamProxyItem);
|
||||
}
|
||||
}
|
||||
sendCatalogMsgs(gbStreams, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendCatalogMsgs(List<GbStream> gbStreams, String type) {
|
||||
if (gbStreams.size() > 0) {
|
||||
for (GbStream gs : gbStreams) {
|
||||
if (StringUtils.isEmpty(gs.getGbId())){
|
||||
continue;
|
||||
}
|
||||
List<ParentPlatform> parentPlatforms = platformGbStreamMapper.selectByAppAndStream(gs.getApp(), gs.getStream());
|
||||
if (parentPlatforms.size() > 0) {
|
||||
for (ParentPlatform parentPlatform : parentPlatforms) {
|
||||
|
||||
@@ -355,8 +355,26 @@ public class StreamPushServiceImpl implements IStreamPushService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean batchStop(List<GbStream> gbStreams) {
|
||||
if (gbStreams == null || gbStreams.size() == 0) {
|
||||
return false;
|
||||
}
|
||||
gbStreamService.sendCatalogMsgs(gbStreams, CatalogEvent.DEL);
|
||||
|
||||
int delStream = streamPushMapper.delAllForGbStream(gbStreams);
|
||||
gbStreamMapper.batchDelForGbStream(gbStreams);
|
||||
platformGbStreamMapper.delByGbStreams(gbStreams);
|
||||
if (delStream > 0) {
|
||||
for (GbStream gbStream : gbStreams) {
|
||||
MediaServerItem mediaServerItem = mediaServerService.getOne(gbStream.getMediaServerId());
|
||||
zlmresTfulUtils.closeStreams(mediaServerItem, gbStream.getApp(), gbStream.getStream());
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,6 +84,14 @@ public interface GbStreamMapper {
|
||||
"</script>")
|
||||
void batchDel(List<StreamProxyItem> streamProxyItemList);
|
||||
|
||||
@Delete("<script> "+
|
||||
"DELETE FROM gb_stream where " +
|
||||
"<foreach collection='gbStreams' item='item' separator='or'>" +
|
||||
"(app=#{item.app} and stream=#{item.stream}) " +
|
||||
"</foreach>" +
|
||||
"</script>")
|
||||
void batchDelForGbStream(List<GbStream> gbStreams);
|
||||
|
||||
@Insert("<script> " +
|
||||
"REPLACE into gb_stream " +
|
||||
"(app, stream, gbId, name, " +
|
||||
|
||||
@@ -74,4 +74,12 @@ public interface PlatformGbStreamMapper {
|
||||
|
||||
@Delete("DELETE FROM platform_gb_stream WHERE app=#{app} AND stream=#{stream} AND platformId=#{platformId}")
|
||||
int delByAppAndStreamAndPlatform(String app, String stream, String platformId);
|
||||
|
||||
@Delete("<script> "+
|
||||
"DELETE FROM platform_gb_stream where " +
|
||||
"<foreach collection='gbStreams' item='item' separator='or'>" +
|
||||
"(app=#{item.app} and stream=#{item.stream}) " +
|
||||
"</foreach>" +
|
||||
"</script>")
|
||||
void delByGbStreams(List<GbStream> gbStreams);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.genersoft.iot.vmp.storager.dao;
|
||||
|
||||
import com.genersoft.iot.vmp.gb28181.bean.GbStream;
|
||||
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
import org.springframework.stereotype.Repository;
|
||||
@@ -48,7 +49,13 @@ public interface StreamPushMapper {
|
||||
"</script>")
|
||||
int delAll(List<StreamPushItem> streamPushItems);
|
||||
|
||||
|
||||
@Delete("<script> "+
|
||||
"DELETE FROM stream_push where " +
|
||||
"<foreach collection='gbStreams' item='item' separator='or'>" +
|
||||
"(app=#{item.app} and stream=#{item.stream}) " +
|
||||
"</foreach>" +
|
||||
"</script>")
|
||||
int delAllForGbStream(List<GbStream> gbStreams);
|
||||
|
||||
|
||||
@Select(value = {" <script>" +
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.genersoft.iot.vmp.vmanager.bean;
|
||||
|
||||
import com.genersoft.iot.vmp.gb28181.bean.GbStream;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BatchGBStreamParam {
|
||||
private List<GbStream> gbStreams;
|
||||
|
||||
public List<GbStream> getGbStreams() {
|
||||
return gbStreams;
|
||||
}
|
||||
|
||||
public void setGbStreams(List<GbStream> gbStreams) {
|
||||
this.gbStreams = gbStreams;
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@ import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
|
||||
import com.genersoft.iot.vmp.service.IMediaServerService;
|
||||
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;
|
||||
@@ -116,13 +117,32 @@ public class StreamPushController {
|
||||
})
|
||||
@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 = "流ID", 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){
|
||||
|
||||
Reference in New Issue
Block a user