From 2e60339e0a9db9548d4523399c87ec02cd1fb625 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 25 一月 2022 12:20:52 +0800
Subject: [PATCH] 修复候选通道查询bug

---
 src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java       |    2 +
 src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java      |    4 +-
 src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java             |   15 -------
 src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java |   18 ++++++++
 src/main/java/com/genersoft/iot/vmp/gb28181/bean/GbStream.java                    |   13 ++++++
 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java            |    1 
 src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java |    2 
 src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java              |   12 +++---
 src/main/resources/wvp.sqlite                                                     |    0 
 web_src/src/components/dialog/chooseChannelForCatalog.vue                         |   10 ++++
 src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java         |    2 
 src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java   |    1 
 12 files changed, 54 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/GbStream.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/GbStream.java
index a1ce8ca..37e636b 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/GbStream.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/GbStream.java
@@ -14,6 +14,10 @@
     private double latitude;
     private String streamType;
     private boolean status;
+    /**
+     * GMT unix绯荤粺鏃堕棿鎴筹紝鍗曚綅绉�
+     */
+    public Long createStamp;
 
     public String getApp() {
         return app;
@@ -86,4 +90,13 @@
     public void setMediaServerId(String mediaServerId) {
         this.mediaServerId = mediaServerId;
     }
+
+
+    public Long getCreateStamp() {
+        return createStamp;
+    }
+
+    public void setCreateStamp(Long createStamp) {
+        this.createStamp = createStamp;
+    }
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
index a6c30cf..a15e01a 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
@@ -138,6 +138,7 @@
             if (gbStreamMapper.selectOne(transform.getApp(), transform.getStream()) != null) {
                 gbStreamMapper.update(transform);
             }else {
+                transform.setCreateStamp(System.currentTimeMillis());
                 gbStreamMapper.add(transform);
             }
         }
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java
index 73e162a..d3c9b1b 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java
@@ -57,11 +57,6 @@
     private String originUrl;
 
     /**
-     * GMT unix绯荤粺鏃堕棿鎴筹紝鍗曚綅绉�
-     */
-    private Long createStamp;
-
-    /**
      * 瀛樻椿鏃堕棿锛屽崟浣嶇
      */
     private Long aliveSecond;
