浏览代码

修改点赞数空指针问题

hgw 3 年之前
父节点
当前提交
5292ddbded

+ 8 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -26,6 +26,7 @@ import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.redisson.api.RBucket;
+import org.redisson.api.RList;
 import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
 import org.slf4j.Logger;
@@ -98,7 +99,6 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         if (room.getLiveState() == 2) {
             throw new BizException("直播已结束!");
         }
-        getRoomData(room);
         return room;
     }
 
@@ -396,7 +396,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
             throw new BizException(e.getMessage());
         }
         //生成0点赞
-        redissonClient.getAtomicLong(LIVE_ROOM_LIKE.replace(ROOM_UID, room.getRoomUid())).set(0);
+        redissonClient.getBucket(LIVE_ROOM_LIKE.replace(ROOM_UID, room.getRoomUid())).set(0);
         //todo 修改房间状态
         room.setLiveState(1);
         room.setUpdatedTime(new Date());
@@ -406,10 +406,14 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
 
     private void getRoomData(ImLiveBroadcastRoomVo roomVo) {
         //生成0点赞
-        long like = redissonClient.getAtomicLong(LIVE_ROOM_LIKE.replace(ROOM_UID, roomVo.getRoomUid())).get();
+        Object like = redissonClient.getBucket(LIVE_ROOM_LIKE.replace(ROOM_UID, roomVo.getRoomUid())).get();
+        if (Objects.isNull(like)) {
+            like = 0;
+        }
         roomVo.setLikeNum((int) like);
         //0用户数量
-        int size = redissonClient.getList(LIVE_ROOM_USER_LIST.replace(ROOM_UID, roomVo.getRoomUid())).size();
+        RList<Object> list = redissonClient.getList(LIVE_ROOM_USER_LIST.replace(ROOM_UID, roomVo.getRoomUid()));
+        int size = list.size();
         roomVo.setLookNum(size);
         //0累计总用户数量
         int totalLook = redissonClient.getMap(LIVE_ROOM_TOTAL_USER_LIST.replace(ROOM_UID, roomVo.getRoomUid())).size();