Commit 8fc8bf8d by HlQ

[add]

1.升级所有依赖版本
2.IP 库更新
3.添加 m_event_record 分表定时删除
4.查询 agent 绑定的异常服务,只查询当天
5.查询指标记录只查询当天最新一条记录
1 parent 55fb8bf2
......@@ -8,23 +8,23 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.2</version>
<version>3.4.0</version>
</parent>
<artifactId>Vion-DevOps</artifactId>
<version>1</version>
<properties>
<java.version>21</java.version>
<hutool.version>6.0.0-M16</hutool.version>
<redisson.verion>3.32.0</redisson.verion>
<mapstruct-plus.version>1.4.3</mapstruct-plus.version>
<mp.version>3.5.7</mp.version>
<mp-join.version>1.5.1</mp-join.version>
<wx-mp.version>4.6.2.B</wx-mp.version>
<sa-token.verion>1.38.0</sa-token.verion>
<myexcel.version>4.5.2</myexcel.version>
<maxmind.version>4.2.0</maxmind.version>
<mica.mqtt.version>2.3.7</mica.mqtt.version>
<hutool.version>6.0.0-M18</hutool.version>
<redisson.verion>3.40.0</redisson.verion>
<mapstruct-plus.version>1.4.6</mapstruct-plus.version>
<mp.version>3.5.9</mp.version>
<mp-join.version>1.5.2</mp-join.version>
<wx-mp.version>4.6.8.B</wx-mp.version>
<sa-token.verion>1.39.0</sa-token.verion>
<myexcel.version>4.5.6</myexcel.version>
<maxmind.version>4.2.1</maxmind.version>
<mica.mqtt.version>2.4.0-M2</mica.mqtt.version>
</properties>
<dependencies>
......@@ -66,6 +66,11 @@
<version>${mp.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
<version>${mp.version}</version>
</dependency>
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join-boot-starter</artifactId>
<version>${mp-join.version}</version>
......@@ -101,7 +106,7 @@
<version>${maxmind.version}</version>
</dependency>
<dependency>
<groupId>net.dreamlu</groupId>
<groupId>org.dromara.mica-mqtt</groupId>
<artifactId>mica-mqtt-client-spring-boot-starter</artifactId>
<version>${mica.mqtt.version}</version>
</dependency>
......
package vion.config;
import net.dreamlu.iot.mqtt.spring.client.MqttClientCustomizer;
import org.dromara.mica.mqtt.spring.client.MqttClientCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
......
......@@ -8,7 +8,7 @@ public class MqttTopic {
//store agent 服务列表监听
public final static String STORE_SERVICE_TOPIC = "/SA/{}/service/push";
//所有 store agent 统一升级
public final static String STORE_ALL_OTA_TOPIC = "/SA/all/ota";
public final static String STORE_ALL_OTA_TOPIC = "/SA/ota";
//mall agent 事件监听
public final static String MALL_EVENT_TOPIC = "/MA/{}/event/push";
//mall agent 升级监听
......@@ -16,5 +16,5 @@ public class MqttTopic {
//mall agent 服务列表监听
public final static String MALL_SERVICE_TOPIC = "/MA/{}/service/push";
//所有 mall agent 统一升级
public final static String MALL_ALL_OTA_TOPIC = "/MA/all/ota";
public final static String MALL_ALL_OTA_TOPIC = "/MA/ota";
}
package vion.cron.monitor;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.date.TimeUtil;
import org.postgresql.util.PGobject;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* m_event_record 定时删除分表
*/
@Component
@RequiredArgsConstructor
@Slf4j
public class SubTableRunner {
private final JdbcTemplate jdbcTemplate;
@Scheduled(cron = "50 0 0 * * ?")
public void deleteEventRecord() {
log.info("删除m_event_record分表");
var partList = jdbcTemplate.queryForList("select * FROM pathman_partition_list");
List<String> tableNames = new ArrayList<>();
for (Map<String, Object> map : partList) {
var startTime = TimeUtil.parseByISO((String) map.get("range_min"));
if (startTime.isBefore(LocalDateTime.of(LocalDate.now(), LocalTime.MIN).minusDays(30))) {
var o = (PGobject) map.get("partition");
tableNames.add(o.getValue());
}
}
for (String tableName : tableNames) {
jdbcTemplate.execute("drop table " + tableName);
}
log.info("删除m_event_record分表完成");
}
}
......@@ -3,13 +3,13 @@ package vion.event.mqtt;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.dreamlu.iot.mqtt.codec.MqttQoS;
import net.dreamlu.iot.mqtt.spring.client.MqttClientSubscribe;
import net.dreamlu.iot.mqtt.spring.client.MqttClientTemplate;
import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.thread.ThreadUtil;
import org.dromara.mica.mqtt.codec.MqttQoS;
import org.dromara.mica.mqtt.spring.client.MqttClientSubscribe;
import org.dromara.mica.mqtt.spring.client.MqttClientTemplate;
import org.springframework.stereotype.Service;
import vion.constant.MqttMessageType;
import vion.model.monitor.RAgentEvent;
......
......@@ -75,14 +75,14 @@ import java.util.List;
/**
* 事件建立者
*/
@TableField(value = "create_by")
@TableField(value = "create_by", fill = FieldFill.INSERT)
private String createBy;
/**
* 事件更新者
*/
@TableField(value = "udpate_by")
private String udpateBy;
@TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
private String updateBy;
@TableField(value = "create_time", fill = FieldFill.INSERT)
private LocalDateTime createTime;
......@@ -92,4 +92,7 @@ import java.util.List;
@TableField(exist = false)
private List<String> mallUidList;
@TableField(exist = false)
private String description;
}
\ No newline at end of file
......@@ -9,8 +9,6 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.dreamlu.iot.mqtt.codec.MqttQoS;
import net.dreamlu.iot.mqtt.spring.client.MqttClientTemplate;
import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Opt;
......@@ -18,6 +16,8 @@ import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.text.split.SplitUtil;
import org.dromara.hutool.core.util.ObjUtil;
import org.dromara.hutool.core.util.RandomUtil;
import org.dromara.mica.mqtt.codec.MqttQoS;
import org.dromara.mica.mqtt.spring.client.MqttClientTemplate;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -34,7 +34,9 @@ import vion.utils.TopicUtil;
import vion.utils.ip.IPUtil;
import vion.vo.monitor.AgentVO;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -88,6 +90,8 @@ public class AgentServiceImpl extends MPJBaseServiceImpl<AgentMapper, Agent> imp
.selectAs("si", ServiceInfo::getName, ServiceRecord::getName)
.leftJoin(ServiceInfo.class, "si", ServiceInfo::getUid, "t", ServiceRecord::getServiceUid)
.in(ServiceRecord::getAgentUid, agentUidList)
.between(ServiceRecord::getMonitorTime, LocalDateTime.of(LocalDate.now(), LocalTime.MIN),
LocalDateTime.of(LocalDate.now(), LocalTime.MAX))
.orderByDesc(ServiceRecord::getAgentUid, ServiceRecord::getServiceUid, ServiceRecord::getMonitorTime);
var serviceRecordList = serviceRecordService.selectJoinList(ServiceRecord.class, serviceRecordWrapper);
......
......@@ -7,13 +7,13 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.dreamlu.iot.mqtt.codec.MqttQoS;
import net.dreamlu.iot.mqtt.spring.client.MqttClientTemplate;
import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.mica.mqtt.codec.MqttQoS;
import org.dromara.mica.mqtt.spring.client.MqttClientTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import vion.dto.monitor.MallDTO;
......@@ -26,6 +26,8 @@ import vion.utils.TopicUtil;
import vion.vo.monitor.MallVO;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Comparator;
import java.util.List;
import java.util.function.Function;
......@@ -94,7 +96,7 @@ public class MallServiceImpl extends MPJBaseServiceImpl<MallMapper, Mall> implem
.leftJoin(MAccount.class, MAccount::getUid, Mall::getAccountUid)
.leftJoin(Agent.class, Agent::getUid, Mall::getAgentUid)
.eq(Mall::getAttention, 1)
.orderByDesc(Mall::getUid, Mall::getUpdateTime);
.orderByDesc(Mall::getAccountUid, Mall::getName);
var mallVOPage = this.selectJoinListPage(Page.of(dto.getPageNum(), dto.getPageSize()), MallVO.class, wrapper);
Opt.ofEmptyAble(mallVOPage.getRecords())
.ifPresent(r -> {
......@@ -103,7 +105,7 @@ public class MallServiceImpl extends MPJBaseServiceImpl<MallMapper, Mall> implem
var eventRecWrapper = Wrappers.<EventRecord>query()
.select("DISTINCT on (mall_uid,event_type) *")
.in("mall_uid", mallUidList)
.in(CollUtil.isNotEmpty(dto.getEventUidList()), "event_uid", dto.getEventUidList())
.ge("create_time", LocalDateTime.of(LocalDate.now(), LocalTime.MIN))
.orderByDesc("mall_uid", "event_type", "create_time");
var eventRecordList = eventRecordService.list(eventRecWrapper);
var mallUid2RecMap = eventRecordList.stream().collect(Collectors.groupingBy(EventRecord::getMallUid));
......@@ -127,7 +129,7 @@ public class MallServiceImpl extends MPJBaseServiceImpl<MallMapper, Mall> implem
.leftJoin(Agent.class, Agent::getUid, RAgentEvent::getAgentUid)
.in(RAgentEvent::getEventUid, dto.getEventUidList())
.eq(Agent::getType, dto.getAgentType())
.orderByDesc(RAgentEvent::getCreateTime);
.orderByDesc(RAgentEvent::getAccountUid, RAgentEvent::getMallUid);
var agentEventList = agentEventService.selectJoinList(RAgentEvent.class, agentEventWrapper);
if (CollUtil.isEmpty(agentEventList)) {
return new Page<>();
......@@ -150,7 +152,7 @@ public class MallServiceImpl extends MPJBaseServiceImpl<MallMapper, Mall> implem
var eventRecWrapper = Wrappers.<EventRecord>query()
.select("DISTINCT on (mall_uid,event_type) *")
.in("mall_uid", tmpMallUidList)
.ge("create_time", TimeUtil.beginOfDay(LocalDate.now().minusDays(3)))
.ge("create_time", LocalDateTime.of(LocalDate.now(), LocalTime.MIN))
.orderByDesc("mall_uid", "event_type", "create_time");
var eventRecordList = eventRecordService.list(eventRecWrapper);
var mallUid2RecMap = eventRecordList.stream().collect(Collectors.groupingBy(EventRecord::getMallUid));
......@@ -158,7 +160,11 @@ public class MallServiceImpl extends MPJBaseServiceImpl<MallMapper, Mall> implem
var remarkList = mallRemarkService.lambdaQuery().in(RMallRemark::getMallUid, mallUidList).list();
var mallUid2RemarkMap = remarkList.stream().sorted(Comparator.comparing(RMallRemark::getRemarkDate).reversed().thenComparing(Comparator.comparing(RMallRemark::getCreateTime).reversed())).collect(Collectors.toMap(RMallRemark::getMallUid, Function.identity(), (r1, r2) -> r1));
var tmpAgentEventList = agentEventService.lambdaQuery().in(RAgentEvent::getMallUid, mallUidList).list();
var tmpWrapper = new MPJLambdaWrapper<RAgentEvent>()
.selectAs(Event::getDescription, RAgentEvent::getDescription)
.leftJoin(Event.class, Event::getUid, RAgentEvent::getEventUid)
.in(RAgentEvent::getMallUid, mallUidList);
var tmpAgentEventList = agentEventService.selectJoinList(RAgentEvent.class, tmpWrapper);
var mallUid2AgentEventMap = tmpAgentEventList.stream().collect(Collectors.groupingBy(RAgentEvent::getMallUid));
r.forEach(tmp -> {
......@@ -175,7 +181,7 @@ public class MallServiceImpl extends MPJBaseServiceImpl<MallMapper, Mall> implem
public Page<MallVO> listErrorAttention(MallDTO dto) {
var eventRecWrapper = Wrappers.<EventRecord>query()
.select("DISTINCT on (mall_uid,event_type) *")
.gt("create_time", TimeUtil.beginOfDay(LocalDate.now().minusDays(3)))
.ge("create_time", LocalDateTime.of(LocalDate.now(), LocalTime.MIN))
.eq("agent_type", dto.getAgentType())
.eq("status", 0)
.in(CollUtil.isNotEmpty(dto.getEventUidList()), "event_uid", dto.getEventUidList())
......
......@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.yulichang.base.MPJBaseServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.dreamlu.iot.mqtt.codec.MqttQoS;
import net.dreamlu.iot.mqtt.spring.client.MqttClientTemplate;
import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil;
import org.dromara.mica.mqtt.codec.MqttQoS;
import org.dromara.mica.mqtt.spring.client.MqttClientTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import vion.mapper.monitor.MallMapper;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!