宣城汇聚redis过期监听修改以及新添device_name
parent
13f517251b
commit
13f78c74b0
|
|
@ -70,6 +70,8 @@ public class RemoteDeviceVo implements Serializable {
|
||||||
|
|
||||||
private String cardNum;
|
private String cardNum;
|
||||||
|
|
||||||
|
private String deviceName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 0无效,1有效
|
* 0无效,1有效
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ public class RedisExpireListener extends KeyExpirationEventMessageListener {
|
||||||
public void onMessage(Message message, byte[] pattern) {
|
public void onMessage(Message message, byte[] pattern) {
|
||||||
String expireKey = message.toString();
|
String expireKey = message.toString();
|
||||||
if(StringUtils.isNotEmpty(expireKey) &&
|
if(StringUtils.isNotEmpty(expireKey) &&
|
||||||
expireKey.startsWith(RedisConstants.ORG_CODE_PRE)){
|
expireKey.startsWith(RedisConstants.ONLINE_USERS_TEN)){
|
||||||
handleExpiredEvent(expireKey);
|
handleExpiredEvent(expireKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,9 @@ package org.dromara.data2es.handler;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUnit;
|
import cn.hutool.core.date.DateUnit;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONPObject;
|
import com.alibaba.fastjson.JSONPObject;
|
||||||
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||||
import com.alibaba.fastjson2.util.JSONObject1O;
|
import com.alibaba.fastjson2.util.JSONObject1O;
|
||||||
import jodd.util.StringUtil;
|
import jodd.util.StringUtil;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
@ -74,7 +74,8 @@ public class RequestHandler {
|
||||||
//kafkaProducer.send(esGpsInfo, ConfigConstants.KAFKA_TOPIC_SEND_PRE+"."+ infoSource);
|
//kafkaProducer.send(esGpsInfo, ConfigConstants.KAFKA_TOPIC_SEND_PRE+"."+ infoSource);
|
||||||
//todo 2023年3月30日 cpu过载暂时隐藏
|
//todo 2023年3月30日 cpu过载暂时隐藏
|
||||||
|
|
||||||
kafkaTemplate.send(ConfigConstants.KAFKA_TOPIC_SEND_PRE+"."+deviceType, JSON.toJSONString(esGpsInfoVO2));
|
kafkaTemplate.send(ConfigConstants.KAFKA_TOPIC_SEND_PRE+"."+deviceType,
|
||||||
|
JSON.toJSONString(esGpsInfoVO2, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty));
|
||||||
//kafkaProducer.send(esGpsInfoVO2, ConfigConstants.KAFKA_TOPIC_SEND_PRE+"."+deviceType);
|
//kafkaProducer.send(esGpsInfoVO2, ConfigConstants.KAFKA_TOPIC_SEND_PRE+"."+deviceType);
|
||||||
//地市的kafka数据,如接收地市某个设备的数据可以对接此kafka topic
|
//地市的kafka数据,如接收地市某个设备的数据可以对接此kafka topic
|
||||||
//todo 暂时隐藏
|
//todo 暂时隐藏
|
||||||
|
|
@ -144,7 +145,7 @@ public class RequestHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
Date gpsTime = esGpsInfoVo2.getGpsTime();
|
Date gpsTime = esGpsInfoVo2.getGpsTime();
|
||||||
String jsonValue = JSONUtil.toJsonStr(esGpsInfoVo2);
|
String jsonValue = JSON.toJSONString(esGpsInfoVo2, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty);
|
||||||
if(!Objects.isNull(gpsTime)){
|
if(!Objects.isNull(gpsTime)){
|
||||||
|
|
||||||
//设置永不过期,便于前端查询设备的最后位置 ----2022年9月15日
|
//设置永不过期,便于前端查询设备的最后位置 ----2022年9月15日
|
||||||
|
|
@ -174,23 +175,6 @@ public class RequestHandler {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//方便根据组织机构计算数量
|
|
||||||
|
|
||||||
String zzjgdm = esGpsInfoVo2.getZzjgdm();
|
|
||||||
if(esGpsInfoVo2.getOnline() == 1) {
|
|
||||||
if(StringUtils.isNotBlank(zzjgdm)) {
|
|
||||||
RedisUtils.set(RedisConstants.ORG_CODE_ONLINE_DEVICES + esGpsInfoVo2.getDeviceType() + ":"
|
|
||||||
+ zzjgdm + ":" + esGpsInfoVo2.getDeviceCode(), jsonValue, RedisConstants.REDIS_NEVER_EXPIRE);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}else{
|
|
||||||
if(StringUtils.isNotBlank(zzjgdm)) {
|
|
||||||
//如果是离线的情况,那么就清除这个在线的
|
|
||||||
RedisUtils.del(RedisConstants.ORG_CODE_ONLINE_DEVICES + esGpsInfoVo2.getDeviceType() + ":"
|
|
||||||
+ zzjgdm + ":" + esGpsInfoVo2.getDeviceCode());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -204,7 +188,7 @@ public class RequestHandler {
|
||||||
@Async
|
@Async
|
||||||
public void redisOnlineUserByPerson(EsGpsInfo esGpsInfo){
|
public void redisOnlineUserByPerson(EsGpsInfo esGpsInfo){
|
||||||
EsGpsInfoVO3 esGpsInfoVO3 = (EsGpsInfoVO3) esGpsInfo;
|
EsGpsInfoVO3 esGpsInfoVO3 = (EsGpsInfoVO3) esGpsInfo;
|
||||||
String jsonValue = JSONUtil.toJsonStr(esGpsInfoVO3);
|
String jsonValue = JSON.toJSONString(esGpsInfoVO3, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty);
|
||||||
Date gpsTime = esGpsInfoVO3.getGpsTime();
|
Date gpsTime = esGpsInfoVO3.getGpsTime();
|
||||||
if(!Objects.isNull(gpsTime)){
|
if(!Objects.isNull(gpsTime)){
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package org.dromara.data2es.service.impl;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.date.DateUnit;
|
import cn.hutool.core.date.DateUnit;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -197,13 +199,16 @@ public class StoreDataServiceImpl implements StoreDataService {
|
||||||
if (null == qinwu){
|
if (null == qinwu){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Object obj = RedisUtils.getBucket(RedisConstants.ONLINE_USERS + "9:" + qinwu.getImei());
|
JSONObject obj = RedisUtils.getBucket(RedisConstants.ONLINE_USERS + "9:" + qinwu.getImei());
|
||||||
if (null == obj){
|
if (null == obj || JSONUtil.isNull(obj)){
|
||||||
return false;
|
return false;
|
||||||
}else {
|
}else {
|
||||||
// 如需按照gps最新时间来判断 可在这添加逻辑
|
// 如需按照gps最新时间来判断 可在这添加逻辑
|
||||||
|
|
||||||
EsGpsInfoVO3 esGpsInfoVO3 = BeanUtil.toBean(obj.toString(),EsGpsInfoVO3.class);
|
EsGpsInfoVO3 esGpsInfoVO3 = BeanUtil.toBean(obj.toString(),EsGpsInfoVO3.class);
|
||||||
|
if (null == esGpsInfoVO3.getGpsTime()){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (DateUtil.between(new Date(),esGpsInfoVO3.getGpsTime(), DateUnit.SECOND)>120){
|
if (DateUtil.between(new Date(),esGpsInfoVO3.getGpsTime(), DateUnit.SECOND)>120){
|
||||||
return false;
|
return false;
|
||||||
}else {
|
}else {
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@ public class TDeviceServiceImpl implements ITDeviceService {
|
||||||
public List<TDeviceVo> queryList(TDeviceBo bo) {
|
public List<TDeviceVo> queryList(TDeviceBo bo) {
|
||||||
LambdaQueryWrapper<TDevice> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<TDevice> lqw = buildQueryWrapper(bo);
|
||||||
List<TDeviceVo> list = baseMapper.selectVoList(lqw);
|
List<TDeviceVo> list = baseMapper.selectVoList(lqw);
|
||||||
for (TDeviceVo vo : list) {
|
/*for (TDeviceVo vo : list) {
|
||||||
if ("".equals(vo.getPoliceName()) || null == vo.getPoliceName()){
|
if ("".equals(vo.getPoliceName()) || null == vo.getPoliceName()){
|
||||||
vo.setDeviceName(vo.getCarNum());
|
vo.setDeviceName(vo.getCarNum());
|
||||||
}
|
}
|
||||||
|
|
@ -125,7 +125,7 @@ public class TDeviceServiceImpl implements ITDeviceService {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}*/
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -210,7 +210,9 @@ public class TDeviceServiceImpl implements ITDeviceService {
|
||||||
lqw.in(null != bo.getZzjgdms() && bo.getZzjgdms().length>0,TDevice::getZzjgdm,bo.getZzjgdms());
|
lqw.in(null != bo.getZzjgdms() && bo.getZzjgdms().length>0,TDevice::getZzjgdm,bo.getZzjgdms());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getZzjgmc()), TDevice::getZzjgmc, bo.getZzjgmc());
|
lqw.eq(StringUtils.isNotBlank(bo.getZzjgmc()), TDevice::getZzjgmc, bo.getZzjgmc());
|
||||||
lqw.and(StringUtils.isNotBlank(bo.getPoliceName()),wrapper -> wrapper.like(TDevice::getPoliceNo, bo.getPoliceName())
|
lqw.and(StringUtils.isNotBlank(bo.getPoliceName()),wrapper -> wrapper.like(TDevice::getPoliceNo, bo.getPoliceName())
|
||||||
.or().like(TDevice::getPoliceName, bo.getPoliceName()).or().like(TDevice::getCarNum, bo.getPoliceName()));
|
.or().like(TDevice::getPoliceName, bo.getPoliceName())
|
||||||
|
.or().like(TDevice::getCarNum, bo.getPoliceName())
|
||||||
|
.or().like(TDevice::getDeviceName, bo.getPoliceName()));
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getPhoneNum()), TDevice::getPhoneNum, bo.getPhoneNum());
|
lqw.eq(StringUtils.isNotBlank(bo.getPhoneNum()), TDevice::getPhoneNum, bo.getPhoneNum());
|
||||||
lqw.eq(bo.getValid() != null, TDevice::getValid, bo.getValid());
|
lqw.eq(bo.getValid() != null, TDevice::getValid, bo.getValid());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getRemark1()), TDevice::getRemark1, bo.getRemark1());
|
lqw.eq(StringUtils.isNotBlank(bo.getRemark1()), TDevice::getRemark1, bo.getRemark1());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue