在线人数代码更优雅,去除繁琐的判定和无效的代码

This commit is contained in:
Chopper 2021-11-08 10:45:40 +08:00
parent f216957cb4
commit 65f6cf3b54

View File

@ -28,7 +28,7 @@ public class OnlineMemberStatistics implements EveryHourExecute {
* 缓存 * 缓存
*/ */
@Autowired @Autowired
private Cache cache; private Cache<List<OnlineMemberVO>> cache;
/** /**
* 统计小时 * 统计小时
*/ */
@ -41,12 +41,10 @@ public class OnlineMemberStatistics implements EveryHourExecute {
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
Object object = cache.get(CachePrefix.ONLINE_MEMBER.getPrefix()); List<OnlineMemberVO> onlineMemberVOS = cache.get(CachePrefix.ONLINE_MEMBER.getPrefix());
List<OnlineMemberVO> onlineMemberVOS;
if (object == null) { if (onlineMemberVOS == null) {
onlineMemberVOS = new ArrayList<>(); onlineMemberVOS = new ArrayList<>();
} else {
onlineMemberVOS = (List<OnlineMemberVO>) object;
} }
//过滤 有效统计时间 //过滤 有效统计时间
@ -80,12 +78,10 @@ public class OnlineMemberStatistics implements EveryHourExecute {
*/ */
public void execute(Date time, Integer num) { public void execute(Date time, Integer num) {
Object object = cache.get(CachePrefix.ONLINE_MEMBER.getPrefix()); List<OnlineMemberVO> onlineMemberVOS = cache.get(CachePrefix.ONLINE_MEMBER.getPrefix());
List<OnlineMemberVO> onlineMemberVOS;
if (object == null) { if (onlineMemberVOS == null) {
onlineMemberVOS = new ArrayList<>(); onlineMemberVOS = new ArrayList<>();
} else {
onlineMemberVOS = (List<OnlineMemberVO>) object;
} }
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
@ -96,9 +92,8 @@ public class OnlineMemberStatistics implements EveryHourExecute {
calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - 48); calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - 48);
Calendar finalCalendar = calendar;
onlineMemberVOS = onlineMemberVOS.stream() onlineMemberVOS = onlineMemberVOS.stream()
.filter(onlineMemberVO -> onlineMemberVO.getDate().after(finalCalendar.getTime())) .filter(onlineMemberVO -> onlineMemberVO.getDate().after(calendar.getTime()))
.collect(Collectors.toList()); .collect(Collectors.toList());
onlineMemberVOS.add(new OnlineMemberVO(time, num)); onlineMemberVOS.add(new OnlineMemberVO(time, num));