From 6dd2a27df7cb4e9d5f5533ca0a1dae71f5375779 Mon Sep 17 00:00:00 2001 From: zhongzb <972627721@qq.com> Date: Sun, 30 Jul 2023 01:20:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E8=81=8A=E7=BE=A4=E8=81=8A=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mallchat/common/chat/service/ContactService.java | 2 +- .../common/chat/service/impl/ContactServiceImpl.java | 12 +++++++++--- .../domain/vo/request/ChatMessageReadInfoReq.java | 2 ++ .../custom/chat/service/impl/ChatServiceImpl.java | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/service/ContactService.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/service/ContactService.java index 6fd4c7f..0e07def 100644 --- a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/service/ContactService.java +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/service/ContactService.java @@ -25,5 +25,5 @@ public interface ContactService { Integer getMsgUnReadCount(Message message); - Map getMsgReadInfo(List messages); + Map getMsgReadInfo(List messages, boolean needUnread); } diff --git a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/service/impl/ContactServiceImpl.java b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/service/impl/ContactServiceImpl.java index 119aef5..8c9f78f 100644 --- a/mallchat-common/src/main/java/com/abin/mallchat/common/chat/service/impl/ContactServiceImpl.java +++ b/mallchat-common/src/main/java/com/abin/mallchat/common/chat/service/impl/ContactServiceImpl.java @@ -51,17 +51,23 @@ public class ContactServiceImpl implements ContactService { } @Override - public Map getMsgReadInfo(List messages) { + public Map getMsgReadInfo(List messages, boolean needUnread) { Map> roomGroup = messages.stream().collect(Collectors.groupingBy(Message::getRoomId)); AssertUtil.equal(roomGroup.size(), 1, "只能查相同房间下的消息"); Long roomId = roomGroup.keySet().iterator().next(); - Integer totalCount = contactDao.getTotalCount(roomId); + Integer totalCount = null; + if (needUnread) { + totalCount = contactDao.getTotalCount(roomId); + } + Integer finalTotalCount = totalCount; return messages.stream().map(message -> { MsgReadInfoDTO readInfoDTO = new MsgReadInfoDTO(); readInfoDTO.setMsgId(message.getId()); Integer readCount = contactDao.getReadCount(message); readInfoDTO.setReadCount(readCount); - readInfoDTO.setUnReadCount(totalCount - readCount); + if (needUnread) { + readInfoDTO.setUnReadCount(finalTotalCount - readCount); + } return readInfoDTO; }).collect(Collectors.toMap(MsgReadInfoDTO::getMsgId, Function.identity())); } diff --git a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/domain/vo/request/ChatMessageReadInfoReq.java b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/domain/vo/request/ChatMessageReadInfoReq.java index 2b1c585..f8688fa 100644 --- a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/domain/vo/request/ChatMessageReadInfoReq.java +++ b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/domain/vo/request/ChatMessageReadInfoReq.java @@ -22,4 +22,6 @@ public class ChatMessageReadInfoReq { @ApiModelProperty("消息id集合(只查本人)") @Size(max = 20) private List msgIds; + @ApiModelProperty("是否需要查未读数") + private boolean needUnread; } diff --git a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/service/impl/ChatServiceImpl.java b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/service/impl/ChatServiceImpl.java index c81b4fe..2ba83f6 100644 --- a/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/service/impl/ChatServiceImpl.java +++ b/mallchat-custom-server/src/main/java/com/abin/mallchat/custom/chat/service/impl/ChatServiceImpl.java @@ -234,7 +234,7 @@ public class ChatServiceImpl implements ChatService { messages.forEach(message -> { AssertUtil.equal(uid, message.getFromUid(), "只能查询自己发送的消息"); }); - return contactService.getMsgReadInfo(messages).values(); + return contactService.getMsgReadInfo(messages, request.isNeedUnread()).values(); } @Override