|
|
|
@ -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<String, Object> queryNumByTags(DmpMonitorNumDto dmpMonitorNumDto) {
|
|
|
|
|
HashMap<String, Object> map = new HashMap<>();
|
|
|
|
|
List<DmpMonitorJpaDto> mapData = getMapData(dmpMonitorNumDto, 1);
|
|
|
|
|
HashMap<String, DmpMonitorJpaDto> numMapGroupByTag = new HashMap<>(8);
|
|
|
|
|
HashMap<String, List<DmpMonitorJpaDto>> numMapGroupByTag = new HashMap<>(8);
|
|
|
|
|
for (DmpMonitorJpaDto info : mapData) {
|
|
|
|
|
numMapGroupByTag.put(info.getTag(), info);
|
|
|
|
|
List<DmpMonitorJpaDto> list = new ArrayList<>();
|
|
|
|
|
if (numMapGroupByTag.containsKey(info.getTag())) {
|
|
|
|
|
List<DmpMonitorJpaDto> list1 = numMapGroupByTag.get(info.getTag());
|
|
|
|
|
list1.add(info);
|
|
|
|
|
numMapGroupByTag.put(info.getTag(), list1);
|
|
|
|
|
} else {
|
|
|
|
|
List<DmpMonitorJpaDto> 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<HashMap<String, Object>> getGroupByTime(Date beginTime, Date endTime, DmpMonitorJpaDto dto) {
|
|
|
|
|
private List<HashMap<String, Object>> getGroupByTime(Date beginTime, Date endTime, List<DmpMonitorJpaDto> dto) {
|
|
|
|
|
List<HashMap<String, Object>> list = new ArrayList<>();
|
|
|
|
|
int betweenDay = (int) DateUtil.between(beginTime, endTime, DateUnit.DAY);
|
|
|
|
|
for (int i = 0; i <= betweenDay; i++) {
|
|
|
|
|
HashMap<String, Object> map = new HashMap<>(16);
|
|
|
|
|
HashMap<String, Object> 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<DmpMonitorJpaDto> 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;
|
|
|
|
|
}
|
|
|
|
|