From a82846ebd175a4bd4ce6b129ba79fdc2a8ed9171 Mon Sep 17 00:00:00 2001 From: wujingtao Date: Thu, 10 Mar 2022 11:57:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3sql=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DmpMonitorNumServiceImpl.java | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java index dac7140..6c8fbf6 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/DmpMonitorNumServiceImpl.java @@ -3,8 +3,6 @@ package com.baiyee.adcallback.service.impl; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.StrPool; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import com.baiyee.adcallback.api.constants.SqlConstant; import com.baiyee.adcallback.api.dto.DmpMonitorJpaDto; import com.baiyee.adcallback.api.dto.DmpMonitorNumDto; @@ -39,13 +37,22 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { public Map queryNumByTags(DmpMonitorNumDto dmpMonitorNumDto) { HashMap map = new HashMap<>(); List mapData = getMapData(dmpMonitorNumDto, 1); - HashMap numMapGroupByTag = new HashMap<>(8); + HashMap> numMapGroupByTag = new HashMap<>(8); for (DmpMonitorJpaDto info : mapData) { - numMapGroupByTag.put(info.getTag(), info); + List list = new ArrayList<>(); + if (numMapGroupByTag.containsKey(info.getTag())) { + List list1 = numMapGroupByTag.get(info.getTag()); + list1.add(info); + numMapGroupByTag.put(info.getTag(), list1); + } else { + List list1 = new ArrayList<>(); + list1.add(info); + numMapGroupByTag.put(info.getTag(), list1); + } } for (String key : dmpMonitorNumDto.getTags()) { if (!numMapGroupByTag.containsKey(key)) { - numMapGroupByTag.put(key, new DmpMonitorJpaDto()); + numMapGroupByTag.put(key, new ArrayList<>()); } } for (String key : numMapGroupByTag.keySet()) { @@ -121,25 +128,28 @@ public class DmpMonitorNumServiceImpl implements DmpMonitorNumService { } //按时间分组 - private List> getGroupByTime(Date beginTime, Date endTime, DmpMonitorJpaDto dto) { + private List> getGroupByTime(Date beginTime, Date endTime, List dto) { List> list = new ArrayList<>(); int betweenDay = (int) DateUtil.between(beginTime, endTime, DateUnit.DAY); for (int i = 0; i <= betweenDay; i++) { - HashMap map = new HashMap<>(16); + HashMap map = new HashMap<>(); Date dateTime = DateUtil.offsetDay(beginTime, i); - if (ObjectUtil.isNull(dto) || StrUtil.isBlank(dto.getTag())) { - map.put("date", dateTime); - map.put("num", 0); - } else { - if (betweenByDay(dateTime, DateUtil.parseDate(dto.getGmtCreate()))) { - map.put("num", dto.getNum()); + if (dto.size() > 0) { + List collect = dto.stream().filter(c -> betweenByDay(dateTime, DateUtil.parseDate(c.getGmtCreate()))).collect(Collectors.toList()); + if (collect.size() > 0) { + DmpMonitorJpaDto dmpMonitorJpaDto = collect.get(0); map.put("date", dateTime); + map.put("num", dmpMonitorJpaDto.getNum()); } else { - map.put("num", 0); map.put("date", dateTime); + map.put("num", 0); } + list.add(map); + } else { + map.put("date", dateTime); + map.put("num", 0); + list.add(map); } - list.add(map); } return list; }