lyhzzz 1 jaar geleden
bovenliggende
commit
af173fd5de

+ 12 - 4
src/main/java/com/fdkankan/tk/inner/service/InnerService.java

@@ -10,6 +10,7 @@ import com.fdkankan.tk.entity.Room;
 import com.fdkankan.tk.entity.RoomShareLog;
 import com.fdkankan.tk.exception.BusinessException;
 import com.fdkankan.tk.inner.request.InnerRoomParam;
+import com.fdkankan.tk.response.DataCount;
 import com.fdkankan.tk.response.RoomInnerVo;
 import com.fdkankan.tk.response.RoomVo;
 import com.fdkankan.tk.service.IRoomNumService;
@@ -23,6 +24,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 
 @Service
@@ -72,11 +74,17 @@ public class InnerService {
             list.add(roomVo);
         }
         Page<RoomInnerVo> pageVo = new Page<>(param.getPageNum(),param.getPageSize());
+        HashMap<String, DataCount> dataCountMap =  roomVisitLogService.getGroupByRoomId();
+        HashMap<String, DataCount> dataCountMapShare  = roomShareLogService.getGroupByRoomId();
         for (RoomInnerVo record : list) {
-            Long visitCount = roomVisitLogService.getCountByRoomIds(Arrays.asList(record.getRoomId()));
-            Long shareCount = roomShareLogService.getCountByRoomIds(Arrays.asList(record.getRoomId()));
-            record.setRoomViewCount(visitCount);
-            record.setShareCount(shareCount);
+            DataCount dataCount = dataCountMap.get(record.getRoomId());
+            if(dataCount != null){
+                record.setRoomViewCount(dataCount.getDataCount());
+            }
+            DataCount shareCount = dataCountMapShare.get(record.getRoomId());
+            if(shareCount != null){
+                record.setShareCount(shareCount.getDataCount());
+            }
         }
         pageVo.setTotal(page.getTotal());
         pageVo.setRecords(list);

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

@@ -19,5 +19,7 @@ public interface IRoomMapper extends BaseMapper<Room> {
 
     Long getCountAndTbStatus();
 
+    Page<Room> pageWxList(Page<Object> page, RoomListParam param);
+
     Page<Room> pageList(Page<Object> page, RoomListParam param);
 }

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

