From 5d901b5e3f033e8b04e53420d68626cbd87431c8 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 06 五月 2022 10:12:34 +0800
Subject: [PATCH] 使用阿里代码规范。规范代码写法

---
 src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java |  103 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 97 insertions(+), 6 deletions(-)

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 5002d29..a7a5528 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
@@ -1,7 +1,14 @@
 package com.genersoft.iot.vmp.service.impl;
 
+import com.genersoft.iot.vmp.conf.SipConfig;
+import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
 import com.genersoft.iot.vmp.gb28181.bean.GbStream;
+import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
+import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
+import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
+import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
 import com.genersoft.iot.vmp.storager.dao.GbStreamMapper;
+import com.genersoft.iot.vmp.storager.dao.ParentPlatformMapper;
 import com.genersoft.iot.vmp.storager.dao.PlatformGbStreamMapper;
 import com.genersoft.iot.vmp.service.IGbStreamService;
 import com.github.pagehelper.PageHelper;
@@ -13,7 +20,9 @@
 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;
 
 @Service
@@ -33,10 +42,19 @@
     @Autowired
     private PlatformGbStreamMapper platformGbStreamMapper;
 
+    @Autowired
+    private ParentPlatformMapper platformMapper;
+
+    @Autowired
+    private SipConfig sipConfig;
+
+    @Autowired
+    private EventPublisher eventPublisher;
+
     @Override
-    public PageInfo<GbStream> getAll(Integer page, Integer count) {
+    public PageInfo<GbStream> getAll(Integer page, Integer count, String platFormId, String catalogId, String query, Boolean pushing, String mediaServerId) {
         PageHelper.startPage(page, count);
-        List<GbStream> all = gbStreamMapper.selectAll();
+        List<GbStream> all = gbStreamMapper.selectAll(platFormId, catalogId, query, pushing, mediaServerId);
         return new PageInfo<>(all);
     }
 
@@ -47,34 +65,74 @@
 
 
     @Override
-    public boolean addPlatformInfo(List<GbStream> gbStreams, String platformId) {
+    public boolean addPlatformInfo(List<GbStream> gbStreams, String platformId, String catalogId) {
         // 鏀惧湪浜嬪姟鍐呮墽琛�
         boolean result = false;
         TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
+        ParentPlatform parentPlatform = platformMapper.getParentPlatByServerGBId(platformId);
+        if (catalogId == null) {
+            catalogId = parentPlatform.getCatalogId();
+        }
         try {
+            List<DeviceChannel> deviceChannelList = new ArrayList<>();
             for (GbStream gbStream : gbStreams) {
+                gbStream.setCatalogId(catalogId);
                 gbStream.setPlatformId(platformId);
+                // TODO 淇敼涓烘壒閲忔彁浜�
                 platformGbStreamMapper.add(gbStream);
+                DeviceChannel deviceChannelListByStream = getDeviceChannelListByStream(gbStream, catalogId, parentPlatform);
+                deviceChannelList.add(deviceChannelListByStream);
             }
             dataSourceTransactionManager.commit(transactionStatus);     //鎵嬪姩鎻愪氦
+            eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.ADD);
             result = true;
         }catch (Exception e) {
             logger.error("鎵归噺淇濆瓨娴佷笌骞冲彴鐨勫叧绯绘椂閿欒", e);
             dataSourceTransactionManager.rollback(transactionStatus);
         }
         return result;
-
     }
 
     @Override
-    public boolean delPlatformInfo(List<GbStream> gbStreams) {
+    public DeviceChannel getDeviceChannelListByStream(GbStream gbStream, String catalogId, ParentPlatform platform) {
+        DeviceChannel deviceChannel = new DeviceChannel();
+        deviceChannel.setChannelId(gbStream.getGbId());
+        deviceChannel.setName(gbStream.getName());
+        deviceChannel.setLongitude(gbStream.getLongitude());
+        deviceChannel.setLatitude(gbStream.getLatitude());
+        deviceChannel.setDeviceId(platform.getDeviceGBId());
+        deviceChannel.setManufacture("wvp-pro");
+//        deviceChannel.setStatus(gbStream.isStatus()?1:0);
+        deviceChannel.setStatus(1);
+        deviceChannel.setParentId(catalogId ==null?gbStream.getCatalogId():catalogId);
+        deviceChannel.setRegisterWay(1);
+        if (catalogId.length() <= 10) { // 鐖惰妭鐐规槸琛屾斂鍖哄垝,鍒欒缃瓹ivilCode浣跨敤姝よ鏀垮尯鍒�
+            deviceChannel.setCivilCode(catalogId);
+        }else {
+            deviceChannel.setCivilCode(platform.getAdministrativeDivision());
+        }
+        deviceChannel.setModel("live");
+        deviceChannel.setOwner("wvp-pro");
+        deviceChannel.setParental(0);
+        deviceChannel.setSecrecy("0");
+        return deviceChannel;
+    }
+
+    @Override
+    public boolean delPlatformInfo(String platformId, List<GbStream> gbStreams) {
         // 鏀惧湪浜嬪姟鍐呮墽琛�
         boolean result = false;
         TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
         try {
+            List<DeviceChannel> deviceChannelList = new ArrayList<>();
+            platformGbStreamMapper.delByAppAndStreamsByPlatformId(gbStreams, platformId);
             for (GbStream gbStream : gbStreams) {
-                platformGbStreamMapper.delByAppAndStream(gbStream.getApp(), gbStream.getStream());
+                DeviceChannel deviceChannel = new DeviceChannel();
+                deviceChannel.setChannelId(gbStream.getGbId());
+                deviceChannelList.add(deviceChannel);
             }
+
+            eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.DEL);
             dataSourceTransactionManager.commit(transactionStatus);     //鎵嬪姩鎻愪氦
             result = true;
         }catch (Exception e) {
@@ -83,4 +141,37 @@
         }
         return result;
     }
+
+    @Override
+    public void sendCatalogMsg(GbStream gbStream, String type) {
+        List<GbStream> gbStreams = new ArrayList<>();
+        if (gbStream.getGbId() != null) {
+            gbStreams.add(gbStream);
+        }else {
+            StreamProxyItem streamProxyItem = gbStreamMapper.selectOne(gbStream.getApp(), gbStream.getStream());
+            if (streamProxyItem != null && streamProxyItem.getGbId() != null){
+                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) {
+                        if (parentPlatform != null) {
+                            eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), gs, type);
+                        }
+                    }
+                }
+            }
+        }
+    }
 }

--
Gitblit v1.8.0