Commit 55fb8bf2 by HlQ

[add] 升级包添加 content 字段

[chg] 关注的项目查询优化
1 parent 3d032fa0
......@@ -55,6 +55,12 @@ public class Upgrade extends BaseDTO {
private String sha256;
/**
* 更新内容
*/
@TableField(value = "content")
private String content;
/**
* 备注
*/
@TableField(value = "remark")
......
......@@ -10,12 +10,14 @@ 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.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import vion.dto.monitor.MallDTO;
import vion.mapper.monitor.AgentMapper;
import vion.mapper.monitor.MallMapper;
import vion.model.monitor.*;
import vion.service.monitor.*;
......@@ -23,6 +25,7 @@ import vion.utils.JsonUtil;
import vion.utils.TopicUtil;
import vion.vo.monitor.MallVO;
import java.time.LocalDate;
import java.util.Comparator;
import java.util.List;
import java.util.function.Function;
......@@ -41,6 +44,7 @@ public class MallServiceImpl extends MPJBaseServiceImpl<MallMapper, Mall> implem
private final IEventRecordService eventRecordService;
private final IRAgentEventService agentEventService;
private final IRMallRemarkService mallRemarkService;
private final AgentMapper agentMapper;
private final MqttClientTemplate client;
private final Converter converter;
......@@ -146,6 +150,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)))
.orderByDesc("mall_uid", "event_type", "create_time");
var eventRecordList = eventRecordService.list(eventRecWrapper);
var mallUid2RecMap = eventRecordList.stream().collect(Collectors.groupingBy(EventRecord::getMallUid));
......@@ -170,11 +175,13 @@ 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)))
.eq("agent_type", dto.getAgentType())
.eq("status", 0)
.in(CollUtil.isNotEmpty(dto.getEventUidList()), "event_uid", dto.getEventUidList())
.orderByDesc("mall_uid", "event_type", "create_time");
var eventRecordList = eventRecordService.list(eventRecWrapper);
var mallUidList = eventRecordList.stream().filter(r -> r.getStatus() == 0).map(EventRecord::getMallUid).toList();
var mallUidList = eventRecordList.stream().map(EventRecord::getMallUid).toList();
if (CollUtil.isEmpty(mallUidList)) {
return new Page<>();
}
......@@ -184,19 +191,21 @@ public class MallServiceImpl extends MPJBaseServiceImpl<MallMapper, Mall> implem
var wrapper = new MPJLambdaWrapper<>(converter.convert(dto, Mall.class))
.selectAll(Mall.class)
.selectAs(MAccount::getName, MallVO::getAccountName)
.selectAs(Agent::getHostname, MallVO::getHostname)
.leftJoin(MAccount.class, MAccount::getUid, Mall::getAccountUid)
.leftJoin(Agent.class, Agent::getUid, Mall::getAgentUid)
.in(Mall::getUid, mallUidList)
.orderByDesc(Mall::getUid, Mall::getUpdateTime);
var mallVOPage = this.selectJoinListPage(Page.of(dto.getPageNum(), dto.getPageSize()), MallVO.class, wrapper);
Opt.ofEmptyAble(mallVOPage.getRecords())
.ifPresent(r -> {
var tmpMallUidList = r.stream().map(MallVO::getUid).toList();
var agentUidSet = r.stream().map(MallVO::getAgentUid).collect(Collectors.toSet());
var agentList = agentMapper.selectList(Wrappers.<Agent>lambdaQuery().in(Agent::getUid, agentUidSet));
var uid2AgentMap = agentList.stream().collect(Collectors.toMap(Agent::getUid, Function.identity()));
var tmpWrapper = Wrappers.<EventRecord>query()
.select("DISTINCT on (mall_uid,event_type) *")
.in("mall_uid", tmpMallUidList)
.ge("create_time", TimeUtil.beginOfDay(LocalDate.now().minusDays(3)))
.orderByDesc("mall_uid", "event_type", "create_time");
var tmpEventRecordList = eventRecordService.list(tmpWrapper);
var tmpMallUid2RecMap = tmpEventRecordList.stream().collect(Collectors.groupingBy(EventRecord::getMallUid));
......@@ -208,6 +217,7 @@ public class MallServiceImpl extends MPJBaseServiceImpl<MallMapper, Mall> implem
tmp.setEventRecordList(tmpMallUid2RecMap.getOrDefault(tmp.getUid(), List.of()));
tmp.setAgentEventList(mallUid2AgentEventMap.getOrDefault(tmp.getUid(), List.of()));
tmp.setMallRemark(mallUid2RemarkMap.get(tmp.getUid()));
tmp.setHostname(uid2AgentMap.getOrDefault(tmp.getAgentUid(), new Agent()).getHostname());
});
});
return mallVOPage;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!