@@ -214,6 +214,9 @@ public class DataCountService {
 //        HashMap<String,Long> roomManMap = new HashMap<>();
 //        roomList.forEach(entity -> roomManMap.put(entity.getDataKey(),entity.getDataCount()));
 
+        HashMap<String, DataCount> dataCountMap =  roomVisitLogService.getGroupByRoomId();
+        HashMap<String, DataCount> dataCountMapShare  = roomShareLogService.getGroupByRoomId();
+
         for (Room record : page.getRecords()) {
             List<RoomNum> roomNums = numRoomMap.get(record.getRoomId());
             List<String> sceneTileList = new ArrayList<>();
@@ -228,17 +231,21 @@ public class DataCountService {
             List<RoomVisitLog> roomLives = roomVisitLogService.getByRoomId(record.getRoomId());
             Long roomTime = getRoomTime(roomLives);
 
-            Long visitCount = roomVisitLogService.getCountByRoomIds(Arrays.asList(record.getRoomId()));
-            Long shareCount = roomShareLogService.getCountByRoomIds(Arrays.asList(record.getRoomId()));
-
             RoomListDataVo roomListDataVo = new RoomListDataVo();
             roomListDataVo.setRoomTitle(record.getRoomTitle());
             roomListDataVo.setSceneNameList(sceneTileList);
             roomListDataVo.setCreateTime(record.getCreateTime());
             roomListDataVo.setRoomStatus(record.getRoomStatus());
             roomListDataVo.setLookTime(roomTime);
-            roomListDataVo.setLookManCount(visitCount);
-            roomListDataVo.setShareCount(shareCount);
+
+            DataCount dataCount = dataCountMap.get(record.getRoomId());
+            if(dataCount != null){
+                roomListDataVo.setLookManCount(dataCount.getDataCount());
+            }
+            DataCount shareCount = dataCountMapShare.get(record.getRoomId());
+            if(shareCount != null){
+                roomListDataVo.setShareCount(shareCount.getDataCount());
+            }
             voList.add(roomListDataVo);
         }
         Page<RoomListDataVo> pageVo = new Page<>(pageNum,pageSize);

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

@@ -4,6 +4,7 @@ import com.fdkankan.tk.entity.RoomShareLog;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.tk.response.DataCount;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -18,7 +19,7 @@ public interface IRoomShareLogService extends IService<RoomShareLog> {
 
     void saveLog(String roomId, String userId);
 
-    List<DataCount> getGroupByRoomId();
+    HashMap<String,DataCount> getGroupByRoomId();
 
     Long getShareCountByRoomId(String roomId);
 

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

@@ -5,6 +5,7 @@ import com.fdkankan.tk.entity.RoomVisitLog;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.tk.response.DataCount;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -29,7 +30,7 @@ public interface IRoomVisitLogService extends IService<RoomVisitLog> {
 
     List<DataCount> getByDGroupRoomId(String tb, List<String> roomIds, String startTime, String endTime);
 
-    List<DataCount> getGroupByRoomId();
+    HashMap<String,DataCount> getGroupByRoomId();
 
     List<RoomVisitLog> getByRoomId(String roomId);
 

+ 10 - 21
src/main/java/com/fdkankan/tk/service/impl/RoomServiceImpl.java

@@ -2,6 +2,7 @@ package com.fdkankan.tk.service.impl;
 import java.io.File;
 import java.io.IOException;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
@@ -32,6 +33,7 @@ import com.fdkankan.tk.mapper.IRoomMapper;
 import com.fdkankan.tk.mapper.IRoomUserMapper;
 import com.fdkankan.tk.request.RoomAddParam;
 import com.fdkankan.tk.request.RoomListParam;
+import com.fdkankan.tk.response.DataCount;
 import com.fdkankan.tk.response.RoomAddUserParam;
 import com.fdkankan.tk.response.RoomVo;
 import com.fdkankan.tk.response.SceneVo;
@@ -97,7 +99,7 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
                 return PageInfo.PageInfo(new Page<>(param.getPageNum(),param.getPageSize()));
             }
             param.setUserName(wxUser.getPhoneNumber());
-            Page<Room> page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
+            Page<Room> page = this.getBaseMapper().pageWxList(new Page<>(param.getPageNum(),param.getPageSize()),param);
             for (Room record : page.getRecords()) {
                 if(!record.getRoomUserName().equals(wxUser.getPhoneNumber())){
                     RoomUser roomUser = roomUserService.getByUserName(record.getRoomId(),wxUser.getPhoneNumber());
@@ -116,7 +118,6 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
             return PageInfo.PageInfo(page);
         }
 
-        LambdaQueryWrapper<Room> wrapper = new LambdaQueryWrapper<>();
         if(StringUtils.isNotBlank(token)){
             String fdToken = String.format(RedisKey.TOKEN_V3,token);
             if(! redisUtil.hasKey(fdToken)){
@@ -124,29 +125,17 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
             }
             redisUtil.expire(fdToken,6 * 60 * 60);
             String userName = JwtUtil.getUserName(token);
-            wrapper.eq(Room::getRoomUserName,userName);
-        }
-
-        if (StringUtils.isNotBlank(param.getRoomTitle()) ) {
-            wrapper.like(Room::getRoomTitle,param.getRoomTitle());
-        }
-        if(param.getRoomStatus() != null){
-            if( param.getRoomStatus() == 0){
-                wrapper.in(Room::getRoomStatus,0,1,2);
-                wrapper.orderByAsc(Room::getRoomStatus);
-            }else {
-                wrapper.eq(Room::getRoomStatus,param.getRoomStatus());
-            }
+            param.setUserName(userName);
         }
-        wrapper.eq(Room::getPlatform,"4dkankan");
-        wrapper.orderByDesc(Room::getUpdateTime);
 
-        Page<Room> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
+        Page<Room> page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
+        HashMap<String,DataCount> dataCountMap =  roomVisitLogService.getGroupByRoomId();
         for (Room record : page.getRecords()) {
             record.setVisitPassword(null);
-            Long visitCount = roomVisitLogService.getCountByRoomIds(Arrays.asList(record.getRoomId()));
-
-            record.setRoomViewCount(visitCount);
+            DataCount dataCount = dataCountMap.get(record.getRoomId());
+            if(dataCount != null){
+                record.setRoomViewCount(dataCount.getDataCount());
+            }
         }
         return PageInfo.PageInfo(page);
     }

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

@@ -1,5 +1,6 @@
 package com.fdkankan.tk.service.impl;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -41,8 +42,11 @@ public class RoomShareLogServiceImpl extends ServiceImpl<IRoomShareLogMapper, Ro
     }
 
     @Override
-    public List<DataCount> getGroupByRoomId() {
-        return this.getBaseMapper().getGroupByRoomId();
+    public HashMap<String,DataCount> getGroupByRoomId() {
+        HashMap<String,DataCount> map = new HashMap<>();
+        List<DataCount> groupByRoomId = this.getBaseMapper().getGroupByRoomId();
+        groupByRoomId.forEach(e -> map.put(e.getDataKey(),e));
+        return map ;
     }
 
     @Override

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

@@ -1,5 +1,6 @@
 package com.fdkankan.tk.service.impl;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -105,8 +106,11 @@ public class RoomVisitLogServiceImpl extends ServiceImpl<IRoomVisitLogMapper, Ro
     }
 
     @Override
-    public List<DataCount> getGroupByRoomId() {
-        return this.getBaseMapper().getGroupByRoomId();
+    public HashMap<String,DataCount> getGroupByRoomId() {
+        HashMap<String,DataCount> map = new HashMap<>();
+        List<DataCount> groupByRoomId = this.getBaseMapper().getGroupByRoomId();
+        groupByRoomId.forEach(e -> map.put(e.getDataKey(),e));
+        return map;
     }
 
     @Override

+ 27 - 2
src/main/resources/mapper/tk/RoomMapper.xml

@@ -6,10 +6,10 @@
         select  count(1) from t_room
     </select>
 
-    <select id="pageList" resultType="com.fdkankan.tk.entity.Room">
+    <select id="pageWxList" resultType="com.fdkankan.tk.entity.Room">
         select DISTINCT r.* from t_room r
             left join t_room_user ru on r.room_id = ru.room_id
-        where r.tb_status = 0 and r.room_status !=2
+        where r.tb_status = 0 and r.room_status !=2 and r.platform = '4dkankan'
         <if test="param.userName != null and param.userName !='' ">
             and (r.room_user_name = #{param.userName} or ru.user_name = #{param.userName})
         </if>
@@ -25,4 +25,29 @@
         order by r.update_time desc
 
     </select>
+
+    <select id="pageList" resultType="com.fdkankan.tk.entity.Room">
+        select DISTINCT r.* from t_room r
+        left join t_room_user ru on r.room_id = ru.room_id
+        where r.tb_status = 0 and r.platform = '4dkankan'
+        <if test="param.userName != null and param.userName !='' ">
+            and (r.room_user_name = #{param.userName} or ru.user_name = #{param.userName})
+        </if>
+        <if test="param.roomTitle != null and param.roomTitle !='' ">
+            and r.room_title like  concat ('%',#{param.roomTitle},'%')
+        </if>
+        <if test="param.roomStatus != null  and param.roomStatus == 0">
+            and r.room_status in (0,1,2)
+        </if>
+        <if test="param.roomStatus != null  and param.roomStatus != 0">
+            and r.room_status =  #{param.roomStatus}
+        </if>
+        <if test="param.roomStatus != null  and param.roomStatus == 0">
+            order by r.room_status asc , r.update_time desc
+        </if>
+        <if test="param.roomStatus == null  or param.roomStatus != 0">
+            order by r.update_time desc
+        </if>
+
+    </select>
 </mapper>