Commit 2c5287a9b2c9fe8afb008a0bf1c4d9cc473f3304
1 parent
f1731e44
【修复】IM:基于 offset 读取不到消息时,报 NPE 问题
Showing
2 changed files
with
10 additions
and
0 deletions
yudao-module-im/yudao-module-im-api/src/main/java/cn/iocoder/yudao/module/im/enums/message/ImMessageContentTypeEnum.java
| ... | ... | @@ -33,10 +33,13 @@ public enum ImMessageContentTypeEnum implements IntArrayValuable { |
| 33 | 33 | QUOTE(114, "引用消息"), |
| 34 | 34 | FACE(115, "表情消息"), |
| 35 | 35 | ADVANCED_REVOKE(118, "高级撤回消息"), |
| 36 | + | |
| 36 | 37 | // ========== 好友通知 1200-1299 =========== |
| 37 | 38 | FRIEND_ADDED(1201, "双方成为好友通知"), |
| 39 | + | |
| 38 | 40 | // ========== 系统通知 1400 ========== |
| 39 | 41 | OA_NOTIFICATION(1400, "系统通知"), |
| 42 | + | |
| 40 | 43 | // ========== 群相关 1500-1599 ========== |
| 41 | 44 | GROUP_CREATED(1501, "群创建通知"), |
| 42 | 45 | GROUP_INFO_CHANGED(1502, "群信息改变通知"), |
| ... | ... | @@ -53,6 +56,7 @@ public enum ImMessageContentTypeEnum implements IntArrayValuable { |
| 53 | 56 | GROUP_ANNOUNCEMENT_UPDATED(1519, "群公告改变通知"), |
| 54 | 57 | GROUP_NAME_UPDATED(1520, "群名称改变通知"), |
| 55 | 58 | |
| 59 | + // TODO 芋艿:其它 | |
| 56 | 60 | BURN_CHANGE(1701, "阅后即焚开启或关闭通知"), |
| 57 | 61 | REVOKE(2101, "撤回消息通知");; |
| 58 | 62 | ... | ... |
yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageServiceImpl.java
| 1 | 1 | package cn.iocoder.yudao.module.im.service.message; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.bean.BeanUtil; |
| 4 | +import cn.hutool.core.collection.CollUtil; | |
| 4 | 5 | import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessageListReqVO; |
| 5 | 6 | import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessageSendReqVO; |
| 6 | 7 | import cn.iocoder.yudao.module.im.dal.dataobject.group.ImGroupMemberDO; |
| ... | ... | @@ -19,6 +20,7 @@ import org.dromara.hutool.core.date.TimeUtil; |
| 19 | 20 | import org.springframework.stereotype.Service; |
| 20 | 21 | import org.springframework.validation.annotation.Validated; |
| 21 | 22 | |
| 23 | +import java.util.Collections; | |
| 22 | 24 | import java.util.List; |
| 23 | 25 | |
| 24 | 26 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| ... | ... | @@ -57,6 +59,9 @@ public class ImMessageServiceImpl implements ImMessageService { |
| 57 | 59 | @Override |
| 58 | 60 | public List<ImMessageDO> pullMessageList(Long userId, Long sequence, Integer size) { |
| 59 | 61 | List<Long> messageIds = imInboxService.selectMessageIdsByUserIdAndSequence(userId, sequence, size); |
| 62 | + if (CollUtil.isEmpty(messageIds)) { | |
| 63 | + return Collections.emptyList(); | |
| 64 | + } | |
| 60 | 65 | return imMessageMapper.selectBatchIds(messageIds); |
| 61 | 66 | } |
| 62 | 67 | |
| ... | ... | @@ -70,6 +75,7 @@ public class ImMessageServiceImpl implements ImMessageService { |
| 70 | 75 | } |
| 71 | 76 | |
| 72 | 77 | private ImMessageDO saveMessage(Long fromUserId, ImMessageSendReqVO message) { |
| 78 | + // TODO 芋艿:消息格式的校验 | |
| 73 | 79 | // 1. 校验接收人是否存在 |
| 74 | 80 | validateReceiverIdExists(message); |
| 75 | 81 | // 2. 查询发送人信息 | ... | ... |