|
@@ -3,6 +3,7 @@ import cn.hutool.core.date.DateUnit;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.fdkankan.tk.common.PageInfo;
|
|
|
+import com.fdkankan.tk.common.util.JwtUtil;
|
|
|
import com.fdkankan.tk.entity.*;
|
|
|
import com.fdkankan.tk.response.*;
|
|
|
import com.fdkankan.tk.util.DataCountUtil;
|
|
@@ -38,11 +39,34 @@ public class DataCountService {
|
|
|
IWxUserService wxUserService;
|
|
|
|
|
|
|
|
|
- public Object roomData() {
|
|
|
- Long roomCount = roomService.count();
|
|
|
- Long visitManCount = roomVisitLogService.manCount();
|
|
|
- Long visitCount = roomVisitLogService.count();
|
|
|
- Long shareCount = roomShareLogService.count();
|
|
|
+ public Object roomData(String token) {
|
|
|
+ String userName = null;
|
|
|
+ if(StringUtils.isNotBlank(token)){
|
|
|
+ userName = JwtUtil.getUserName(token);
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<Room> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ if(StringUtils.isNotBlank(userName)){
|
|
|
+ wrapper.eq(Room::getRoomUserName,userName);
|
|
|
+ }
|
|
|
+ List<Room> list = roomService.list(wrapper);
|
|
|
+ Long roomCount = Long.valueOf(list.size());
|
|
|
+ if(list.size() <=0){
|
|
|
+ return new RoomData();
|
|
|
+ }
|
|
|
+ List<String> roomIds = list.stream().map(Room::getRoomId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ Long visitManCount = roomVisitLogService.manCount(roomIds);
|
|
|
+ LambdaQueryWrapper<RoomVisitLog> wrapper2 = new LambdaQueryWrapper<>();
|
|
|
+ if(roomIds.size() >0){
|
|
|
+ wrapper2.in(RoomVisitLog::getRoomId,roomIds);
|
|
|
+ }
|
|
|
+ Long visitCount = roomVisitLogService.count(wrapper2);
|
|
|
+
|
|
|
+ LambdaQueryWrapper<RoomShareLog> wrapper3 = new LambdaQueryWrapper<>();
|
|
|
+ if(roomIds.size() >0){
|
|
|
+ wrapper3.in(RoomShareLog::getRoomId,roomIds);
|
|
|
+ }
|
|
|
+ Long shareCount = roomShareLogService.count(wrapper3);
|
|
|
|
|
|
RoomData roomData = new RoomData();
|
|
|
roomData.setRoomCount(roomCount);
|
|
@@ -52,22 +76,37 @@ public class DataCountService {
|
|
|
return roomData;
|
|
|
}
|
|
|
|
|
|
- public Object takeLookTop5() {
|
|
|
+ public Object takeLookTop5(String token) {
|
|
|
+ String userName = null;
|
|
|
+ if(StringUtils.isNotBlank(token)){
|
|
|
+ userName = JwtUtil.getUserName(token);
|
|
|
+ }
|
|
|
TakeLookTop5 takeLookTop5 = new TakeLookTop5();
|
|
|
|
|
|
List<DataCount> takeLookList = new ArrayList<>();
|
|
|
LambdaQueryWrapper<Room> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.orderByDesc(Room::getRoomViewCount);
|
|
|
- Page<Room> page = roomService.page(new Page<>(1, 5), wrapper);
|
|
|
- List<Room> roomList = page.getRecords();
|
|
|
+ if(StringUtils.isNotBlank(userName)){
|
|
|
+ wrapper.eq(Room::getRoomUserName,userName);
|
|
|
+
|
|
|
+ }
|
|
|
+ wrapper.orderByDesc(Room::getRoomViewCount);
|
|
|
+ List<Room> roomList = roomService.list( wrapper);
|
|
|
+ List<String> roomIds = roomList.stream().map(Room::getRoomId).collect(Collectors.toList());
|
|
|
+ if(roomIds.size() <=0){
|
|
|
+ return takeLookTop5;
|
|
|
+ }
|
|
|
for (Room room : roomList) {
|
|
|
+ if(takeLookList.size() >= 5){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
DataCount dataCount = new DataCount();
|
|
|
dataCount.setDataKey(room.getRoomTitle());
|
|
|
dataCount.setDataCount(Long.valueOf(room.getRoomViewCount()));
|
|
|
takeLookList.add(dataCount);
|
|
|
}
|
|
|
|
|
|
- List<DataCount> danmakuList = roomDanmakuService.getDataCountTop5();
|
|
|
+ List<DataCount> danmakuList = roomDanmakuService.getDataCountTop5(roomIds);
|
|
|
takeLookTop5.setTakeLookList(takeLookList);
|
|
|
takeLookTop5.setDanmakuList(danmakuList);
|
|
|
return takeLookTop5;
|
|
@@ -250,10 +289,10 @@ public class DataCountService {
|
|
|
}
|
|
|
time += (roomVisitLog.getOutRoomTime().getTime() - roomVisitLog.getInRoomTime().getTime());
|
|
|
}
|
|
|
- List<RoomDanmaku> danmakus = danmakusMap.get(record.getRoomId());
|
|
|
+ List<RoomDanmaku> danmakus = danmakusMap.get(record.getRoomId()+record.getWxUserId());
|
|
|
if(danmakus == null){
|
|
|
- danmakus = roomDanmakuService.getByRoomId(record.getRoomId());
|
|
|
- danmakusMap.put(record.getRoomId(),danmakus);
|
|
|
+ danmakus = roomDanmakuService.getByRoomId(record.getRoomId(),record.getWxUserId());
|
|
|
+ danmakusMap.put(record.getRoomId()+record.getWxUserId(),danmakus);
|
|
|
}
|
|
|
List<String> collect = danmakus.stream().map(RoomDanmaku::getText).collect(Collectors.toList());
|
|
|
record.setOnlineTime(time/1000/60);
|