소스 검색

观看次数排行,房间名称

lyhzzz 2 년 전
부모
커밋
ba7144b90c
2개의 변경된 파일15개의 추가작업 그리고 2개의 파일을 삭제
  1. 13 0
      src/main/java/com/fdkankan/tk/service/DataCountService.java
  2. 2 2
      src/main/resources/mapper/tk/RoomVisitLogMapper.xml

+ 13 - 0
src/main/java/com/fdkankan/tk/service/DataCountService.java

@@ -13,6 +13,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.net.URLEncoder;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -75,6 +76,17 @@ public class DataCountService {
         }
 
         List<DataCount> lookList = roomVisitLogService.getDataCountTop5(roomIds);
+        HashMap<String,Room> roomHashMap = new HashMap<>();
+        List<String> roomIdList = lookList.stream().map(DataCount::getDataKey).collect(Collectors.toList());
+        if(roomIdList.size() >0){
+            List<Room> roomListDb = roomService.listByIds(roomIdList);
+            roomListDb.forEach(entity-> roomHashMap.put(entity.getRoomId(),entity));
+        }
+        for (DataCount dataCount : lookList) {
+            if(dataCount != null && roomHashMap.get(dataCount.getDataKey()) != null){
+                dataCount.setDataKey(roomHashMap.get(dataCount.getDataKey()).getRoomTitle());
+            }
+        }
 
         List<DataCount> danmakuList = roomDanmakuService.getDataCountTop5(roomIds);
 
@@ -170,6 +182,7 @@ public class DataCountService {
             wrapper.eq(Room::getRoomUserName,userName);
         }
         if(StringUtils.isNotBlank(roomTitle)){
+            roomTitle = URLEncoder.encode(roomTitle);
             wrapper.like(Room::getRoomId,roomTitle);
         }
         if(StringUtils.isNotBlank(startTime)){

+ 2 - 2
src/main/resources/mapper/tk/RoomVisitLogMapper.xml

@@ -59,7 +59,7 @@
         where tb_status = 0 group by dataKey
     </select>
     <select id="getDataCountTop5" resultType="com.fdkankan.tk.response.DataCount">
-        SELECT  visit_user_id as dataKey,count(1) as dataCount  FROM t_room_visit_log
+        SELECT  room_id as dataKey,count(1) as dataCount  FROM t_room_visit_log
         where tb_status = 0 and visit_user_id is not null
         <if test="roomIds != null and roomIds.size >0">
             and  room_id in
@@ -67,6 +67,6 @@
                 #{roomId}
             </foreach>
         </if>
-        GROUP BY visit_user_id  ORDER BY dataCount desc LIMIT 5
+        GROUP BY dataKey  ORDER BY dataCount desc LIMIT 5
     </select>
 </mapper>