|
@@ -1,6 +1,7 @@
|
|
|
package com.zanxiang.game.module.manage.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.zanxiang.game.module.manage.enums.KfRoomMsgTypeEnum;
|
|
@@ -12,11 +13,14 @@ import com.zanxiang.game.module.mybatis.mapper.KfRoomMsgMapper;
|
|
|
import com.zanxiang.module.util.JsonUtil;
|
|
|
import com.zanxiang.module.util.bean.BeanUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import reactor.util.function.Tuple2;
|
|
|
import reactor.util.function.Tuples;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -35,8 +39,21 @@ public class KfRoomMsgServiceImpl extends ServiceImpl<KfRoomMsgMapper, KfRoomMsg
|
|
|
.eq(KfRoomMsg::getRoomId, roomId)
|
|
|
.orderByDesc(KfRoomMsg::getCreateTime)
|
|
|
);
|
|
|
+ //构造消息列表
|
|
|
List<KfWebSocketMsgDTO.RoomMsgBean> roomMsgBeanList = kfRoomMsgPage.getRecords().stream()
|
|
|
.map(this::transform).collect(Collectors.toList());
|
|
|
+ //更新消息已读状态
|
|
|
+ List<String> msgIdList = roomMsgBeanList.stream()
|
|
|
+ .filter(msg -> Objects.equals(msg.getReadStatus(), Boolean.FALSE))
|
|
|
+ .map(KfWebSocketMsgDTO.RoomMsgBean::getMsgId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(msgIdList)) {
|
|
|
+ super.update(new LambdaUpdateWrapper<KfRoomMsg>()
|
|
|
+ .set(KfRoomMsg::getReadStatus, Boolean.TRUE)
|
|
|
+ .set(KfRoomMsg::getUpdateTime, LocalDateTime.now())
|
|
|
+ .in(KfRoomMsg::getMsgId, msgIdList));
|
|
|
+ }
|
|
|
+ //返回分页数据, 消息列表
|
|
|
return Tuples.of(this.transform(kfRoomMsgPage), roomMsgBeanList);
|
|
|
}
|
|
|
|