lin
2022-01-07 458e7d18b77f0f47be2969491b42de9b6d8b27f0
添加接收redis订阅的GPS消息,为GPS订阅发送到级联平台做准备
6个文件已修改
2个文件已添加
14611 ■■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/common/VideoManagerConstants.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/conf/RedisConfig.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/service/bean/GPSMsgInfo.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/service/impl/RedisGPSMsgListener.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_src/package-lock.json 14471 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_src/package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/common/VideoManagerConstants.java
@@ -60,7 +60,9 @@
    //************************** redis 消息*********************************
    public static final String WVP_MSG_STREAM_CHANGE_PREFIX = "WVP_MSG_STREAM_CHANGE_";
    public static final String WVP_MSG_GPS_PREFIX = "WVP_MSG_GPS_";
    //**************************    第三方  ****************************************
    public static final String WVP_STREAM_GB_ID_PREFIX = "memberNo_";
    public static final String WVP_STREAM_GPS_MSG_PREFIX = "WVP_STREAM_GPS_MSG_";
}
src/main/java/com/genersoft/iot/vmp/conf/RedisConfig.java
@@ -1,12 +1,16 @@
package com.genersoft.iot.vmp.conf;
import com.genersoft.iot.vmp.common.VideoManagerConstants;
import com.genersoft.iot.vmp.service.impl.RedisGPSMsgListener;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.listener.PatternTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@@ -40,6 +44,9 @@
    private int poolMaxIdle;
    @Value("${spring.redis.poolMaxWait:5}")
    private int poolMaxWait;
    @Autowired
    private RedisGPSMsgListener redisGPSMsgListener;
    @Bean
    public JedisPool jedisPool() {
@@ -85,6 +92,7 @@
        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        container.addMessageListener(redisGPSMsgListener, new PatternTopic(VideoManagerConstants.WVP_MSG_GPS_PREFIX));
        return container;
    }
src/main/java/com/genersoft/iot/vmp/service/bean/GPSMsgInfo.java
New file
@@ -0,0 +1,96 @@
package com.genersoft.iot.vmp.service.bean;
public class GPSMsgInfo {
    /**
     *
     */
    private String id;
    /**
     * 经度 (必选)
     */
    private double lng;
    /**
     * 纬度 (必选)
     */
    private double lat;
    /**
     * 速度,单位:km/h (可选)
     */
    private double speed;
    /**
     * 产生通知时间,
     */
    private String time;
    /**
     * 方向,取值为当前摄像头方向与正北方的顺时针夹角,取值范围0°~360°,单位:(°)(可选)
     */
    private String direction;
    /**
     * 海拔高度,单位:m(可选)
     */
    private String altitude;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public double getLng() {
        return lng;
    }
    public void setLng(double lng) {
        this.lng = lng;
    }
    public double getLat() {
        return lat;
    }
    public void setLat(double lat) {
        this.lat = lat;
    }
    public double getSpeed() {
        return speed;
    }
    public void setSpeed(double speed) {
        this.speed = speed;
    }
    public String getTime() {
        return time;
    }
    public void setTime(String time) {
        this.time = time;
    }
    public String getDirection() {
        return direction;
    }
    public void setDirection(String direction) {
        this.direction = direction;
    }
    public String getAltitude() {
        return altitude;
    }
    public void setAltitude(String altitude) {
        this.altitude = altitude;
    }
}
src/main/java/com/genersoft/iot/vmp/service/impl/RedisGPSMsgListener.java
New file
@@ -0,0 +1,22 @@
package com.genersoft.iot.vmp.service.impl;
import com.alibaba.fastjson.JSON;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;
import org.springframework.stereotype.Component;
@Component
public class RedisGPSMsgListener implements MessageListener {
    @Autowired
    private IRedisCatchStorage redisCatchStorage;
    @Override
    public void onMessage(Message message, byte[] bytes) {
        GPSMsgInfo gpsMsgInfo = JSON.parseObject(message.getBody(), GPSMsgInfo.class);
        redisCatchStorage.updateGpsMsgInfo(gpsMsgInfo);
    }
}
src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
@@ -7,6 +7,7 @@
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatformCatch;
import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.service.bean.ThirdPartyGB;
import java.util.List;
@@ -193,4 +194,6 @@
    Device getDevice(String deviceId);
    void resetAllCSEQ();
    void updateGpsMsgInfo(GPSMsgInfo gpsMsgInfo);
}
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
@@ -6,6 +6,7 @@
import com.genersoft.iot.vmp.conf.UserSetup;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.service.bean.ThirdPartyGB;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper;
@@ -426,4 +427,10 @@
        String key = VideoManagerConstants.DEVICE_PREFIX + userSetup.getServerId() + "_" + deviceId;
        return (Device)redis.get(key);
    }
    @Override
    public void updateGpsMsgInfo(GPSMsgInfo gpsMsgInfo) {
        String key = VideoManagerConstants.WVP_STREAM_GPS_MSG_PREFIX + userSetup.getServerId() + "_" + gpsMsgInfo.getId();
        redis.set(key, gpsMsgInfo);
    }
}
web_src/package-lock.json
Diff too large
web_src/package.json
@@ -10,7 +10,7 @@
    "build": "node build/build.js"
  },
  "dependencies": {
    "axios": "^0.19.2",
    "axios": "^0.24.0",
    "core-js": "^2.6.5",
    "echarts": "^4.9.0",
    "element-ui": "^2.15.1",