From 42a2772d1aa7493bcc4fac3e24ee8eda4eebc23d Mon Sep 17 00:00:00 2001
From: xubinbin <1323875150@qq.com>
Date: 星期二, 12 十二月 2023 17:09:04 +0800
Subject: [PATCH] bugfix:请求头带token, SecurityUtils 获取用户id 一直为0 #1195

---
 src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java |   96 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 71 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java
old mode 100644
new mode 100755
index da38cb0..f363f66
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java
@@ -2,11 +2,13 @@
 
 import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
+import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
 import com.genersoft.iot.vmp.gb28181.bean.PlatformCatalog;
 import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
 
@@ -20,57 +22,101 @@
      * 鏌ヨ鍒楄〃閲屽凡缁忓叧鑱旂殑
      */
     @Select("<script> "+
-            "SELECT deviceAndChannelId FROM platform_gb_channel WHERE platformId='${platformId}' AND deviceAndChannelId in" +
-            "<foreach collection='deviceAndChannelIds' open='(' item='id_' separator=',' close=')'> '${id_}'</foreach> ORDER BY deviceAndChannelId ASC" +
+            "SELECT device_channel_id from wvp_platform_gb_channel WHERE platform_id=#{platformId} AND device_channel_id in" +
+            "<foreach collection='channelReduces' open='(' item='item' separator=',' close=')'> #{item.id}</foreach>" +
             "</script>")
-    List<String> findChannelRelatedPlatform(String platformId, List<String> deviceAndChannelIds);
+    List<Integer> findChannelRelatedPlatform(@Param("platformId") String platformId, @Param("channelReduces") List<ChannelReduce> channelReduces);
 
     @Insert("<script> "+
-            "INSERT INTO platform_gb_channel (channelId, deviceId, platformId, deviceAndChannelId, catalogId) VALUES" +
+            "INSERT INTO wvp_platform_gb_channel (platform_id, device_channel_id, catalog_id) VALUES" +
             "<foreach collection='channelReducesToAdd'  item='item' separator=','>" +
-            " ('${item.channelId}','${item.deviceId}', '${platformId}', '${item.deviceId}_${item.channelId}' , '${item.catalogId}' )" +
+            " (#{platformId}, #{item.id} , #{item.catalogId} )" +
             "</foreach>" +
             "</script>")
-    int addChannels(String platformId, List<ChannelReduce> channelReducesToAdd);
-
+    int addChannels(@Param("platformId") String platformId, @Param("channelReducesToAdd") List<ChannelReduce> channelReducesToAdd);
 
     @Delete("<script> "+
-            "DELETE FROM platform_gb_channel WHERE platformId='${platformId}' AND deviceAndChannelId in" +
-            "<foreach collection='channelReducesToDel'  item='item'  open='(' separator=',' close=')' > '${item.deviceId}_${item.channelId}'</foreach>" +
+            "DELETE from wvp_platform_gb_channel WHERE platform_id=#{platformId} AND device_channel_id in" +
+            "<foreach collection='channelReducesToDel'  item='item'  open='(' separator=',' close=')' > #{item.id}</foreach>" +
             "</script>")
-    int delChannelForGB(String platformId, List<ChannelReduce> channelReducesToDel);
+    int delChannelForGB(@Param("platformId") String platformId, @Param("channelReducesToDel") List<ChannelReduce> channelReducesToDel);
 
     @Delete("<script> "+
-            "DELETE FROM platform_gb_channel WHERE deviceId='${deviceId}' " +
+            "DELETE from wvp_platform_gb_channel WHERE device_channel_id in " +
+            "( select  temp.device_channel_id from " +
+            "(select pgc.device_channel_id from wvp_platform_gb_channel pgc " +
+            "left join wvp_device_channel dc on dc.id = pgc.device_channel_id where dc.device_id  =#{deviceId} " +
+            ") temp)" +
             "</script>")
     int delChannelForDeviceId(String deviceId);
 
     @Delete("<script> "+
-            "DELETE FROM platform_gb_channel WHERE platformId='${platformId}'"  +
+            "DELETE from wvp_platform_gb_channel WHERE platform_id=#{platformId}"  +
             "</script>")
     int cleanChannelForGB(String platformId);
 
+    @Select("SELECT dc.* from wvp_platform_gb_channel pgc left join wvp_device_channel dc on dc.id = pgc.device_channel_id WHERE dc.channel_id=#{channelId} and pgc.platform_id=#{platformId}")
+    List<DeviceChannel> queryChannelInParentPlatform(@Param("platformId") String platformId, @Param("channelId") String channelId);
 
-    @Select("SELECT * FROM device_channel WHERE deviceId = (SELECT deviceId FROM platform_gb_channel WHERE " +
-            "platformId='${platformId}' AND channelId='${channelId}' ) AND channelId='${channelId}'")
-    DeviceChannel queryChannelInParentPlatform(String platformId, String channelId);
+    @Select("SELECT dc.* from wvp_platform_gb_channel pgc left join wvp_device_channel dc on dc.id = pgc.device_channel_id WHERE pgc.platform_id=#{platformId} and pgc.catalog_id=#{catalogId}")
+    List<DeviceChannel> queryAllChannelInCatalog(@Param("platformId") String platformId, @Param("catalogId") String catalogId);
 
