panlinlin
2021-01-07 9bf87971e7dc6e0bccc0cf9a2301e9c89f9a0ba6
完成向上级联->启动时自动注册
4个文件已修改
1个文件已添加
82 ■■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/conf/SipPlatformRunner.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/conf/SipPlatformRunner.java
New file
@@ -0,0 +1,55 @@
package com.genersoft.iot.vmp.conf;
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatformCatch;
import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * 系统启动时控制上级平台重新注册
 */
@Component
@Order(value=3)
public class SipPlatformRunner implements CommandLineRunner {
    @Autowired
    private IVideoManagerStorager storager;
    @Autowired
    private IRedisCatchStorage redisCatchStorage;
    @Autowired
    private EventPublisher publisher;
    @Override
    public void run(String... args) throws Exception {
        // 设置所有平台离线
        storager.outlineForAllParentPlatform();
        List<ParentPlatform> parentPlatforms = storager.queryEnableParentPlatformList(true);
        for (ParentPlatform parentPlatform : parentPlatforms) {
            redisCatchStorage.updatePlatformRegister(parentPlatform);
            redisCatchStorage.updatePlatformKeepalive(parentPlatform);
            ParentPlatformCatch parentPlatformCatch = new ParentPlatformCatch();
            parentPlatformCatch.setParentPlatform(parentPlatform);
            parentPlatformCatch.setId(parentPlatform.getDeviceGBId());
            redisCatchStorage.updatePlatformCatchInfo(parentPlatformCatch);
            // 发送平台未注册消息
            publisher.platformNotRegisterEventPublish(parentPlatform.getDeviceGBId());
        }
    }
}
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
@@ -169,9 +169,20 @@
    PageInfo<ParentPlatform> queryParentPlatformList(int page, int count);
    /**
     * 获取所有已启用的平台
     * @return
     */
    List<ParentPlatform> queryEnableParentPlatformList(boolean enable);
    /**
     * 获取上级平台
     * @param platformGbId
     * @return
     */
    ParentPlatform queryParentPlatById(String platformGbId);
    /**
     * 所有平台离线
     */
    void outlineForAllParentPlatform();
}
src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java
@@ -49,6 +49,12 @@
    @Select("SELECT * FROM parent_platform")
    List<ParentPlatform> getParentPlatformList();
    @Select("SELECT * FROM parent_platform WHERE enable=#{enable}")
    List<ParentPlatform> getEnableParentPlatformList(boolean enable);
    @Select("SELECT * FROM parent_platform WHERE deviceGBId=#{platformGbId}")
    ParentPlatform getParentPlatById(String platformGbId);
    @Update("UPDATE parent_platform SET status=false" )
    void outlineForAllParentPlatform();
}
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
@@ -33,6 +33,7 @@
    @Autowired
    private ParentPlatformMapper platformMapper;
    @Autowired
    private IRedisCatchStorage redisCatchStorage;
@@ -252,5 +253,13 @@
        return platformMapper.getParentPlatById(platformGbId);
    }
    @Override
    public List<ParentPlatform> queryEnableParentPlatformList(boolean enable) {
        return platformMapper.getEnableParentPlatformList(enable);
    }
    @Override
    public void outlineForAllParentPlatform() {
        platformMapper.outlineForAllParentPlatform();
    }
}
src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java
@@ -25,6 +25,7 @@
    @Autowired
    private IVideoManagerStorager storager;
    @Autowired
    private IRedisCatchStorage redisCatchStorage;