|
@@ -1,8 +1,8 @@
|
|
|
package com.fs.course.service.impl;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
-import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -126,12 +126,8 @@ public class FsUserWatchCourseStatisticsServiceImpl extends ServiceImpl<FsUserWa
|
|
|
Map<String, FsUserWatchCourseStatistics> watchLogMap = watchLog.stream().collect(Collectors.toMap(k -> String.format("%s-%s-%s", k.getPeriodId(), k.getVideoId(), k.getCompanyUserId()), v -> v));
|
|
|
Map<String, FsUserWatchCourseStatistics> redPacketLogMap = redPacketLog.stream().collect(Collectors.toMap(k -> String.format("%s-%s-%s", k.getPeriodId(), k.getVideoId(), k.getCompanyUserId()), v -> v));
|
|
|
Map<String, FsUserWatchCourseStatistics> answerLogMap = answerLog.stream().collect(Collectors.toMap(k -> String.format("%s-%s-%s", k.getPeriodId(), k.getVideoId(), k.getCompanyUserId()), v -> v));
|
|
|
- Map<Long, FsUserWatchCourseStatistics> userTotalMap = userTotal.stream()
|
|
|
- .collect(Collectors.toMap(
|
|
|
- FsUserWatchCourseStatistics::getCompanyUserId,
|
|
|
- Function.identity()
|
|
|
- ));
|
|
|
-
|
|
|
+ Map<Long, List<FsUserWatchCourseStatistics>> userTotalMap = userTotal.stream()
|
|
|
+ .collect(Collectors.groupingBy(FsUserWatchCourseStatistics::getCompanyUserId));
|
|
|
|
|
|
// 处理数据
|
|
|
List<FsUserWatchCourseStatistics> list = new ArrayList<>();
|
|
@@ -141,13 +137,20 @@ public class FsUserWatchCourseStatisticsServiceImpl extends ServiceImpl<FsUserWa
|
|
|
FsUserWatchCourseStatistics watchLogData = watchLogMap.get(key);
|
|
|
FsUserWatchCourseStatistics redPacketLogData = redPacketLogMap.get(key);
|
|
|
FsUserWatchCourseStatistics answerLogData = answerLogMap.get(key);
|
|
|
- FsUserWatchCourseStatistics userTotalData = userTotalMap.get(data.getCompanyUserId());
|
|
|
+ List<FsUserWatchCourseStatistics> userTotalDataList = userTotalMap.get(data.getCompanyUserId());
|
|
|
BeanUtils.copyProperties(data, vo);
|
|
|
|
|
|
// 单独一个一个set,不用copy,避免copy出来的结果被前面的覆盖
|
|
|
- if(userTotalData != null){
|
|
|
- vo.setUserNum(userTotalData.getUserNum());
|
|
|
- vo.setNewUserNum(userTotalData.getNewUserNum());
|
|
|
+ if(userTotalDataList != null && !userTotalDataList.isEmpty()){
|
|
|
+ // 获取过滤时间后的销售会员数量
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
|
|
+
|
|
|
+ int userNum = userTotalDataList.stream()
|
|
|
+ .filter(v -> v.getUserCreateDate().before(data.getCourseStartDateTime())).mapToInt(FsUserWatchCourseStatistics::getUserNum).sum();
|
|
|
+ int newUserNum = userTotalDataList.stream()
|
|
|
+ .filter(v -> sdf.format(v.getUserCreateDate()).equals(sdf.format(data.getCourseStartDateTime()))).mapToInt(FsUserWatchCourseStatistics::getUserNum).sum();
|
|
|
+ vo.setUserNum(userNum);
|
|
|
+ vo.setNewUserNum(newUserNum);
|
|
|
} else {
|
|
|
vo.setUserNum(0);
|
|
|
vo.setNewUserNum(0);
|