|
|
@@ -34,9 +34,12 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.Calendar;
|
|
|
+import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
@@ -208,16 +211,35 @@ public class AdServiceImpl implements AdService {
|
|
|
//查询今日的 按小时 按广告平台分组数据
|
|
|
List<AgentAdGroupStaticsVO> vos = new ArrayList<>();
|
|
|
// 需要查询各 app 今日的广告记录 然后在内存中按照 广告平台分组 计算平均ecpm值, 并且设置每小时的
|
|
|
- List<YtDyzAdRecord> records = new ArrayList<>();
|
|
|
- List<YtDyzAdRecord> dyzRecords = adRecordMapper.getTodayRecord(appIds,1);
|
|
|
- if(CollUtil.isNotEmpty(dyzRecords)){records.addAll(dyzRecords);}
|
|
|
+ List<YtDyzAdRecord> records;
|
|
|
//昨日所有
|
|
|
- List<YtDyzAdRecord> yestRecords = new ArrayList<>();
|
|
|
- List<YtDyzAdRecord> dyzYestRecords = adRecordMapper.getTodayRecord(appIds,2);
|
|
|
- if(CollUtil.isNotEmpty(dyzYestRecords)){yestRecords.addAll(dyzYestRecords);}
|
|
|
+ List<YtDyzAdRecord> yestRecords;
|
|
|
//本月所有
|
|
|
List<YtDyzAdRecord> monthRecords = new ArrayList<>();
|
|
|
- List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,3);
|
|
|
+
|
|
|
+ Calendar cal = Calendar.getInstance(); // 获取当前日期时间
|
|
|
+ cal.add(Calendar.MONTH,0);
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ //获取到本月起始日
|
|
|
+ int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
|
|
|
+ //获取到本月结束日
|
|
|
+ int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
|
|
|
+ cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMinimum,00,00,00);
|
|
|
+ String firstDay = sdf.format(cal.getTime());
|
|
|
+ cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),actualMaximum,23,59,59);
|
|
|
+ String lastDay = sdf.format(cal.getTime());
|
|
|
+ List<YtDyzAdRecord> dyzMonthRecords = adRecordMapper.getTodayRecord(appIds,firstDay,lastDay);
|
|
|
+
|
|
|
+ if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
|
|
|
+ records = monthRecords.stream().filter(
|
|
|
+ s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),new Date())).collect(Collectors.toList());
|
|
|
+
|
|
|
+ cal = Calendar.getInstance();
|
|
|
+ cal.add(Calendar.DATE, -1); // 昨天的日期时间
|
|
|
+ Date yest = cal.getTime();
|
|
|
+ yestRecords = monthRecords.stream().filter(
|
|
|
+ s->DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()),yest)).collect(Collectors.toList());
|
|
|
+
|
|
|
if(CollUtil.isNotEmpty(dyzMonthRecords)){monthRecords.addAll(dyzMonthRecords);}
|
|
|
//广告平台分组
|
|
|
Map<String, List<YtDyzAdRecord>> networkMap = records.stream().collect(
|