@@ -92,7 +87,7 @@
 
     @Override
     public int compareTo(@NotNull StreamPushItem streamPushItem) {
-        return Long.valueOf(this.createStamp - streamPushItem.getCreateStamp().intValue()).intValue();
+        return Long.valueOf(super.createStamp - streamPushItem.getCreateStamp().intValue()).intValue();
     }
 
     public static class MediaSchema {
@@ -180,14 +175,6 @@
 
     public void setOriginUrl(String originUrl) {
         this.originUrl = originUrl;
-    }
-
-    public Long getCreateStamp() {
-        return createStamp;
-    }
-
-    public void setCreateStamp(Long createStamp) {
-        this.createStamp = createStamp;
     }
 
     public Long getAliveSecond() {
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
index 79e0b7a..ee7a80b 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
@@ -117,7 +117,7 @@
         try {
             List<DeviceChannel> deviceChannelList = new ArrayList<>();
             for (GbStream gbStream : gbStreams) {
-                platformGbStreamMapper.delByAppAndStream(gbStream.getApp(), gbStream.getStream());
+                platformGbStreamMapper.delByAppAndStreamAndPlatform(gbStream.getApp(), gbStream.getStream(), platformId);
                 DeviceChannel deviceChannel = new DeviceChannel();
                 deviceChannel.setChannelId(gbStream.getGbId());
                 deviceChannelList.add(deviceChannel);
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
index ebfa124..d3d3249 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
@@ -125,6 +125,7 @@
     public boolean saveToGB(GbStream stream) {
         stream.setStreamType("push");
         stream.setStatus(true);
+        stream.setCreateStamp(System.currentTimeMillis());
         int add = gbStreamMapper.add(stream);
 
         // 鏌ユ壘寮�鍚簡鍏ㄩ儴鐩存挱娴佸叡浜殑涓婄骇骞冲彴
@@ -305,6 +306,7 @@
             streamPushItem.setStreamType("push");
             streamPushItem.setStatus(true);
             streamPushItem.setGbId("34020000004111" + gbId);
+            streamPushItem.setCreateStamp(System.currentTimeMillis());
             gbId ++;
         }
         int  limitCount = 30;
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java
index 16924df..586b5b4 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushUploadFileHandler.java
@@ -56,7 +56,7 @@
         streamPushItem.setGbId(streamPushExcelDto.getGbId());
         streamPushItem.setStatus(false);
         streamPushItem.setStreamType("push");
-        streamPushItem.setCreateStamp(System.currentTimeMillis()/1000);
+        streamPushItem.setCreateStamp(System.currentTimeMillis());
         streamPushItem.setMediaServerId(defaultMediaServerId);
         streamPushItem.setName(streamPushExcelDto.getName());
         streamPushItem.setOriginType(2);
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
index ce6ac9e..fade54b 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
@@ -15,10 +15,10 @@
 public interface GbStreamMapper {
 
     @Insert("REPLACE INTO gb_stream (app, stream, gbId, name, " +
-            "longitude, latitude, streamType, mediaServerId, status) VALUES" +
+            "longitude, latitude, streamType, mediaServerId, status, createStamp) VALUES" +
             "('${app}', '${stream}', '${gbId}', '${name}', " +
             "'${longitude}', '${latitude}', '${streamType}', " +
-            "'${mediaServerId}', ${status})")
+            "'${mediaServerId}', ${status}, ${createStamp})")
     int add(GbStream gbStream);
 
     @Update("UPDATE gb_stream " +
@@ -38,8 +38,8 @@
     int del(String app, String stream);
 
     @Select("SELECT gs.*, pgs.platformId AS platformId, pgs.catalogId AS catalogId FROM gb_stream gs " +
-            "LEFT JOIN  platform_gb_stream pgs ON gs.app = pgs.app AND gs.stream = pgs.stream " +
-            "WHERE pgs.platformId is null OR pgs.platformId = #{platformId}")
+            "LEFT JOIN  platform_gb_stream pgs ON gs.app = pgs.app AND gs.stream = pgs.stream AND (pgs.platformId = #{platformId} OR pgs.platformId is null)" +
+            "order by gs.id asc ")
     List<GbStream> selectAll(String platformId);
 
     @Select("SELECT * FROM gb_stream WHERE app=#{app} AND stream=#{stream}")
@@ -87,12 +87,12 @@
     @Insert("<script> " +
             "REPLACE into gb_stream " +
             "(app, stream, gbId, name, " +
-            "longitude, latitude, streamType, mediaServerId, status)" +
+            "longitude, latitude, streamType, mediaServerId, status, createStamp)" +
             "values " +
             "<foreach collection='subList' index='index' item='item' separator=','> " +
             "('${item.app}', '${item.stream}', '${item.gbId}', '${item.name}', " +
             "'${item.longitude}', '${item.latitude}', '${item.streamType}', " +
-            "'${item.mediaServerId}', ${item.status}) "+
+            "'${item.mediaServerId}', ${item.status}, ${item.createStamp}) "+
             "</foreach> " +
             "</script>")
     void batchAdd(List<StreamPushItem> subList);
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java
index a07e68e..a9f8510 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java
@@ -73,6 +73,6 @@
             "</script> ")
     List<ParentPlatform> queryPlatFormListForGBWithGBId(String app, String stream, List<String> platforms);
 
-    @Select("SELECT * FROM platform_gb_stream WHERE app=#{app} AND stream=#{stream} AND platformId=#{platformId}")
-    int delByAppAndStreamAndPlatform(String app, String streamId, String platformId);
+    @Delete("DELETE FROM platform_gb_stream WHERE app=#{app} AND stream=#{stream} AND platformId=#{platformId}")
+    int delByAppAndStreamAndPlatform(String app, String stream, String platformId);
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
index dc4d497..98f3594 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
@@ -679,6 +679,7 @@
 		streamProxyItem.setStatus(true);
 		String now = this.format.format(System.currentTimeMillis());
 		streamProxyItem.setCreateTime(now);
+		streamProxyItem.setCreateStamp(System.currentTimeMillis());
 		try {
 			if (gbStreamMapper.add(streamProxyItem)<0 || streamProxyMapper.add(streamProxyItem) < 0) {
 				//浜嬪姟鍥炴粴
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 c0fafd3..9111844 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
@@ -118,7 +118,6 @@
     @ResponseBody
     public DeferredResult<ResponseEntity<WVPResult<Object>>> uploadChannelFile(@RequestParam(value = "file") MultipartFile file){
 
-
         // 鏈�澶氬鐞嗘枃浠朵竴涓皬鏃�
         DeferredResult<ResponseEntity<WVPResult<Object>>> result = new DeferredResult<>(60*60*1000L);
         // 褰曞儚鏌ヨ浠hannelId浣滀负deviceId鏌ヨ
@@ -133,6 +132,23 @@
             result.setResult(ResponseEntity.status(HttpStatus.BAD_REQUEST).body(wvpResult));
             return result;
         }
+        if (file.getContentType() == null) {
+            WVPResult<Object> wvpResult = new WVPResult<>();
+            wvpResult.setCode(-1);
+            wvpResult.setMsg("鏃犳硶璇嗗埆鏂囦欢绫诲瀷");
+            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("閫氶亾瀵煎叆鏂囦欢绫诲瀷閿欒");
+            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湪鎵ц");
diff --git a/src/main/resources/wvp.sqlite b/src/main/resources/wvp.sqlite
index 37eefca..b317a62 100644
--- a/src/main/resources/wvp.sqlite
+++ b/src/main/resources/wvp.sqlite
Binary files differ
diff --git a/web_src/src/components/dialog/chooseChannelForCatalog.vue b/web_src/src/components/dialog/chooseChannelForCatalog.vue
index 08e180a..5133caa 100644
--- a/web_src/src/components/dialog/chooseChannelForCatalog.vue
+++ b/web_src/src/components/dialog/chooseChannelForCatalog.vue
@@ -239,7 +239,15 @@
                   disabled: node.level === 1,
                   divided: true,
                   onClick: () => {
-                    this.removeCatalog(data.id, node)
+                    this.$confirm('纭畾鍒犻櫎?', '鎻愮ず', {
+                      confirmButtonText: '纭畾',
+                      cancelButtonText: '鍙栨秷',
+                      type: 'warning'
+                    }).then(() => {
+                      this.removeCatalog(data.id, node)
+                    }).catch(() => {
+
+                    });
                   }
                 },
                 {

--
Gitblit v1.8.0