lyhzzz 2 years ago
parent
commit
ae0fc46bba

+ 2 - 2
src/main/java/com/fdkankan/tk/controller/DataCountController.java

@@ -54,11 +54,11 @@ public class DataCountController {
      * 房间使用情况,用户流量量,用户分享数,留言人数,留言总数
      */
     @GetMapping("/roomVisitData")
-    public ResultData roomVisitData(@RequestParam(required = false) String roomId,
+    public ResultData roomVisitData(@RequestParam(required = false) String roomTitle,
                                     @RequestParam(required = false) String startTime,
                                     @RequestParam(required = false) String endTime){
 
-        return ResultData.ok(dataCountService.roomVisitData(roomId,startTime,endTime));
+        return ResultData.ok(dataCountService.roomVisitData(roomTitle,startTime,endTime));
     }
 
     /**

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

@@ -23,10 +23,10 @@ public interface IRoomVisitLogMapper extends BaseMapper<RoomVisitLog> {
 
     Long getCountByTime(@Param("key") Integer key);
 
-    List<DataCount> getByGroupRoomId(@Param("tb") String tb,@Param("roomId") String roomId,
+    List<DataCount> getByGroupRoomId(@Param("tb") String tb,@Param("roomIds") List<String> roomIds,
                                      @Param("startTime") String startTime, @Param("endTime") String endTime);
 
-    List<DataCount> getByDGroupRoomId(@Param("tb") String tb,@Param("roomId") String roomId,
+    List<DataCount> getByDGroupRoomId(@Param("tb") String tb,@Param("roomIds") List<String> roomIds,
                                      @Param("startTime") String startTime, @Param("endTime") String endTime);
 
     List<DataCount> getGroupByRoomId();

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

@@ -86,18 +86,26 @@ public class DataCountService {
         return dataCounts;
     }
 
-    public Object roomVisitData(String roomId, String startTime, String endTime) {
+    public Object roomVisitData(String roomTitle, String startTime, String endTime) {
+        List<String> roomIds = new ArrayList<>();
+        if(StringUtils.isNotBlank(roomTitle)){
+            List<Room> roomList = roomService.getLikeTitle(roomTitle);
+            if(roomList.size() >0){
+                roomIds = roomList.stream().map(Room::getRoomId).collect(Collectors.toList());
+            }
+        }
+
         RoomVisitData roomVisitData = new RoomVisitData();
-        List<DataCount> dbVisitList = roomVisitLogService.getByGroupRoomId("t_room_visit_log",roomId,startTime,endTime);
+        List<DataCount> dbVisitList = roomVisitLogService.getByGroupRoomId("t_room_visit_log",roomIds,startTime,endTime);
         List<DataCount>  dbVisitListFmt =  getDataCountListByList(dbVisitList, startTime, endTime);
 
-        List<DataCount> dbSharList = roomVisitLogService.getByGroupRoomId("t_room_share_log",roomId,startTime,endTime);
+        List<DataCount> dbSharList = roomVisitLogService.getByGroupRoomId("t_room_share_log",roomIds,startTime,endTime);
         List<DataCount>  dbSharListFmt =  getDataCountListByList(dbSharList, startTime, endTime);
 
-        List<DataCount> dbDanmakuList = roomVisitLogService.getByGroupRoomId("t_room_danmaku",roomId,startTime,endTime);
+        List<DataCount> dbDanmakuList = roomVisitLogService.getByGroupRoomId("t_room_danmaku",roomIds,startTime,endTime);
         List<DataCount>  dbDanmakuListFmt =  getDataCountListByList(dbDanmakuList, startTime, endTime);
 
-        List<DataCount> dbDanmakuListD = roomVisitLogService.getByDGroupRoomId("t_room_danmaku",roomId,startTime,endTime);
+        List<DataCount> dbDanmakuListD = roomVisitLogService.getByDGroupRoomId("t_room_danmaku",roomIds,startTime,endTime);
         List<DataCount>  dbDanmakuListFmtD =  getDataCountListByList(dbDanmakuListD, startTime, endTime);
 
         roomVisitData.setUserVisitList(dbVisitListFmt);

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

@@ -44,4 +44,6 @@ public interface IRoomService extends IService<Room> {
     void stopRoom(Room room);
 
     HashMap<String, Room> getByIds(List<String> roomIds);
+
+    List<Room> getLikeTitle(String roomTitle);
 }

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

@@ -24,9 +24,9 @@ public interface IRoomVisitLogService extends IService<RoomVisitLog> {
 
     Long getCountByTime(Integer key);
 
-    List<DataCount> getByGroupRoomId(String tb,String roomId, String startTime, String endTime);
+    List<DataCount> getByGroupRoomId(String tb,List<String> roomIds, String startTime, String endTime);
 
-    List<DataCount> getByDGroupRoomId(String tb, String roomId, String startTime, String endTime);
+    List<DataCount> getByDGroupRoomId(String tb, List<String> roomIds, String startTime, String endTime);
 
     List<DataCount> getGroupByRoomId();
 

+ 7 - 0
src/main/java/com/fdkankan/tk/service/impl/RoomServiceImpl.java

@@ -399,4 +399,11 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
         }
         return map;
     }
+
+    @Override
+    public List<Room> getLikeTitle(String roomTitle) {
+        LambdaQueryWrapper<Room> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(Room::getRoomTitle,roomTitle);
+        return this.list(wrapper);
+    }
 }

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

@@ -77,12 +77,12 @@ public class RoomVisitLogServiceImpl extends ServiceImpl<IRoomVisitLogMapper, Ro
     }
 
     @Override
-    public List<DataCount> getByGroupRoomId(String tb,String roomId, String startTime, String endTime) {
-        return this.getBaseMapper().getByGroupRoomId(tb,roomId,startTime,endTime);
+    public List<DataCount> getByGroupRoomId(String tb,List<String> roomIds, String startTime, String endTime) {
+        return this.getBaseMapper().getByGroupRoomId(tb,roomIds,startTime,endTime);
     }
     @Override
-    public List<DataCount> getByDGroupRoomId(String tb,String roomId, String startTime, String endTime) {
-        return this.getBaseMapper().getByDGroupRoomId(tb,roomId,startTime,endTime);
+    public List<DataCount> getByDGroupRoomId(String tb,List<String> roomIds, String startTime, String endTime) {
+        return this.getBaseMapper().getByDGroupRoomId(tb,roomIds,startTime,endTime);
     }
 
     @Override

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

@@ -13,7 +13,7 @@
     <select id="getByGroupRoomId" resultType="com.fdkankan.tk.response.DataCount">
         SELECT DATE_FORMAT(create_time,'%Y-%m-%d') as dataKey , count(1) as dataCount  FROM ${tb}
         WHERE tb_status = 0
-        <if test="roomId != null and roomId !=''">
+        <if test="roomIds != null roomIds.size >0">
            and  room_id =#{roomId}
         </if>
         <if test="startTime != null and startTime !='' and endTime != null and endTime !=''">