|
@@ -232,32 +232,14 @@ public class DataCountService {
|
|
|
});
|
|
|
}
|
|
|
List<RoomVisitLog> roomLives = roomVisitLogService.getByRoomId(record.getRoomId());
|
|
|
- Long minute = 0L;
|
|
|
- HashMap<Long,Long> dateMap = new HashMap<>();
|
|
|
- for (RoomVisitLog roomLive : roomLives) {
|
|
|
- Date overTime = roomLive.getOutRoomTime();
|
|
|
- if(overTime == null){
|
|
|
- continue;
|
|
|
- }
|
|
|
- if(dateMap.get(overTime.getTime()) == null){
|
|
|
- dateMap.put(overTime.getTime(),roomLive.getInRoomTime().getTime());
|
|
|
- }else {
|
|
|
- if(roomLive.getInRoomTime().getTime() < dateMap.get(overTime.getTime())){
|
|
|
- dateMap.put(overTime.getTime(),roomLive.getInRoomTime().getTime());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- for (Long key : dateMap.keySet()) {
|
|
|
- minute += (key - dateMap.get(key)) /1000/60;
|
|
|
- }
|
|
|
+ Long roomTime = getRoomTime(roomLives);
|
|
|
|
|
|
RoomListDataVo roomListDataVo = new RoomListDataVo();
|
|
|
roomListDataVo.setRoomTitle(record.getRoomTitle());
|
|
|
roomListDataVo.setSceneNameList(sceneTileList);
|
|
|
roomListDataVo.setCreateTime(record.getCreateTime());
|
|
|
roomListDataVo.setRoomStatus(record.getRoomStatus());
|
|
|
- roomListDataVo.setLookTime(minute);
|
|
|
+ roomListDataVo.setLookTime(roomTime);
|
|
|
roomListDataVo.setLookManCount(record.getRoomViewCount());
|
|
|
roomListDataVo.setShareCount(record.getShareCount());
|
|
|
voList.add(roomListDataVo);
|
|
@@ -284,16 +266,38 @@ public class DataCountService {
|
|
|
danmakusMap.put(record.getRoomId()+record.getWxUserId(),danmakus);
|
|
|
}
|
|
|
List<String> collect = danmakus.stream().map(RoomDanmaku::getText).collect(Collectors.toList());
|
|
|
- if(record.getFirstInRoomTime() != null && record.getLastOutRoomTime()!=null){
|
|
|
- Long time = DateUtil.between(record.getFirstInRoomTime(),record.getLastOutRoomTime(),DateUnit.MINUTE);
|
|
|
- record.setOnlineTime(time);
|
|
|
- }
|
|
|
record.setTextCount(Long.valueOf(danmakus.size()));
|
|
|
record.setTexts(collect);
|
|
|
+
|
|
|
+ List<RoomVisitLog> logs = roomVisitLogService.getByRoomIdAndUerId(record.getRoomId(),record.getWxUserId());
|
|
|
+ Long roomTime = getRoomTime(logs);
|
|
|
+ record.setOnlineTime(roomTime);
|
|
|
}
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
|
|
|
+ private Long getRoomTime(List<RoomVisitLog> logs){
|
|
|
+ Long minute = 0L;
|
|
|
+ HashMap<Long,Long> dateMap = new HashMap<>();
|
|
|
+ for (RoomVisitLog roomLive : logs) {
|
|
|
+ Date overTime = roomLive.getOutRoomTime();
|
|
|
+ if(overTime == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(dateMap.get(overTime.getTime()) == null){
|
|
|
+ dateMap.put(overTime.getTime(),roomLive.getInRoomTime().getTime());
|
|
|
+ }else {
|
|
|
+ if(roomLive.getInRoomTime().getTime() < dateMap.get(overTime.getTime())){
|
|
|
+ dateMap.put(overTime.getTime(),roomLive.getInRoomTime().getTime());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ for (Long key : dateMap.keySet()) {
|
|
|
+ minute += (key - dateMap.get(key)) /1000/60;
|
|
|
+ }
|
|
|
+ return minute;
|
|
|
+ }
|
|
|
|
|
|
}
|