+    @Select(" select dc.channel_id as id, dc.name as name, pgc.platform_id as platform_id, pgc.catalog_id as parent_id, 0 as children_count, 1 as type " +
+            " from wvp_device_channel dc left join wvp_platform_gb_channel pgc on dc.id = pgc.device_channel_id " +
+            " where pgc.platform_id=#{platformId} and pgc.catalog_id=#{catalogId}")
+    List<PlatformCatalog> queryChannelInParentPlatformAndCatalog(@Param("platformId") String platformId, @Param("catalogId") String catalogId);
 
-    @Select("select dc.channelId as id, dc.name as name, pgc.platformId as platformId, pgc.catalogId as parentId, 0 as childrenCount, 1 as type " +
-            "from device_channel dc left join platform_gb_channel pgc on dc.deviceId = pgc.deviceId and dc.channelId = pgc.channelId " +
-            "where pgc.platformId=#{platformId} and pgc.catalogId=#{catalogId}")
-    List<PlatformCatalog> queryChannelInParentPlatformAndCatalog(String platformId, String catalogId);
-
-    @Select("SELECT * FROM device WHERE deviceId = (SELECT deviceId FROM platform_gb_channel WHERE platformId='${platformId}' AND channelId='${channelId}')")
-    Device queryVideoDeviceByPlatformIdAndChannelId(String platformId, String channelId);
+    @Select("select d.*\n" +
+            "from wvp_platform_gb_channel pgc\n" +
+            "         left join wvp_device_channel dc on dc.id = pgc.device_channel_id\n" +
+            "         left join wvp_device d on dc.device_id = d.device_id\n" +
+            "where dc.channel_id = #{channelId} and pgc.platform_id=#{platformId}")
+    List<Device> queryVideoDeviceByPlatformIdAndChannelId(@Param("platformId") String platformId, @Param("channelId") String channelId);
 
     @Delete("<script> "+
-            "DELETE FROM platform_gb_channel WHERE catalogId=#{id}"  +
+            "DELETE from wvp_platform_gb_channel WHERE platform_id=#{platformId} and catalog_id=#{id}"  +
             "</script>")
-    int delByCatalogId(String id);
+    int delByCatalogId(@Param("platformId") String platformId, @Param("id") String id);
 
     @Delete("<script> "+
-           "DELETE FROM platform_gb_channel WHERE catalogId=#{parentId} AND platformId=#{platformId} AND channelId=#{id}"  +
+           "DELETE from wvp_platform_gb_channel  WHERE catalog_id=#{parentId} AND platform_id=#{platformId} AND channel_id=#{id}"  +
            "</script>")
     int delByCatalogIdAndChannelIdAndPlatformId(PlatformCatalog platformCatalog);
+
+    @Select("<script> " +
+            "SELECT " +
+            "pp.* " +
+            "FROM " +
+            "wvp_platform pp " +
+            "left join wvp_platform_gb_channel pgc on " +
+            "pp.server_gb_id = pgc.platform_id " +
+            "left join wvp_device_channel dc on " +
+            "dc.id = pgc.device_channel_id " +
+            "WHERE " +
+            "dc.channel_id = #{channelId} and pp.status = true " +
+            "AND pp.server_gb_id IN" +
+            "<foreach collection='platforms' item='item'  open='(' separator=',' close=')' > #{item}</foreach>" +
+            "</script> ")
+    List<ParentPlatform> queryPlatFormListForGBWithGBId(@Param("channelId") String channelId, @Param("platforms") List<String> platforms);
+
+    @Delete("<script> " +
+           "DELETE from wvp_platform_gb_channel WHERE platform_id=#{serverGBId}"  +
+           "</script>")
+    void delByPlatformId(String serverGBId);
+
+    @Delete("<script> " +
+            "DELETE from wvp_platform_gb_channel WHERE platform_id=#{platformId} " +
+            " <if test=\"catalogId != null\" >  and catalog_id=#{catalogId}</if>" +
+            "</script>")
+    int delChannelForGBByCatalogId(@Param("platformId") String platformId, @Param("catalogId") String catalogId);
+
+    @Select("select dc.channel_id dc.device_id,dc.name,d.manufacturer,d.model,d.firmware\n" +
+            "from wvp_platform_gb_channel pgc\n" +
+            "         left join wvp_device_channel dc on dc.id = pgc.device_channel_id\n" +
+            "         left join wvp_device d on dc.device_id = d.device_id\n" +
+            "where dc.channel_id = #{channelId} and pgc.platform_id=#{platformId}")
+    List<Device> queryDeviceInfoByPlatformIdAndChannelId(@Param("platformId") String platformId, @Param("channelId") String channelId);
+
+    @Select("SELECT pgc.platform_id from wvp_platform_gb_channel pgc left join wvp_device_channel dc on dc.id = pgc.device_channel_id WHERE dc.channel_id='${channelId}'")
+    List<String> queryParentPlatformByChannelId(String channelId);
 }

--
Gitblit v1.8.0