From d99b208cf7c18c887d753cfe91b05d1a7704321c Mon Sep 17 00:00:00 2001 From: ccsens_zhengzhichuan Date: Fri, 28 Nov 2025 08:36:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=AA=E8=AF=BB=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/session/SessionController.java | 6 ++++++ .../com/research/system/domain/vo/SessionVo.java | 15 +++++++++++++++ .../research/system/persist/dao/SessionDao.java | 4 +++- .../research/system/service/SessionService.java | 1 + .../system/service/impl/SessionServiceImpl.java | 16 +++++++++++++--- .../src/main/resources/mapper/dao/SessionDao.xml | 15 +++++++++++++++ 6 files changed, 53 insertions(+), 4 deletions(-) diff --git a/research-admin/src/main/java/com/research/web/controller/client/session/SessionController.java b/research-admin/src/main/java/com/research/web/controller/client/session/SessionController.java index d82b4e88..ebe33e3c 100644 --- a/research-admin/src/main/java/com/research/web/controller/client/session/SessionController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/session/SessionController.java @@ -74,4 +74,10 @@ public class SessionController { public JsonResponse delLog(@ApiParam @Validated @RequestBody SessionDto.Delete dto) { return JsonResponse.ok(sessionService.delLog(dto)); } + + @ApiOperation(value = "查询未读消息") + @RequestMapping(value = "/queryUnRead", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryUnRead(){ + return JsonResponse.ok(sessionService.queryUnRead()); + } } diff --git a/research-system/src/main/java/com/research/system/domain/vo/SessionVo.java b/research-system/src/main/java/com/research/system/domain/vo/SessionVo.java index d9e55d70..960a1108 100644 --- a/research-system/src/main/java/com/research/system/domain/vo/SessionVo.java +++ b/research-system/src/main/java/com/research/system/domain/vo/SessionVo.java @@ -93,4 +93,19 @@ public class SessionVo { } + @Data + public static class UnRead{ + @ApiModelProperty("总共有多少条未读消息") + private Integer total; + @ApiModelProperty("") + private List unreadList; + @Data + public static class UnReadItem{ + @ApiModelProperty("会话ID") + private Long sessionId; + @ApiModelProperty("该会话ID未读数量") + private Integer num; + } + } + } diff --git a/research-system/src/main/java/com/research/system/persist/dao/SessionDao.java b/research-system/src/main/java/com/research/system/persist/dao/SessionDao.java index 9df230c1..6a2e65ee 100644 --- a/research-system/src/main/java/com/research/system/persist/dao/SessionDao.java +++ b/research-system/src/main/java/com/research/system/persist/dao/SessionDao.java @@ -20,4 +20,6 @@ public interface SessionDao { List queryLogList(SessionDto.SessionId dto); List queryMemberList(SessionDto.SessionId dto); -} + + List queryUnReadList(Long userId); +} \ No newline at end of file diff --git a/research-system/src/main/java/com/research/system/service/SessionService.java b/research-system/src/main/java/com/research/system/service/SessionService.java index 555f2b80..46ee1ea4 100644 --- a/research-system/src/main/java/com/research/system/service/SessionService.java +++ b/research-system/src/main/java/com/research/system/service/SessionService.java @@ -26,4 +26,5 @@ public interface SessionService { Integer delLog(SessionDto.Delete dto); + SessionVo.UnRead queryUnRead(); } diff --git a/research-system/src/main/java/com/research/system/service/impl/SessionServiceImpl.java b/research-system/src/main/java/com/research/system/service/impl/SessionServiceImpl.java index b07ad479..14382f96 100644 --- a/research-system/src/main/java/com/research/system/service/impl/SessionServiceImpl.java +++ b/research-system/src/main/java/com/research/system/service/impl/SessionServiceImpl.java @@ -104,7 +104,7 @@ public class SessionServiceImpl implements SessionService { chatMessageReadStatus.setSessionMessageId(chatSessionMessages.getId()); if (Objects.equals(chatSessionMember.getSessionMemberId(), SecurityUtils.getUserId())) { chatMessageReadStatus.setReadStatus((byte) 1); - }else { + } else { chatMessageReadStatus.setReadStatus((byte) 0); } chatMessageReadStatus.setDelStatus((byte) 0); @@ -142,8 +142,8 @@ public class SessionServiceImpl implements SessionService { chatSessionMembers.setId(IdUtil.getSnowflakeNextId()); chatSessionMembers.setSessionId(chatSessions.getId()); chatSessionMembers.setSessionMemberId(aLong); - chatSessionMembers.setIsCreator(Objects.equals(aLong, SecurityUtils.getUserId()) ? (byte) 1 :(byte) 0); - chatSessionMembers.setIsAdmin(Objects.equals(aLong, SecurityUtils.getUserId()) ? (byte) 1 :(byte) 0); + chatSessionMembers.setIsCreator(Objects.equals(aLong, SecurityUtils.getUserId()) ? (byte) 1 : (byte) 0); + chatSessionMembers.setIsAdmin(Objects.equals(aLong, SecurityUtils.getUserId()) ? (byte) 1 : (byte) 0); chatSessionMembers.setSessionAlias(""); chatSessionMembers.setCreateBy(SecurityUtils.getUsername()); chatSessionMembers.setCreateTime(new java.util.Date()); @@ -170,4 +170,14 @@ public class SessionServiceImpl implements SessionService { chatSessionMessages.setDelFlag((byte) 1); return chatSessionMessagesMapper.updateByExampleSelective(chatSessionMessages, chatSessionMessagesExample); } + + @Override + public SessionVo.UnRead queryUnRead() { + SessionVo.UnRead unRead = new SessionVo.UnRead(); + //根据登录人查询未读消息 + List unReadItems = sessionDao.queryUnReadList(SecurityUtils.getUserId()); + unRead.setUnreadList(unReadItems); + unRead.setTotal(CollUtil.isNotEmpty(unReadItems) ? unReadItems.stream().map(SessionVo.UnRead.UnReadItem::getNum).reduce(0, Integer::sum) : 0); + return unRead; + } } diff --git a/research-system/src/main/resources/mapper/dao/SessionDao.xml b/research-system/src/main/resources/mapper/dao/SessionDao.xml index dbd94bf5..7d2738fe 100644 --- a/research-system/src/main/resources/mapper/dao/SessionDao.xml +++ b/research-system/src/main/resources/mapper/dao/SessionDao.xml @@ -97,4 +97,19 @@ select * from INNER JOIN chat_contact_list c ON sm.session_member_id = c.user_id WHERE sm.session_id = #{sessionId} + +