lyhzzz пре 2 година
родитељ
комит
9a03046fb6

+ 2 - 0
src/main/java/com/fdkankan/tk/mapper/IRoomVisitLogMapper.java

@@ -30,4 +30,6 @@ public interface IRoomVisitLogMapper extends BaseMapper<RoomVisitLog> {
                                      @Param("startTime") String startTime, @Param("endTime") String endTime);
 
     List<DataCount> getGroupByRoomId();
+
+    List<DataCount> getDataCountTop5(@Param("roomIds")List<String> roomIds);
 }

+ 3 - 12
src/main/java/com/fdkankan/tk/service/DataCountService.java

@@ -74,20 +74,11 @@ public class DataCountService {
             return takeLookTop5;
         }
 
-        List<DataCount> takeLookList = new ArrayList<>();
-
-        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> lookList = roomVisitLogService.getDataCountTop5(roomIds);
 
         List<DataCount> danmakuList = roomDanmakuService.getDataCountTop5(roomIds);
-        takeLookTop5.setTakeLookList(takeLookList);
+
+        takeLookTop5.setTakeLookList(lookList);
         takeLookTop5.setDanmakuList(danmakuList);
         return takeLookTop5;
     }

+ 2 - 0
src/main/java/com/fdkankan/tk/service/IRoomVisitLogService.java

@@ -31,4 +31,6 @@ public interface IRoomVisitLogService extends IService<RoomVisitLog> {
     List<DataCount> getGroupByRoomId();
 
     List<RoomVisitLog> getByRoomId(String roomId);
+
+    List<DataCount> getDataCountTop5(List<String> roomIds);
 }

+ 1 - 1
src/main/java/com/fdkankan/tk/service/impl/RoomShareLogServiceImpl.java

@@ -30,7 +30,7 @@ public class RoomShareLogServiceImpl extends ServiceImpl<IRoomShareLogMapper, Ro
         RoomShareLog roomShareLog = new RoomShareLog();
         roomShareLog.setRoomId(roomId);
         roomShareLog.setRoomUserId(roomUserId);
-        roomShareLog.setUserId(roomUserId);
+        roomShareLog.setUserId(userId);
         this.save(roomShareLog);
     }
 

+ 5 - 0
src/main/java/com/fdkankan/tk/service/impl/RoomVisitLogServiceImpl.java

@@ -96,4 +96,9 @@ public class RoomVisitLogServiceImpl extends ServiceImpl<IRoomVisitLogMapper, Ro
         wrapper.eq(RoomVisitLog::getRoomId,roomId);
         return this.list(wrapper);
     }
+
+    @Override
+    public List<DataCount> getDataCountTop5(List<String> roomIds) {
+        return this.getBaseMapper().getDataCountTop5(roomIds);
+    }
 }

+ 11 - 0
src/main/resources/mapper/tk/RoomVisitLogMapper.xml

@@ -58,4 +58,15 @@
         select room_id as dataKey ,count(DISTINCT visit_user_id) as dataCount from t_room_visit_log
         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
+        where tb_status = 0 and visit_user_id is not null
+        <if test="roomIds != null and roomIds.size >0">
+            and  room_id in
+            <foreach item="roomId" collection="roomIds" open="(" separator="," close=")">
+                #{roomId}
+            </foreach>
+        </if>
+        GROUP BY visit_user_id  ORDER BY dataCount desc LIMIT 5
+    </select>
 </mapper>