Commit bf66f8f694607fdd41ff9d7f6149459eef96bb67

Authored by 648540858
1 parent d07a5680

推流导入支持添加平台信息与目录信息

src/main/java/com/genersoft/iot/vmp/gb28181/event/EventPublisher.java
@@ -131,7 +131,7 @@ public class EventPublisher { @@ -131,7 +131,7 @@ public class EventPublisher {
131 } 131 }
132 132
133 @Async 133 @Async
134 - public void catalogEventPublishForStream(String platformId, List<GbStream> gbStreams, String type) { 134 + public void catalogEventPublishForStream(String platformId, GbStream[] gbStreams, String type) {
135 CatalogEvent outEvent = new CatalogEvent(this); 135 CatalogEvent outEvent = new CatalogEvent(this);
136 outEvent.setGbStreams(gbStreams); 136 outEvent.setGbStreams(gbStreams);
137 outEvent.setType(type); 137 outEvent.setType(type);
@@ -141,8 +141,7 @@ public class EventPublisher { @@ -141,8 +141,7 @@ public class EventPublisher {
141 141
142 @Async 142 @Async
143 public void catalogEventPublishForStream(String platformId, GbStream gbStream, String type) { 143 public void catalogEventPublishForStream(String platformId, GbStream gbStream, String type) {
144 - List<GbStream> gbStreamList = new ArrayList<>();  
145 - gbStreamList.add(gbStream);  
146 - catalogEventPublishForStream(platformId, gbStreamList, type); 144 + GbStream[] gbStreams = {gbStream};
  145 + catalogEventPublishForStream(platformId, gbStreams, type);
147 } 146 }
148 } 147 }
src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEvent.java
@@ -20,7 +20,7 @@ public class CatalogEvent extends ApplicationEvent { @@ -20,7 +20,7 @@ public class CatalogEvent extends ApplicationEvent {
20 public static final String UPDATE = "UPDATE"; // 更新 20 public static final String UPDATE = "UPDATE"; // 更新
21 21
22 private List<DeviceChannel> deviceChannels; 22 private List<DeviceChannel> deviceChannels;
23 - private List<GbStream> gbStreams; 23 + private GbStream[] gbStreams;
24 private String type; 24 private String type;
25 private String platformId; 25 private String platformId;
26 26
@@ -48,11 +48,11 @@ public class CatalogEvent extends ApplicationEvent { @@ -48,11 +48,11 @@ public class CatalogEvent extends ApplicationEvent {
48 this.platformId = platformId; 48 this.platformId = platformId;
49 } 49 }
50 50
51 - public List<GbStream> getGbStreams() { 51 + public GbStream[] getGbStreams() {
52 return gbStreams; 52 return gbStreams;
53 } 53 }
54 54
55 - public void setGbStreams(List<GbStream> gbStreams) { 55 + public void setGbStreams(GbStream[] gbStreams) {
56 this.gbStreams = gbStreams; 56 this.gbStreams = gbStreams;
57 } 57 }
58 } 58 }
src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java
@@ -94,7 +94,7 @@ public class CatalogEventLister implements ApplicationListener&lt;CatalogEvent&gt; { @@ -94,7 +94,7 @@ public class CatalogEventLister implements ApplicationListener&lt;CatalogEvent&gt; {
94 if (event.getDeviceChannels() != null) { 94 if (event.getDeviceChannels() != null) {
95 deviceChannelList.addAll(event.getDeviceChannels()); 95 deviceChannelList.addAll(event.getDeviceChannels());
96 } 96 }
97 - if (event.getGbStreams() != null && event.getGbStreams().size() > 0){ 97 + if (event.getGbStreams() != null && event.getGbStreams().length > 0){
98 for (GbStream gbStream : event.getGbStreams()) { 98 for (GbStream gbStream : event.getGbStreams()) {
99 DeviceChannel deviceChannelByStream = gbStreamService.getDeviceChannelListByStream(gbStream, gbStream.getCatalogId(), parentPlatform.getDeviceGBId()); 99 DeviceChannel deviceChannelByStream = gbStreamService.getDeviceChannelListByStream(gbStream, gbStream.getCatalogId(), parentPlatform.getDeviceGBId());
100 deviceChannelList.add(deviceChannelByStream); 100 deviceChannelList.add(deviceChannelByStream);
@@ -134,7 +134,7 @@ public class CatalogEventLister implements ApplicationListener&lt;CatalogEvent&gt; { @@ -134,7 +134,7 @@ public class CatalogEventLister implements ApplicationListener&lt;CatalogEvent&gt; {
134 if (event.getDeviceChannels() != null) { 134 if (event.getDeviceChannels() != null) {
135 deviceChannelList.addAll(event.getDeviceChannels()); 135 deviceChannelList.addAll(event.getDeviceChannels());
136 } 136 }
137 - if (event.getGbStreams() != null && event.getGbStreams().size() > 0){ 137 + if (event.getGbStreams() != null && event.getGbStreams().length > 0){
138 for (GbStream gbStream : event.getGbStreams()) { 138 for (GbStream gbStream : event.getGbStreams()) {
139 DeviceChannel deviceChannelByStream = gbStreamService.getDeviceChannelListByStream(gbStream, gbStream.getCatalogId(), parentPlatform.getDeviceGBId()); 139 DeviceChannel deviceChannelByStream = gbStreamService.getDeviceChannelListByStream(gbStream, gbStream.getCatalogId(), parentPlatform.getDeviceGBId());
140 deviceChannelList.add(deviceChannelByStream); 140 deviceChannelList.add(deviceChannelByStream);
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
@@ -371,7 +371,7 @@ public class ZLMHttpHookListener { @@ -371,7 +371,7 @@ public class ZLMHttpHookListener {
371 } 371 }
372 } 372 }
373 if (gbStreams.size() > 0) { 373 if (gbStreams.size() > 0) {
374 - eventPublisher.catalogEventPublishForStream(null, gbStreams, CatalogEvent.ON); 374 + eventPublisher.catalogEventPublishForStream(null, gbStreams.toArray(new GbStream[0]), CatalogEvent.ON);
375 } 375 }
376 376
377 }else { 377 }else {
src/main/java/com/genersoft/iot/vmp/service/IStreamPushService.java
@@ -68,4 +68,6 @@ public interface IStreamPushService { @@ -68,4 +68,6 @@ public interface IStreamPushService {
68 void batchAdd(List<StreamPushItem> streamPushExcelDtoList); 68 void batchAdd(List<StreamPushItem> streamPushExcelDtoList);
69 69
70 boolean batchStop(List<GbStream> streamPushItems); 70 boolean batchStop(List<GbStream> streamPushItems);
  71 +
  72 + void batchAddForUpload(String platformId, String catalogId, List<StreamPushItem> streamPushItems);
71 } 73 }
src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
@@ -8,6 +8,7 @@ import com.genersoft.iot.vmp.conf.UserSetup; @@ -8,6 +8,7 @@ import com.genersoft.iot.vmp.conf.UserSetup;
8 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; 8 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
9 import com.genersoft.iot.vmp.gb28181.bean.GbStream; 9 import com.genersoft.iot.vmp.gb28181.bean.GbStream;
10 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; 10 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
  11 +import com.genersoft.iot.vmp.gb28181.bean.PlatformCatalog;
11 import com.genersoft.iot.vmp.gb28181.event.EventPublisher; 12 import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
12 import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent; 13 import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
13 import com.genersoft.iot.vmp.media.zlm.ZLMHttpHookSubscribe; 14 import com.genersoft.iot.vmp.media.zlm.ZLMHttpHookSubscribe;
@@ -18,10 +19,7 @@ import com.genersoft.iot.vmp.service.IGbStreamService; @@ -18,10 +19,7 @@ import com.genersoft.iot.vmp.service.IGbStreamService;
18 import com.genersoft.iot.vmp.service.IMediaServerService; 19 import com.genersoft.iot.vmp.service.IMediaServerService;
19 import com.genersoft.iot.vmp.service.IStreamPushService; 20 import com.genersoft.iot.vmp.service.IStreamPushService;
20 import com.genersoft.iot.vmp.storager.IRedisCatchStorage; 21 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
21 -import com.genersoft.iot.vmp.storager.dao.GbStreamMapper;  
22 -import com.genersoft.iot.vmp.storager.dao.ParentPlatformMapper;  
23 -import com.genersoft.iot.vmp.storager.dao.PlatformGbStreamMapper;  
24 -import com.genersoft.iot.vmp.storager.dao.StreamPushMapper; 22 +import com.genersoft.iot.vmp.storager.dao.*;
25 import com.genersoft.iot.vmp.vmanager.bean.StreamPushExcelDto; 23 import com.genersoft.iot.vmp.vmanager.bean.StreamPushExcelDto;
26 import com.github.pagehelper.PageHelper; 24 import com.github.pagehelper.PageHelper;
27 import com.github.pagehelper.PageInfo; 25 import com.github.pagehelper.PageInfo;
@@ -44,6 +42,9 @@ public class StreamPushServiceImpl implements IStreamPushService { @@ -44,6 +42,9 @@ public class StreamPushServiceImpl implements IStreamPushService {
44 private ParentPlatformMapper parentPlatformMapper; 42 private ParentPlatformMapper parentPlatformMapper;
45 43
46 @Autowired 44 @Autowired
  45 + private PlatformCatalogMapper platformCatalogMapper;
  46 +
  47 + @Autowired
47 private PlatformGbStreamMapper platformGbStreamMapper; 48 private PlatformGbStreamMapper platformGbStreamMapper;
48 49
49 @Autowired 50 @Autowired
@@ -95,13 +96,12 @@ public class StreamPushServiceImpl implements IStreamPushService { @@ -95,13 +96,12 @@ public class StreamPushServiceImpl implements IStreamPushService {
95 streamPushItem.setMediaServerId(item.getMediaServerId()); 96 streamPushItem.setMediaServerId(item.getMediaServerId());
96 streamPushItem.setStream(item.getStream()); 97 streamPushItem.setStream(item.getStream());
97 streamPushItem.setAliveSecond(item.getAliveSecond()); 98 streamPushItem.setAliveSecond(item.getAliveSecond());
98 - streamPushItem.setCreateStamp(item.getCreateStamp());  
99 streamPushItem.setOriginSock(item.getOriginSock()); 99 streamPushItem.setOriginSock(item.getOriginSock());
100 streamPushItem.setTotalReaderCount(item.getTotalReaderCount()); 100 streamPushItem.setTotalReaderCount(item.getTotalReaderCount());
101 streamPushItem.setOriginType(item.getOriginType()); 101 streamPushItem.setOriginType(item.getOriginType());
102 streamPushItem.setOriginTypeStr(item.getOriginTypeStr()); 102 streamPushItem.setOriginTypeStr(item.getOriginTypeStr());
103 streamPushItem.setOriginUrl(item.getOriginUrl()); 103 streamPushItem.setOriginUrl(item.getOriginUrl());
104 - streamPushItem.setCreateStamp(item.getCreateStamp()); 104 + streamPushItem.setCreateStamp(item.getCreateStamp() * 1000);
105 streamPushItem.setAliveSecond(item.getAliveSecond()); 105 streamPushItem.setAliveSecond(item.getAliveSecond());
106 streamPushItem.setStatus(true); 106 streamPushItem.setStatus(true);
107 streamPushItem.setStreamType("push"); 107 streamPushItem.setStreamType("push");
@@ -359,6 +359,27 @@ public class StreamPushServiceImpl implements IStreamPushService { @@ -359,6 +359,27 @@ public class StreamPushServiceImpl implements IStreamPushService {
359 } 359 }
360 360
361 @Override 361 @Override
  362 + public void batchAddForUpload(String platformId, String catalogId, List<StreamPushItem> streamPushItems) {
  363 + streamPushMapper.addAll(streamPushItems);
  364 + gbStreamMapper.batchAdd(streamPushItems);
  365 + if (platformId != null) {
  366 + ParentPlatform platform = parentPlatformMapper.getParentPlatByServerGBId(platformId);
  367 + if (platform != null) {
  368 + if (catalogId == null) {
  369 + catalogId = platform.getCatalogId();
  370 + }else {
  371 + PlatformCatalog catalog = platformCatalogMapper.select(catalogId);
  372 + if (catalog == null) {
  373 + return;
  374 + }
  375 + }
  376 + platformGbStreamMapper.batchAdd(platformId, catalogId, streamPushItems);
  377 + eventPublisher.catalogEventPublishForStream(platformId, streamPushItems.toArray(new GbStream[0]), CatalogEvent.ADD);
  378 + }
  379 + }
  380 + }
  381 +
  382 + @Override
362 public boolean batchStop(List<GbStream> gbStreams) { 383 public boolean batchStop(List<GbStream> gbStreams) {
363 if (gbStreams == null || gbStreams.size() == 0) { 384 if (gbStreams == null || gbStreams.size() == 0) {
364 return false; 385 return false;
src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java
@@ -7,10 +7,7 @@ import com.genersoft.iot.vmp.service.IStreamPushService; @@ -7,10 +7,7 @@ import com.genersoft.iot.vmp.service.IStreamPushService;
7 import com.genersoft.iot.vmp.vmanager.bean.StreamPushExcelDto; 7 import com.genersoft.iot.vmp.vmanager.bean.StreamPushExcelDto;
8 import org.springframework.util.StringUtils; 8 import org.springframework.util.StringUtils;
9 9
10 -import java.util.ArrayList;  
11 -import java.util.HashSet;  
12 -import java.util.List;  
13 -import java.util.Set; 10 +import java.util.*;
14 11
15 public class StreamPushUploadFileHandler extends AnalysisEventListener<StreamPushExcelDto> { 12 public class StreamPushUploadFileHandler extends AnalysisEventListener<StreamPushExcelDto> {
16 13
@@ -18,10 +15,13 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus @@ -18,10 +15,13 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus
18 private IStreamPushService pushService; 15 private IStreamPushService pushService;
19 private String defaultMediaServerId; 16 private String defaultMediaServerId;
20 private List<StreamPushItem> streamPushItems = new ArrayList<>(); 17 private List<StreamPushItem> streamPushItems = new ArrayList<>();
  18 + private Map<String, UploadData> streamPushItemsForPlatform = new HashMap<>();
21 private Set<String> streamPushStreamSet = new HashSet<>(); 19 private Set<String> streamPushStreamSet = new HashSet<>();
22 private Set<String> streamPushGBSet = new HashSet<>(); 20 private Set<String> streamPushGBSet = new HashSet<>();
23 private List<String> errorStreamList = new ArrayList<>(); 21 private List<String> errorStreamList = new ArrayList<>();
24 private List<String> errorGBList = new ArrayList<>(); 22 private List<String> errorGBList = new ArrayList<>();
  23 + // 读取数量计数器
  24 + private int loadedSize = 0;
25 25
26 public StreamPushUploadFileHandler(IStreamPushService pushService, String defaultMediaServerId, ErrorDataHandler errorDataHandler) { 26 public StreamPushUploadFileHandler(IStreamPushService pushService, String defaultMediaServerId, ErrorDataHandler errorDataHandler) {
27 this.pushService = pushService; 27 this.pushService = pushService;
@@ -33,6 +33,16 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus @@ -33,6 +33,16 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus
33 void handle(List<String> streams, List<String> gbId); 33 void handle(List<String> streams, List<String> gbId);
34 } 34 }
35 35
  36 + private class UploadData{
  37 + public String platformId;
  38 + public Map<String, List<StreamPushItem>> catalogData = new HashMap<>();
  39 + public List<StreamPushItem> streamPushItems = new ArrayList<>();
  40 +
  41 + public UploadData(String platformId) {
  42 + this.platformId = platformId;
  43 + }
  44 + }
  45 +
36 @Override 46 @Override
37 public void invoke(StreamPushExcelDto streamPushExcelDto, AnalysisContext analysisContext) { 47 public void invoke(StreamPushExcelDto streamPushExcelDto, AnalysisContext analysisContext) {
38 if (StringUtils.isEmpty(streamPushExcelDto.getApp()) 48 if (StringUtils.isEmpty(streamPushExcelDto.getApp())
@@ -43,10 +53,10 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus @@ -43,10 +53,10 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus
43 if (streamPushGBSet.contains(streamPushExcelDto.getGbId())) { 53 if (streamPushGBSet.contains(streamPushExcelDto.getGbId())) {
44 errorGBList.add(streamPushExcelDto.getGbId()); 54 errorGBList.add(streamPushExcelDto.getGbId());
45 } 55 }
46 - if (streamPushStreamSet.contains(streamPushExcelDto.getApp() + streamPushExcelDto.getStream())) { 56 + if (streamPushStreamSet.contains(streamPushExcelDto.getApp() + streamPushExcelDto.getStream() + streamPushExcelDto.getPlatformId())) {
47 errorStreamList.add(streamPushExcelDto.getApp() + "/" + streamPushExcelDto.getStream()); 57 errorStreamList.add(streamPushExcelDto.getApp() + "/" + streamPushExcelDto.getStream());
48 } 58 }
49 - if (streamPushGBSet.contains(streamPushExcelDto.getGbId()) || streamPushStreamSet.contains(streamPushExcelDto.getApp() + streamPushExcelDto.getStream())) { 59 + if (streamPushGBSet.contains(streamPushExcelDto.getGbId()) || streamPushStreamSet.contains(streamPushExcelDto.getApp() + streamPushExcelDto.getStream() + streamPushExcelDto.getPlatformId())) {
50 return; 60 return;
51 } 61 }
52 62
@@ -62,24 +72,69 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus @@ -62,24 +72,69 @@ public class StreamPushUploadFileHandler extends AnalysisEventListener&lt;StreamPus
62 streamPushItem.setOriginType(2); 72 streamPushItem.setOriginType(2);
63 streamPushItem.setOriginTypeStr("rtsp_push"); 73 streamPushItem.setOriginTypeStr("rtsp_push");
64 streamPushItem.setTotalReaderCount("0"); 74 streamPushItem.setTotalReaderCount("0");
65 - streamPushItems.add(streamPushItem); 75 + streamPushItem.setPlatformId(streamPushExcelDto.getPlatformId());
  76 + streamPushItem.setCatalogId(streamPushExcelDto.getCatalogId());
  77 + if (StringUtils.isEmpty(streamPushExcelDto.getPlatformId())) {
  78 + streamPushItems.add(streamPushItem);
  79 + }else {
  80 + UploadData uploadData = streamPushItemsForPlatform.get(streamPushExcelDto.getPlatformId());
  81 + if (uploadData == null) {
  82 + uploadData = new UploadData(streamPushExcelDto.getPlatformId());
  83 + streamPushItemsForPlatform.put(streamPushExcelDto.getPlatformId(), uploadData);
  84 + }
  85 + if (!StringUtils.isEmpty(streamPushExcelDto.getCatalogId())) {
  86 + List<StreamPushItem> streamPushItems = uploadData.catalogData.get(streamPushExcelDto.getCatalogId());
  87 + if (streamPushItems == null) {
  88 + streamPushItems = new ArrayList<>();
  89 + uploadData.catalogData.put(streamPushExcelDto.getCatalogId(), streamPushItems);
  90 + }
  91 + streamPushItems.add(streamPushItem);
  92 + }else {
  93 + uploadData.streamPushItems.add(streamPushItem);
  94 + }
  95 +
  96 + }
  97 +
66 streamPushGBSet.add(streamPushExcelDto.getGbId()); 98 streamPushGBSet.add(streamPushExcelDto.getGbId());
67 streamPushStreamSet.add(streamPushExcelDto.getApp()+streamPushExcelDto.getStream()); 99 streamPushStreamSet.add(streamPushExcelDto.getApp()+streamPushExcelDto.getStream());
68 - if (streamPushItems.size() > 300) {  
69 - pushService.batchAdd(streamPushItems);  
70 - // 存储完成清理 list 100 + loadedSize ++;
  101 + if (loadedSize > 1000) {
  102 + saveData();
71 streamPushItems.clear(); 103 streamPushItems.clear();
  104 + streamPushItemsForPlatform.clear();
  105 + loadedSize = 0;
72 } 106 }
  107 +
73 } 108 }
74 109
75 @Override 110 @Override
76 public void doAfterAllAnalysed(AnalysisContext analysisContext) { 111 public void doAfterAllAnalysed(AnalysisContext analysisContext) {
77 // 这里也要保存数据,确保最后遗留的数据也存储到数据库 112 // 这里也要保存数据,确保最后遗留的数据也存储到数据库
78 - if (streamPushItems.size() > 0) {  
79 - pushService.batchAdd(streamPushItems);  
80 - } 113 + saveData();
81 streamPushGBSet.clear(); 114 streamPushGBSet.clear();
82 streamPushStreamSet.clear(); 115 streamPushStreamSet.clear();
83 errorDataHandler.handle(errorStreamList, errorGBList); 116 errorDataHandler.handle(errorStreamList, errorGBList);
84 } 117 }
  118 +
  119 + private void saveData(){
  120 + if (streamPushItems.size() > 0) {
  121 + pushService.batchAddForUpload(null, null, streamPushItems);
  122 + }
  123 + // 处理已分配到平台的流
  124 + if (streamPushItemsForPlatform.size() > 0){
  125 + for (String platformId : streamPushItemsForPlatform.keySet()) {
  126 + UploadData uploadData = streamPushItemsForPlatform.get(platformId);
  127 + if (uploadData.streamPushItems.size() > 0) {
  128 + pushService.batchAddForUpload(platformId, null, uploadData.streamPushItems);
  129 + }
  130 + if (uploadData.catalogData.size() > 0) {
  131 + for (String catalogId : uploadData.catalogData.keySet()) {
  132 + if (uploadData.catalogData.get(catalogId).size() > 0) {
  133 + pushService.batchAddForUpload(platformId, catalogId, uploadData.catalogData.get(catalogId));
  134 + }
  135 + }
  136 + }
  137 + }
  138 + }
  139 + }
85 } 140 }
src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java
@@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; @@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
5 import com.genersoft.iot.vmp.gb28181.bean.PlatformCatalog; 5 import com.genersoft.iot.vmp.gb28181.bean.PlatformCatalog;
6 import com.genersoft.iot.vmp.gb28181.bean.PlatformGbStream; 6 import com.genersoft.iot.vmp.gb28181.bean.PlatformGbStream;
7 import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; 7 import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
  8 +import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
8 import org.apache.ibatis.annotations.*; 9 import org.apache.ibatis.annotations.*;
9 import org.springframework.stereotype.Repository; 10 import org.springframework.stereotype.Repository;
10 11
@@ -19,6 +20,17 @@ public interface PlatformGbStreamMapper { @@ -19,6 +20,17 @@ public interface PlatformGbStreamMapper {
19 "('${app}', '${stream}', '${platformId}', '${catalogId}')") 20 "('${app}', '${stream}', '${platformId}', '${catalogId}')")
20 int add(PlatformGbStream platformGbStream); 21 int add(PlatformGbStream platformGbStream);
21 22
  23 +
  24 + @Insert("<script> " +
  25 + "REPLACE into platform_gb_stream " +
  26 + "(app, stream, platformId, catalogId) " +
  27 + "values " +
  28 + "<foreach collection='streamPushItems' index='index' item='item' separator=','> " +
  29 + "('${item.app}', '${item.stream}', '${platformId}', '${catalogId}')" +
  30 + "</foreach> " +
  31 + "</script>")
  32 + int batchAdd(String platformId, String catalogId, List<StreamPushItem> streamPushItems);
  33 +
22 @Delete("DELETE FROM platform_gb_stream WHERE app=#{app} AND stream=#{stream}") 34 @Delete("DELETE FROM platform_gb_stream WHERE app=#{app} AND stream=#{stream}")
23 int delByAppAndStream(String app, String stream); 35 int delByAppAndStream(String app, String stream);
24 36
@@ -82,4 +94,7 @@ public interface PlatformGbStreamMapper { @@ -82,4 +94,7 @@ public interface PlatformGbStreamMapper {
82 "</foreach>" + 94 "</foreach>" +
83 "</script>") 95 "</script>")
84 void delByGbStreams(List<GbStream> gbStreams); 96 void delByGbStreams(List<GbStream> gbStreams);
  97 +
  98 +
  99 +
85 } 100 }
src/main/java/com/genersoft/iot/vmp/vmanager/bean/StreamPushExcelDto.java
@@ -16,6 +16,12 @@ public class StreamPushExcelDto { @@ -16,6 +16,12 @@ public class StreamPushExcelDto {
16 @ExcelProperty("国标ID") 16 @ExcelProperty("国标ID")
17 private String gbId; 17 private String gbId;
18 18
  19 + @ExcelProperty("平台ID")
  20 + private String platformId;
  21 +
  22 + @ExcelProperty("目录ID")
  23 + private String catalogId;
  24 +
19 public String getName() { 25 public String getName() {
20 return name; 26 return name;
21 } 27 }
@@ -47,4 +53,21 @@ public class StreamPushExcelDto { @@ -47,4 +53,21 @@ public class StreamPushExcelDto {
47 public void setGbId(String gbId) { 53 public void setGbId(String gbId) {
48 this.gbId = gbId; 54 this.gbId = gbId;
49 } 55 }
  56 +
  57 +
  58 + public String getPlatformId() {
  59 + return platformId;
  60 + }
  61 +
  62 + public void setPlatformId(String platformId) {
  63 + this.platformId = platformId;
  64 + }
  65 +
  66 + public String getCatalogId() {
  67 + return catalogId;
  68 + }
  69 +
  70 + public void setCatalogId(String catalogId) {
  71 + this.catalogId = catalogId;
  72 + }
50 } 73 }
web_src/src/components/PushVideoList.vue
@@ -233,7 +233,7 @@ @@ -233,7 +233,7 @@
233 dateFormat: function(/** timestamp=0 **/) { 233 dateFormat: function(/** timestamp=0 **/) {
234 let ts = arguments[0] || 0; 234 let ts = arguments[0] || 0;
235 let t,y,m,d,h,i,s; 235 let t,y,m,d,h,i,s;
236 - t = ts ? new Date(ts*1000) : new Date(); 236 + t = ts ? new Date(ts) : new Date();
237 y = t.getFullYear(); 237 y = t.getFullYear();
238 m = t.getMonth()+1; 238 m = t.getMonth()+1;
239 d = t.getDate(); 239 d = t.getDate();