|
@@ -283,6 +283,8 @@ public class DataCountService {
|
|
|
endTime = Dateutils.formatEndTime(endTime);
|
|
|
|
|
|
Page<UserMsgVo> page = roomDanmakuService.pageList(new Page<>(pageNum,pageSize) ,roomIds,startTime,endTime);
|
|
|
+ Set<String> roomIdsVo = page.getRecords().stream().map(UserMsgVo::getRoomId).collect(Collectors.toSet());
|
|
|
+ HashMap<String, Room> roomHashMap = roomService.getByIds(roomIdsDb);
|
|
|
|
|
|
HashMap<String,List<RoomVisitLog>> roomVisitLogsMap = new HashMap<>();
|
|
|
HashMap<String,List<RoomDanmaku>> danmakusMap = new HashMap<>();
|
|
@@ -297,7 +299,12 @@ public class DataCountService {
|
|
|
Date firstOutTime = null;
|
|
|
Date endOutTime = null;
|
|
|
for (RoomVisitLog roomVisitLog : roomVisitLogs) {
|
|
|
- if(roomVisitLog.getOutRoomTime() == null || roomVisitLog.getInRoomTime() == null){
|
|
|
+ Room room = roomHashMap.get(roomVisitLog.getRoomId());
|
|
|
+ if(room == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Date outRoomTime = roomVisitLog.getOutRoomTime() == null ? room.getUseEndTime() : roomVisitLog.getOutRoomTime();
|
|
|
+ if(outRoomTime == null || roomVisitLog.getInRoomTime() == null){
|
|
|
continue;
|
|
|
}
|
|
|
if(firstOutTime == null){
|
|
@@ -306,11 +313,11 @@ public class DataCountService {
|
|
|
firstOutTime = firstOutTime.getTime() <= roomVisitLog.getInRoomTime().getTime() ? firstOutTime : roomVisitLog.getInRoomTime();
|
|
|
}
|
|
|
if(endOutTime == null){
|
|
|
- endOutTime = roomVisitLog.getOutRoomTime();
|
|
|
+ endOutTime = outRoomTime;
|
|
|
}else {
|
|
|
- endOutTime = endOutTime.getTime() >= roomVisitLog.getOutRoomTime().getTime() ? endOutTime : roomVisitLog.getOutRoomTime();
|
|
|
+ endOutTime = endOutTime.getTime() >= outRoomTime.getTime() ? endOutTime : outRoomTime;
|
|
|
}
|
|
|
- time += (roomVisitLog.getOutRoomTime().getTime() - roomVisitLog.getInRoomTime().getTime());
|
|
|
+ time += (outRoomTime.getTime() - roomVisitLog.getInRoomTime().getTime());
|
|
|
}
|
|
|
List<RoomDanmaku> danmakus = danmakusMap.get(record.getRoomId()+record.getWxUserId());
|
|
|
if(danmakus == null){
|